예제 #1
0
 function testUpdateBoardStatus()
 {
     for ($i = 0; $i < 10; $i++) {
         /* as we use random data lets perform this test a few times */
         $expected = $this->randomCircuitBoardStatus();
         $this->db->updateBoardStatus(6789, $expected);
         $result = $this->db->queryBoardStatus(6789);
         $this->assertIdentical($expected->getSwitchOne(), $result->getSwitchOne());
         $this->assertIdentical($expected->getSwitchTwo(), $result->getSwitchTwo());
         $this->assertIdentical($expected->getSwitchThree(), $result->getSwitchThree());
         $this->assertIdentical($expected->getSwitchFour(), $result->getSwitchFour());
         $this->assertIdentical($expected->getFan(), $result->getFan());
         $this->assertIdentical($expected->getTemperature(), $result->getTemperature());
         $this->assertIdentical($expected->getKeypad(), $result->getKeypad());
     }
 }
예제 #2
0
 /**
  * Fetches the statuses of the circuit boards from the database.
  * @throws Exception If a query fails to execute.
  */
 public function fetchUpdates()
 {
     $soap = new SoapClientWrapper();
     $messages = $soap->getNewMessages();
     $database = new DatabaseWrapper();
     $database->connect(DB_NAME);
     foreach ($messages as $message) {
         $xmlParser = new XMLParser($message);
         $xmlParser->parse();
         $parsedMessage = $xmlParser->getParsedData();
         $validator = new SMSValidator($parsedMessage);
         try {
             $msisdn = $validator->validateMSISDN();
             $status = $validator->validateStatus();
             $information = $database->queryBoardInformation($msisdn);
             $update = new CircuitBoard($information, $status);
             $database->updateBoardStatus($msisdn, $status);
             $this->model->addUpdate($update);
         } catch (Exception $e) {
             continue;
         }
     }
 }