getTimestamp(); $archivePurger = new ArchivePurger(); $archivePurger->setTodayDate(Date::factory('2015-02-27')); $archivePurger->setYesterdayDate(Date::factory('2015-02-26')); $archivePurger->setNow(Date::factory('2015-02-27 08:00:00')->getTimestamp()); $this->application = new Console(); $this->application->setAutoExit(false); $this->application->add(new PurgeBrokenArchiveData($archivePurger)); $this->applicationTester = new ApplicationTester($this->application); // assert the test data was setup correctly self::$fixture->assertBrokenArchivesNotPurged(self::$fixture->january); self::$fixture->assertBrokenArchivesNotPurged(self::$fixture->february); } public function tearDown(): void { Date::$now = null; parent::tearDown(); } public function testExecutingCommandDefaultDatesPurgesFromExistingMonth() { $result = $this->applicationTester->run([ 'command' => 'core:purge-broken-archive-data', ]); $this->assertEquals(0, $result, $this->getCommandDisplayOutputErrorMessage()); self::$fixture->assertBrokenArchivesWithoutDoneFlagPurged(self::$fixture->february); self::$fixture->assertBrokenArchivesNotPurged(self::$fixture->january); } public function testExecutingCommandSpecificDatesPurgesOnlyInRange() { $result = $this->applicationTester->run([ 'command' => 'core:purge-broken-archive-data', 'startMonth' => '2015-01', 'endMonth' => '2015-02', ]); $this->assertEquals(0, $result, $this->getCommandDisplayOutputErrorMessage()); self::$fixture->assertBrokenArchivesWithoutDoneFlagPurged(self::$fixture->january); self::$fixture->assertBrokenArchivesWithoutDoneFlagPurged(self::$fixture->february); } public function testExecutingCommandInvalidDates() { $result = $this->applicationTester->run([ 'command' => 'core:purge-broken-archive-data', 'startMonth' => '201-01', ]); $this->assertEquals(2, $result, $this->getCommandDisplayOutputErrorMessage()); $result = $this->applicationTester->run([ 'command' => 'core:purge-broken-archive-data', 'startMonth' => '2015-01', 'endMonth' => '201-001', ]); $this->assertEquals(2, $result, $this->getCommandDisplayOutputErrorMessage()); } protected function getCommandDisplayOutputErrorMessage() { return "Command did not behave as expected. Command output: " . $this->applicationTester->getDisplay(); } } PurgeBrokenArchiveDataTest::$fixture = new RawArchiveDataWithTempAndInvalidated();