Beispiel #1
0
 private static function doCall($type, $type_param, $functionName, $params = array())
 {
     if (Yii::app()->params['isUnitTests'] === true) {
         switch ($type) {
             case 'static':
                 return StubFactory::getStub($type_param . '::' . $functionName);
             case 'instance':
                 return StubFactory::getStub(get_class($type_param) . '->' . $functionName);
             default:
                 throw new InvalidArgumentException('Unknown type of call: ' . $type);
         }
     }
     if (!$params) {
         $params = array();
     } else {
         if (!is_array($params)) {
             $params = array($params);
         }
     }
     switch ($type) {
         case 'static':
             return forward_static_call_array(array($type_param, $functionName), $params);
         case 'instance':
             return call_user_func_array(array($type_param, $functionName), $params);
         default:
             throw new InvalidArgumentException('Unknown type of call: ' . $type);
     }
 }
 public function testGetMessageWithTime_TwoSameCalls()
 {
     $log = new ListenerLog();
     StubFactory::clear();
     StubFactory::stubFunction('ListenerLog->find', array('return' => $log));
     $message1 = ListenerLog::getMessageWithTime(1, '12345', '423');
     $message2 = ListenerLog::getMessageWithTime(1, '12345', '423');
     $this->assertSame($log, $message1);
     $this->assertSame($log, $message2);
     $this->assertEquals(1, StubFactory::getStubCallCount('ListenerLog->find'));
 }
 public function test_Run_AWS01Station()
 {
     $settings = new Settings();
     $listenerLog = new ListenerLog();
     $listenerLog->message = '@DAWS01000101001900WS13000000000000RN1001007000009500BV1120SR1001000000000000SD10010000000TP10060HU1000TP20431TP30391WD13001001001PR116150693D2856$';
     $processMessage = new ProcessMessage(LoggerFactory::getTestLogger(), $listenerLog);
     $station = new Station();
     $station->station_id = 1;
     $station->station_id_code = 'AWS01';
     $station->station_type = 'aws';
     $handlers = array();
     $sensorHandler = new SensorDBHandler();
     $sensorHandler->handler_id_code = 'WindSpeed';
     $sensor = new StationSensor();
     $sensor->handler = $sensorHandler;
     $sensor->station_sensor_id = 1;
     StubFactory::clear();
     StubFactory::stubFunction('ListenerLogProcessError->save');
     StubFactory::stubFunction('ListenerLog->save');
     StubFactory::stubFunction('Station->find', array('return' => $station));
     StubFactory::stubFunction('Settings->findByPk', array('return' => $settings));
     StubFactory::stubFunction('SensorData->find');
     StubFactory::stubFunction('SensorData->save');
     StubFactory::stubFunction('StationCalculation->findAll', array('return' => $handlers));
     StubFactory::stubFunction('StationSensor->find', array('return' => $sensor));
     $processMessage->run();
     $this->assertEquals(9, count($processMessage->warnings));
     $this->assertEquals(0, count($processMessage->errors));
     // Call of stub in destructor
     unset($processMessage);
     $this->assertEquals(0, StubFactory::getStubCallCount('Settings->findByPk'));
     $this->assertEquals(1, StubFactory::getStubCallCount('Station->find'));
     $this->assertEquals(2, StubFactory::getStubCallCount('ListenerLog->save'));
     $this->assertEquals(4, StubFactory::getStubCallCount('SensorData->save'));
 }
Beispiel #4
0
 public static function clear()
 {
     self::$stubInfo = array();
 }