コード例 #1
0
ファイル: Stream.php プロジェクト: assimtech/dislog
 /**
  * {@inheritdoc}
  */
 public function handle(ApiCallInterface $apiCall)
 {
     if ($apiCall->getId() === null) {
         $id = $this->identityGenerator->getIdentity();
         $apiCall->setId($id);
     }
     $serializedApiCall = call_user_func($this->serializer, $apiCall);
     fwrite($this->stream, $serializedApiCall);
 }
コード例 #2
0
ファイル: StreamSpec.php プロジェクト: assimtech/dislog
 function it_can_handle_new_apicall(IdentityGeneratorInterface $identityGenerator, SerializerInterface $serializer, ApiCallInterface $apiCall)
 {
     $stream = fopen('php://temp', 'a+');
     $this->beConstructedWith($stream, $identityGenerator, $serializer);
     $identity = 'my id';
     $serializedApiCall = 'my api call';
     $apiCall->getId()->willReturn(null);
     $identityGenerator->getIdentity()->willReturn($identity);
     $apiCall->setId($identity)->shouldBeCalled();
     $serializer->__invoke($apiCall)->willReturn($serializedApiCall);
     $this->handle($apiCall);
     $writtenData = stream_get_contents($stream, -1, 0);
     if ($writtenData !== $serializedApiCall) {
         throw new RuntimeException(sprintf("Written data did not match expected data:\nWritten: %s\nExpected: %s", $writtenData, $serializedApiCall));
     }
 }