<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */

include_once 'TeilnehmerZahlenProviderMock.php';

/**
 * Generated by PHPUnit_SkeletonGenerator on 2017-04-11 at 09:23:51.
 */
class TeilnehmerzahlenWartelisteTest extends \PHPUnit\Framework\TestCase
{
  /**
   * @test
   */
  public function normalkursTeilWart_TeilWartGesetzt_TeilWart()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->teil_wart = 10;
    $tnBerechnet = new TeilnehmerzahlenBerechnetNormalkurs($tnZahlenDb);

    $this->assertEquals(10, $tnBerechnet->getAnzahlTeilnehmerWarteliste());
  }

  /**
   * @test
   */
  public function normalkursTeilWart_TeilWartLeer_TeilWartIstNull()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->teil_wart = 0;
    $tnBerechnet = new TeilnehmerzahlenBerechnetNormalkurs($tnZahlenDb);

    $this->assertEquals(0, $tnBerechnet->getAnzahlTeilnehmerAngemeldet());
  }

  /**
   * @test
   */
  public function normalkursKinderWart_KinderWartGesetzt_KinderWart()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->kinder_wart = 10;
    $tnBerechnet = new TeilnehmerzahlenBerechnetNormalkurs($tnZahlenDb);

    $this->assertEquals(10, $tnBerechnet->getAnzahlKinderWarteliste());
  }

  /**
   * @test
   */
  public function normalkursKinderWart_KinderWartLeer_KinderWartIstNull()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->kinder_wart = 0;
    $tnBerechnet = new TeilnehmerzahlenBerechnetNormalkurs($tnZahlenDb);

    $this->assertEquals(0, $tnBerechnet->getAnzahlKinderWarteliste());
  }

  /**
   * @test
   */
  public function normalkursTnKiWart_TeilWartUndKinderWartLeer_Null()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->kinder_wart = 0;
    $tnZahlenDb->kinder_wart = 0;
    $tnBerechnet = new TeilnehmerzahlenBerechnetNormalkurs($tnZahlenDb);

    $this->assertEquals(0, $tnBerechnet->getAnzahlTeilnehmerUndKinderWarteliste());
  }

  /**
   * @test
   */
  public function normalkursTnKiWart_NurTeilWartGesetzt_TeilWart()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->teil_wart = 10;
    $tnZahlenDb->kinder_wart = 0;
    $tnBerechnet = new TeilnehmerzahlenBerechnetNormalkurs($tnZahlenDb);

    $this->assertEquals(10, $tnBerechnet->getAnzahlTeilnehmerUndKinderWarteliste());
  }

  /**
   * @test
   */
  public function normalkursTnKiWart_NurKinderWartGesetzt_KinderWart()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->teil_wart = 0;
    $tnZahlenDb->kinder_wart = 10;
    $tnBerechnet = new TeilnehmerzahlenBerechnetNormalkurs($tnZahlenDb);

    $this->assertEquals(10, $tnBerechnet->getAnzahlTeilnehmerUndKinderWarteliste());
  }

  /**
   * @test
   */
  public function normalkursTnKiWart_TeilWartUndKinderWartGesetzt_TeilWartPlusKinderWart()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->teil_wart = 5;
    $tnZahlenDb->kinder_wart = 10;
    $tnBerechnet = new TeilnehmerzahlenBerechnetNormalkurs($tnZahlenDb);

    $this->assertEquals(15, $tnBerechnet->getAnzahlTeilnehmerUndKinderWarteliste());
  }

  /**
   * @test
   */
  public function kinderkursTeilWart_KinderWartLeer_Null()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->kinder_wart = 0;
    $tnBerechnet = new TeilnehmerzahlenBerechnetKinderkurs($tnZahlenDb);

    $this->assertEquals(0, $tnBerechnet->getAnzahlTeilnehmerWarteliste());
  }

  /**
   * @test
   */
  public function kinderkursTeilWart_KinderWartGefuellt_KinderWart()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->kinder_wart = 10;
    $tnBerechnet = new TeilnehmerzahlenBerechnetKinderkurs($tnZahlenDb);

    $this->assertEquals(10, $tnBerechnet->getAnzahlTeilnehmerWarteliste());
  }

  /**
   * @test
   */
  public function kinderkursTeilWart_TeilWartGesetzt_TeilWartWirdIgnoriert()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->kinder_wart = 12;
    $tnZahlenDb->teil_wart = 10;
    $tnBerechnet = new TeilnehmerzahlenBerechnetKinderkurs($tnZahlenDb);

    $this->assertEquals(12, $tnBerechnet->getAnzahlTeilnehmerWarteliste());
  }

  /**
   * @test
   */
  public function kinderkursKinderWart_KinderWartLeer_Null()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->kinder_wart = 0;
    $tnBerechnet = new TeilnehmerzahlenBerechnetKinderkurs($tnZahlenDb);

    $this->assertEquals(0, $tnBerechnet->getAnzahlKinderWarteliste());
  }

  /**
   * @test
   */
  public function kinderkursKinderWart_KinderWartGefuellt_KinderWart()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->kinder_wart = 10;
    $tnBerechnet = new TeilnehmerzahlenBerechnetKinderkurs($tnZahlenDb);

    $this->assertEquals(10, $tnBerechnet->getAnzahlKinderWarteliste());
  }

  /**
   * @test
   */
  public function kinderkursKinderWart_TeilWartGesetzt_TeilWartWirdIgnoriert()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->kinder_wart = 12;
    $tnZahlenDb->teil_wart = 10;
    $tnBerechnet = new TeilnehmerzahlenBerechnetKinderkurs($tnZahlenDb);

    $this->assertEquals(12, $tnBerechnet->getAnzahlKinderWarteliste());
  }

  /**
   * @test
   */
  public function kinderkursTnKiWart_KinderWartLeer_Null()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->kinder_wart = 0;
    $tnBerechnet = new TeilnehmerzahlenBerechnetKinderkurs($tnZahlenDb);

    $this->assertEquals(0, $tnBerechnet->getAnzahlTeilnehmerUndKinderWarteliste());
  }

  /**
   * @test
   */
  public function kinderkursTnKiWart_KinderWartGefuellt_KinderWart()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->kinder_wart = 10;
    $tnBerechnet = new TeilnehmerzahlenBerechnetKinderkurs($tnZahlenDb);

    $this->assertEquals(10, $tnBerechnet->getAnzahlTeilnehmerUndKinderWarteliste());
  }

  /**
   * @test
   */
  public function kinderkursTnKiWart_TeilWartGesetzt_TeilWartWirdIgnoriert()
  {
    $kurs = new \Kurs();
    $tnZahlenDb = new TeilnehmerZahlenProviderMock($kurs);
    $tnZahlenDb->kinder_wart = 12;
    $tnZahlenDb->teil_wart = 10;
    $tnBerechnet = new TeilnehmerzahlenBerechnetKinderkurs($tnZahlenDb);

    $this->assertEquals(12, $tnBerechnet->getAnzahlTeilnehmerUndKinderWarteliste());
  }
}
