function it_returns_all_of_its_events(IReader $reader, IEventFactory $eventFactory, IEvent $event) { $reader->readDir('../../../tests/fixtures/communication-logger')->shouldBeCalled()->willReturn(['example.com.876983e7-e64c-4757-ab8b-7aae4a0f6ae0.event']); $reader->read('../../../tests/fixtures/communication-logger/example.com.876983e7-e64c-4757-ab8b-7aae4a0f6ae0.event')->shouldBeCalled()->willreturn('POST http://example.com ref request 0.56 response'); $eventFactory->create('request', 'http://example.com', 'POST', 'ref')->shouldBeCalled()->willReturn($event); $event->setLatency(0.5600000000000001)->shouldBeCalled(); $event->setResponse('response')->shouldBeCalled(); $this->getEvents()->shouldBeArray(); }
/** * Get logged events. * * @return IEvent[] */ public function getEvents() { $events = []; try { $files = $this->reader->readDir($this->directory); foreach ($files as $file) { $filePath = $this->directory . '/' . $file; $contents = $this->reader->read($filePath); $parts = explode(PHP_EOL, $contents); $line1 = explode(' ', $parts[0]); $method = $line1[0]; $endpoint = $line1[1]; $reference = $parts[1]; $request = $parts[2]; $event = $this->eventFactory->create($request, $endpoint, $method, $reference); if (5 === count($parts)) { $event->setLatency((double) $parts[3]); $event->setResponse($parts[4]); } $events[] = $event; } } catch (Exception $e) { if (null !== $this->logger) { $this->logger->error($e); } } return $events; }
function it_handles_the_begining_of_a_request(IAdapter $adapter, IEventFactory $eventFactory, IEvent $event) { $eventFactory->create('request', 'http://example.com', 'POST', 'ref')->shouldBeCalled()->willReturn($event); $adapter->save($event)->shouldBeCalled()->willReturn($event); $this->begin('request', 'http://example.com', 'POST', 'ref')->shouldReturn($event); }
/** * Log the beginning of a request. * * @param string $request * @param string $endpoint * @param string $method * @param string $reference * * @return IEvent */ public function begin($request, $endpoint, $method, $reference) { $this->startTimestamp = microtime(true); $this->lastEvent = $this->eventFactory->create($request, $endpoint, $method, $reference); return $this->adapter->save($this->lastEvent); }