/** * @param CarriesCommitData[] $envelopes * * @throws InvalidEventEnvelopeCollection * @return array|\Countable|Interfaces\ServesEventStreamData[]|\Iterator */ private function extractEventsFromEnvelopes($envelopes) { if ($this->guardIsArrayOrCountableIterator($envelopes)) { return $this->envelopeMapper->extractEventEnvelopesFromCommitEnvelopes($envelopes); } else { throw new InvalidEventEnvelopeCollection(); } }
public function testExtractEventFromEnvelope() { $mapper = new EventEnvelopeMapper($this->serialization_strategy); $event_envelope = $this->getTestEventEnvelope(); $commit_envelope = $mapper->putEventInEnvelopeForCommit($event_envelope, $this->commit); $extracted_envelopes = $mapper->extractEventEnvelopesFromCommitEnvelopes([$commit_envelope]); /** @var EventEnvelope $extracted_envelope */ $extracted_envelope = $extracted_envelopes[0]; /** @var UnitTestEvent $extracted_event */ $extracted_event = $extracted_envelope->getPayload(); $this->assertCount(1, $extracted_envelopes); $this->assertInstanceOf(UnitTestEvent::class, $extracted_envelope->getPayload()); $this->assertEquals($event_envelope->getStreamId(), $extracted_envelope->getStreamId()); $this->assertTrue($event_envelope->getStreamId()->equals($extracted_envelope->getStreamId())); $this->assertInstanceOf(get_class($event_envelope->getStreamId()), $extracted_envelope->getStreamId()); $this->assertEquals('Unit test event', $extracted_event->getDescription()); $this->assertInstanceOf(\DateTimeImmutable::class, $extracted_envelope->getOccurredOn()); }