create(); $configuration = new TimesheetConfiguration($loader, ['mode' => 'punch']); $sut = new TrackingModeService($dateTime, $configuration); $modes = $sut->getModes(); self::assertGreaterThanOrEqual(4, $modes); $ids = []; foreach ($modes as $mode) { $ids[] = $mode->getId(); } self::assertContains('default', $ids); self::assertContains('punch', $ids); self::assertContains('duration_only', $ids); self::assertContains('duration_fixed_begin', $ids); } public function testGetActiveMode() { $loader = new TestConfigLoader([]); $dateTime = (new UserDateTimeFactoryFactory($this))->create(); $configuration = new TimesheetConfiguration($loader, ['mode' => 'punch']); $sut = new TrackingModeService($dateTime, $configuration); self::assertInstanceOf(PunchInOutMode::class, $sut->getActiveMode()); } /** * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException * @expectedExceptionMessage You have requested a non-existent service "xxxxxx" */ public function testGetActiveModeThrowsExceptionOnlyInvalidMode() { $loader = new TestConfigLoader([]); $dateTime = (new UserDateTimeFactoryFactory($this))->create(); $configuration = new TimesheetConfiguration($loader, ['mode' => 'xxxxxx']); $sut = new TrackingModeService($dateTime, $configuration); $sut->getActiveMode(); } }