try { Env::get('_test_foo'); $this->assert(false, 'Exception accessing unknown Env value'); } catch (\Exception $e) { $this->assert(true, 'Exception accessing unknown Env value'); } Env::set('_test_foo', 'bar'); $this->assertEqual(Env::get('_test_foo'), 'bar', 'Read Env value'); Env::set('_test_foo', 'a', 10); $this->assertEqual(Env::get('_test_foo'), 'a', 'Apply higher priority value'); Env::set('_test_foo', 'b', -5); $this->assertEqual(Env::get('_test_foo'), 'a', 'Ignore low priority value'); Env::push('_test_foo', 'c'); $this->assertEqual(Env::get('_test_foo'), 'c', 'Push env value'); Env::push('_test_foo', 'd'); $this->assertEqual(Env::get('_test_foo'), 'd', 'Push another env value'); Env::pop('_test_foo'); $this->assertEqual(Env::get('_test_foo'), 'c', 'Pop env value'); Env::pop('_test_foo'); $this->assertEqual(Env::get('_test_foo'), 'a', 'Pop another env value'); try { Env::pop('_test_foo'); $this->assert(false, 'Exception popping too many times'); } catch (\Exception $e) { $this->assert(true, 'Exception popping too many times'); } try { Env::pop('_test_bar', 'c'); $this->assert(false, 'Exception popping unknown Env value'); } catch (\Exception $e) {
<?php namespace Fierce; $db = $this->mock('DB'); Env::push('db', $db); $db->ScheduledTask = $this->mock('DBEntity', 'ScheduledTask'); $taskController = new ScheduledTaskController(); $taskController->db = $db; // check if a scheduled task runs properly $task = (object) ['id' => '63E3BACB-3F7B-4C77-A303-F03FB2EE117C', 'status' => 'pending', 'date' => new \DateTime(), 'repeat' => null, 'class' => 'Fierce\\Test\\DummyTask', 'method' => 'run', 'log' => null]; $db->ScheduledTask->prepareForCall('find', null, [$task]); $db->ScheduledTask->prepareForCall('byId', null, $task); $activeWrite = null; $completeWrite = null; $db->ScheduledTask->prepareForCall('write', null, function ($id, $row, $allowOverwrite) use(&$activeWrite, &$completeWrite) { if ($row->status == 'active') { $activeWrite = $row; return; } if ($row->status == 'complete') { $completeWrite = $row; return; } }); $taskController->defaultAction(); $this->assert($activeWrite != null, 'Task marked active'); $log = json_decode($activeWrite->log); $logEntry = $log[0]; $this->assert((new \DateTime())->getTimestamp() - (new \DateTime($logEntry->started))->getTimestamp() >= 0 && (new \DateTime())->getTimestamp() - (new \DateTime($logEntry->started))->getTimestamp() < 10, 'Active task included a valid start date'); $log = json_decode($completeWrite->log);