<?php
namespace Medienreaktor\Contact\Tests\Unit\Domain\Model;

/**
 * Test case.
 *
 * @author Daniel Kestler <info@medienreaktor.de>
 */
class PersonTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
{
    /**
     * @var \Medienreaktor\Contact\Domain\Model\Person
     */
    protected $subject = null;

    protected function setUp()
    {
        parent::setUp();
        $this->subject = new \Medienreaktor\Contact\Domain\Model\Person();
    }

    protected function tearDown()
    {
        parent::tearDown();
    }

    /**
     * @test
     */
    public function getNameReturnsInitialValueForString(): void
    {
        self::assertSame(
            '',
            $this->subject->getName()
        );
    }

    /**
     * @test
     */
    public function setNameForStringSetsName(): void
    {
        $this->subject->setName('Conceived at T3CON10');

        self::assertAttributeEquals(
            'Conceived at T3CON10',
            'name',
            $this->subject
        );
    }

    /**
     * @test
     */
    public function getDepartmentReturnsInitialValueForString(): void
    {
        self::assertSame(
            '',
            $this->subject->getDepartment()
        );
    }

    /**
     * @test
     */
    public function setDepartmentForStringSetsDepartment(): void
    {
        $this->subject->setDepartment('Conceived at T3CON10');

        self::assertAttributeEquals(
            'Conceived at T3CON10',
            'department',
            $this->subject
        );
    }

    /**
     * @test
     */
    public function getPhoneReturnsInitialValueForString(): void
    {
        self::assertSame(
            '',
            $this->subject->getPhone()
        );
    }

    /**
     * @test
     */
    public function setPhoneForStringSetsPhone(): void
    {
        $this->subject->setPhone('Conceived at T3CON10');

        self::assertAttributeEquals(
            'Conceived at T3CON10',
            'phone',
            $this->subject
        );
    }

    /**
     * @test
     */
    public function getPhoneAltReturnsInitialValueForString(): void
    {
        self::assertSame(
            '',
            $this->subject->getPhoneAlt()
        );
    }

    /**
     * @test
     */
    public function setPhoneAltForStringSetsPhoneAlt(): void
    {
        $this->subject->setPhoneAlt('Conceived at T3CON10');

        self::assertAttributeEquals(
            'Conceived at T3CON10',
            'phoneAlt',
            $this->subject
        );
    }

    /**
     * @test
     */
    public function getPhoneMobileReturnsInitialValueForString(): void
    {
        self::assertSame(
            '',
            $this->subject->getPhoneMobile()
        );
    }

    /**
     * @test
     */
    public function setPhoneMobileForStringSetsPhoneMobile(): void
    {
        $this->subject->setPhoneMobile('Conceived at T3CON10');

        self::assertAttributeEquals(
            'Conceived at T3CON10',
            'phoneMobile',
            $this->subject
        );
    }

    /**
     * @test
     */
    public function getFaxReturnsInitialValueForString(): void
    {
        self::assertSame(
            '',
            $this->subject->getFax()
        );
    }

    /**
     * @test
     */
    public function setFaxForStringSetsFax(): void
    {
        $this->subject->setFax('Conceived at T3CON10');

        self::assertAttributeEquals(
            'Conceived at T3CON10',
            'fax',
            $this->subject
        );
    }

    /**
     * @test
     */
    public function getEmailReturnsInitialValueForString(): void
    {
        self::assertSame(
            '',
            $this->subject->getEmail()
        );
    }

    /**
     * @test
     */
    public function setEmailForStringSetsEmail(): void
    {
        $this->subject->setEmail('Conceived at T3CON10');

        self::assertAttributeEquals(
            'Conceived at T3CON10',
            'email',
            $this->subject
        );
    }

    /**
     * @test
     */
    public function getJurisdictionReturnsInitialValueForString(): void
    {
        self::assertSame(
            '',
            $this->subject->getJurisdiction()
        );
    }

    /**
     * @test
     */
    public function setJurisdictionForStringSetsJurisdiction(): void
    {
        $this->subject->setJurisdiction('Conceived at T3CON10');

        self::assertAttributeEquals(
            'Conceived at T3CON10',
            'jurisdiction',
            $this->subject
        );
    }
}
