コード例 #1
0
 /**
  * @param IEvent $event
  *
  * @return IEvent
  */
 public function save(IEvent $event)
 {
     $this->latestEvent = $event;
     if (null === $event->getId()) {
         $event->setId((string) Uuid::uuid4());
     }
     $filename = sprintf('%s.%s.event', $this->prepareFilename($event->getEndpoint()), $event->getId());
     $file = null;
     try {
         $filePath = $this->directory . '/' . $filename;
         if (!file_exists($filePath)) {
             $this->writer->open($filePath, 'w+');
             $this->writer->write($event->getMethod() . ' ' . $event->getEndpoint() . PHP_EOL);
             $this->writer->write($event->getReference() . PHP_EOL);
             $this->writer->write($event->getRequest() . PHP_EOL);
         } else {
             $this->writer->open($filePath, 'a');
             $this->writer->write($event->getLatency() . PHP_EOL);
             $this->writer->write($event->getResponse() . PHP_EOL);
         }
     } catch (Exception $e) {
         if (null !== $this->logger) {
             $this->logger->error($e);
         }
     } finally {
         if ($this->writer->isOpen()) {
             $this->writer->close();
         }
     }
     return $event;
 }
コード例 #2
0
 function it_saves_updated_events(IEvent $event, PDO $connection, PDOStatement $statement)
 {
     $event->getId()->shouldBeCalled()->willReturn(12);
     $event->getResponse()->shouldBeCalled()->willReturn('response');
     $event->getLatency()->shouldBeCalled()->willReturn(0.12);
     $connection->prepare('UPDATE table SET response = :response, SET latency = :latency WHERE id = :id')->shouldBeCalled()->willReturn($statement);
     $statement->execute([':id' => 12, ':response' => 'response', ':latency' => 0.12])->shouldBeCalled();
     $statement->columnCount()->shouldBeCalled()->willReturn(1);
     $this->save($event);
 }
コード例 #3
0
 /**
  * Update event.
  *
  * @param IEvent $event
  *
  * @return bool
  */
 protected function update(IEvent $event)
 {
     $statement = $this->connection->prepare('UPDATE ' . $this->table . ' SET response = :response, SET latency = :latency WHERE id = :id');
     $statement->execute([':id' => $event->getId(), ':response' => $event->getResponse(), ':latency' => $event->getLatency()]);
     return $statement->columnCount() === 1;
 }