File: D:/HostingSpaces/SBogers10/helder.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());
}
}