. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace tests\integration\Espo\Tools\WorkingTime; use Espo\Core\Field\DateTime; use Espo\Core\Utils\Config\ConfigWriter; use Espo\Entities\WorkingTimeCalendar; use Espo\Tools\WorkingTime\CalendarUtilityFactory; use tests\integration\Core\BaseTestCase; class UtilityTest extends BaseTestCase { public function testUtilityUser(): void { $em = $this->getEntityManager(); $calendar = $em->createEntity(WorkingTimeCalendar::ENTITY_TYPE); $user = $this->createUser('test'); $user->set('workingTimeCalendarId', $calendar->getId()); $em->saveEntity($user); $utility = $this->getInjectableFactory() ->create(CalendarUtilityFactory::class) ->createForUser($user); $this->assertTrue($utility->isWorkingDay(DateTime::fromString('2024-02-23 00:00'))); $this->assertFalse($utility->isWorkingDay(DateTime::fromString('2024-02-24 00:00'))); $this->assertFalse($utility->isWorkingDay(DateTime::fromString('2024-02-25 00:00'))); $this->assertTrue($utility->isWorkingDay(DateTime::fromString('2024-02-26 00:00'))); } public function testUtilityGlobal(): void { $em = $this->getEntityManager(); $calendar = $em->createEntity(WorkingTimeCalendar::ENTITY_TYPE); $configWriter = $this->getInjectableFactory()->create(ConfigWriter::class); $configWriter->set('workingTimeCalendarId', $calendar->getId()); $configWriter->save(); $utility = $this->getInjectableFactory() ->create(CalendarUtilityFactory::class) ->createGlobal(); $this->assertTrue($utility->isWorkingDay(DateTime::fromString('2024-02-23 00:00'))); $this->assertFalse($utility->isWorkingDay(DateTime::fromString('2024-02-24 00:00'))); $this->assertFalse($utility->isWorkingDay(DateTime::fromString('2024-02-25 00:00'))); $this->assertTrue($utility->isWorkingDay(DateTime::fromString('2024-02-26 00:00'))); } }