HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/boldt.komma.pro/tests/Unit/DatePickerTest.php
<?php

namespace Tests\Unit;

use App\Komma\Kms\Core\Attributes\DatePicker;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class DatePickerTest extends TestCase
{
    /**
     * @group DatePickerTest
     * @test
     */
    public function instanceCreationTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $this->assertInstanceOf(DatePicker::class, $datePicker);
    }

    /**
     * @group DatePickerTest
     * @test
     */
    public function labelTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $this->assertEquals('Start date and time', $datePicker->getLabelText());
    }

    /**
     * @group DatePickerTest
     * @test
     */
    public function stringValueFailTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $this->expectException(\InvalidArgumentException::class);
        $datePicker->setValue('Random shizzle');
    }

    /**
     * @group DatePickerTest
     * @test
     */
    public function jsonStringValueFailTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $this->expectException(\InvalidArgumentException::class);
        $datePicker->setValue('{year:2018,month:1}');
    }

    /**
     * @group DatePickerTest
     * @test
     */
    public function stringValueTest()
    {
        $datePicker = new DatePicker('Start date and time');
//        $this->expectException(\InvalidArgumentException::class);
        $datePicker->setValue('2018-04-14 18:02:00');
        $this->assertEquals('2018-04-14 18:02:00', $datePicker->getValue());
    }

    /**
     * @group DatePickerTest
     * @test
     */
    public function jsonValueTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $datePicker->setValue('{"year":2018,"month":4,"day":14,"hour":18,"minute":2,"second":0}');
        $this->assertEquals('{"year":2018,"month":4,"day":14,"hour":18,"minute":2,"second":0}', $datePicker->getValueAsJson());
    }

    /**
     * @group DatePickerTest
     * @test
     */
    public function languageTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $this->assertEquals(DatePicker::LANGUAGE_ENGLISH, $datePicker->getLanguage());

        $datePicker->setLanguage(DatePicker::LANGUAGE_ENGLISH);
        $this->assertEquals(DatePicker::LANGUAGE_ENGLISH, $datePicker->getLanguage());

        $datePicker->setLanguage(DatePicker::LANGUAGE_DUTCH);
        $this->assertEquals(DatePicker::LANGUAGE_DUTCH, $datePicker->getLanguage());
    }

    /**
     * @group DatePickerTest
     * @test
     */
    public function animationTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $this->assertEquals(null, $datePicker->getAnimation());

        $datePicker->setAnimation(DatePicker::ANIMATION_SLIDEDOWN);
        $this->assertEquals(DatePicker::ANIMATION_SLIDEDOWN, $datePicker->getAnimation());

        $datePicker->setAnimation(DatePicker::ANIMATION_BOUNCE);
        $this->assertEquals(DatePicker::ANIMATION_BOUNCE, $datePicker->getAnimation());

        $datePicker->setAnimation('Pinguin!');
        $this->assertEquals(null, $datePicker->getAnimation());
    }

    /**
     * @group DatePickerTest
     * @test
     */
    public function buttonBarTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $this->assertEquals(null, $datePicker->getButtonBar());

        $datePicker->setButtonBar(true);
        $this->assertEquals(true, $datePicker->getButtonBar());

        $datePicker->setButtonBar(false);
        $this->assertEquals(false, $datePicker->getButtonBar());
    }

    /**
     * @group DatePickerTest
     * @test
     */
    public function changeMonthTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $this->assertEquals(true, $datePicker->getChangeMonth());

        $datePicker->setChangeMonth(true);
        $this->assertEquals(true, $datePicker->getChangeMonth());

        $datePicker->setChangeMonth(false);
        $this->assertEquals(false, $datePicker->getChangeMonth());
    }

    /**
     * @group DatePickerTest
     * @test
     */
    public function changeYearTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $this->assertEquals(true, $datePicker->getChangeYear());

        $datePicker->setChangeYear(true);
        $this->assertEquals(true, $datePicker->getChangeYear());

        $datePicker->setChangeYear(false);
        $this->assertEquals(false, $datePicker->getChangeYear());
    }

    /**
     * @group DatePickerTest
     * @test
     */
    public function timeEnabledTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $this->assertEquals(true, $datePicker->getTimeEnabled());

        $datePicker->setTimeEnabled(true);
        $this->assertEquals(true, $datePicker->getTimeEnabled());

        $datePicker->setTimeEnabled(false);
        $this->assertEquals(false, $datePicker->getTimeEnabled());
    }

    /**
     * @group DatePickerTest
     * @test
     */
    public function dateFormatTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $this->assertEquals(DatePicker::DATE_FORMAT_EUROPEAN, $datePicker->getDateFormat());

        $datePicker->setDateFormat(DatePicker::DATE_FORMAT_AMERICAN);
        $this->assertEquals(DatePicker::DATE_FORMAT_AMERICAN, $datePicker->getDateFormat());

        $datePicker->setDateFormat(DatePicker::DATE_FORMAT_EUROPEAN);
        $this->assertEquals(DatePicker::DATE_FORMAT_EUROPEAN, $datePicker->getDateFormat());

        $datePicker->setDateFormat('napKin!0_o');
        $this->assertEquals(DatePicker::DATE_FORMAT_EUROPEAN, $datePicker->getDateFormat());
    }

    /**
     * @group TimePickerTest
     * @test
     */
    public function timeFormatTest()
    {
        $datePicker = new DatePicker('Start date and time');
        $this->assertEquals(DatePicker::TIME_FORMAT_24, $datePicker->getTimeFormat());

        $datePicker->setTimeFormat(DatePicker::TIME_FORMAT_24);
        $this->assertEquals(DatePicker::TIME_FORMAT_24, $datePicker->getTimeFormat());

        $this->expectException(\RuntimeException::class); //Not implemented yet
        $datePicker->setTimeFormat(DatePicker::TIME_FORMAT_12);

        $datePicker->setTimeFormat(874844); // <---- random number
        $this->assertEquals(DatePicker::TIME_FORMAT_24, $datePicker->getTimeFormat());
    }


    /**
     * @group DatePickerTest
     * @test
     */
    public function changeMonthAndYearTest()
    {
        $datePicker = new DatePicker('Start date and time');

        $datePicker->setChangeMonth(true);
        $datePicker->setChangeYear(true);

        $datePicker->setChangeYearAndMonth(false);
        $this->assertEquals(false, $datePicker->getChangeMonth());
        $this->assertEquals(false, $datePicker->getChangeYear());

        $datePicker->setChangeYearAndMonth(true);
        $this->assertEquals(true, $datePicker->getChangeMonth());
        $this->assertEquals(true, $datePicker->getChangeYear());


        $datePicker->setChangeMonth(false);
        $datePicker->setChangeYear(true);

        $datePicker->setChangeYearAndMonth(true);
        $this->assertEquals(true, $datePicker->getChangeMonth());
        $this->assertEquals(true, $datePicker->getChangeYear());

        $datePicker->setChangeMonth(true);
        $datePicker->setChangeYear(false);

        $datePicker->setChangeYearAndMonth(true);
        $this->assertEquals(true, $datePicker->getChangeMonth());
        $this->assertEquals(true, $datePicker->getChangeYear());


        $datePicker->setChangeMonth(false);
        $datePicker->setChangeYear(true);

        $datePicker->setChangeYearAndMonth(false);
        $this->assertEquals(false, $datePicker->getChangeMonth());
        $this->assertEquals(false, $datePicker->getChangeYear());

        $datePicker->setChangeMonth(true);
        $datePicker->setChangeYear(false);

        $datePicker->setChangeYearAndMonth(false);
        $this->assertEquals(false, $datePicker->getChangeMonth());
        $this->assertEquals(false, $datePicker->getChangeYear());
    }
}