/**
  * @param array $record
  *
  * @dataProvider commitDataProvider
  */
 public function testFromRecord(array $record)
 {
     $commitData = $this->getMock(ServesCommitData::class);
     $commitData->expects($this->once())->method('getId')->willReturn($record['id']);
     $commitData->expects($this->once())->method('getCommitId')->willReturn($record['commit_id']);
     $commitData->expects($this->once())->method('getStreamId')->willReturn($record['stream_id']);
     $commitData->expects($this->once())->method('getStreamIdContract')->willReturn($record['stream_id_contract']);
     $commitData->expects($this->once())->method('getPayload')->willReturn($record['payload']);
     $commitData->expects($this->once())->method('getPayloadContract')->willReturn($record['payload_contract']);
     $commitData->expects($this->once())->method('getMetaData')->willReturn($record['meta_data']);
     $commitData->expects($this->once())->method('getMetaDataContract')->willReturn($record['meta_data_contract']);
     $commitData->expects($this->once())->method('getOccurredOn')->willReturn($record['occurred_on']);
     $commitData->expects($this->once())->method('getCommittedOn')->willReturn($record['committed_on']);
     /** @var ServesCommitData $commitData */
     $envelope = CommitEnvelope::fromCommitData($commitData);
     $this->assertEquals($record['id'], $envelope->getId());
     $this->assertEquals($record['commit_id'], $envelope->getCommitId());
     $this->assertEquals($record['stream_id'], $envelope->getStreamId());
     $this->assertEquals($record['stream_id_contract'], $envelope->getStreamIdContract());
     $this->assertEquals($record['payload'], $envelope->getPayload());
     $this->assertEquals($record['payload_contract'], $envelope->getPayloadContract());
     $this->assertEquals($record['meta_data'], $envelope->getMetaData());
     $this->assertEquals($record['meta_data_contract'], $envelope->getMetaDataContract());
     $this->assertEquals($record['occurred_on'], $envelope->getOccurredOn());
     $this->assertEquals($record['committed_on'], $envelope->getCommittedOn());
 }
示例#2
0
 /**
  * @expectedException \hollodotme\MilestonES\Exceptions\RestoringFileWithContentFailed
  */
 public function testRestoringFilesOnReconstituionFailsWhenRestoreDirDoesNotExist()
 {
     $stream_identifier = new EventStreamIdentifier(new Identifier('Unit\\Test\\ID'));
     $envelope = new CommitEnvelope();
     $envelope->setStreamId($stream_identifier->getStreamId());
     $envelope->setStreamIdContract($stream_identifier->getStreamIdContract());
     $envelope->setFile(__DIR__ . '/../Fixures/eventFileTest');
     $persistence = new TestMemoryInvalidRestoreFileDir();
     $persistence->beginTransaction();
     $persistence->persistCommitEnvelope($envelope);
     $persistence->commitTransaction();
     $persistence->getEventStreamWithId($stream_identifier);
 }
 /**
  * @param ServesEventStreamData $eventEnvelope
  * @param IdentifiesCommit $commit
  *
  * @return CommitEnvelope
  */
 public function putEventInEnvelopeForCommit(ServesEventStreamData $eventEnvelope, IdentifiesCommit $commit)
 {
     $streamIdentifier = $this->getStreamIdentifierForEventEnvelope($eventEnvelope);
     $payloadContract = $this->getPayloadContract();
     $payloadData = $this->serializeDataWithContract($eventEnvelope->getPayload(), $payloadContract);
     $metaDataContract = $this->getMetaDataContract();
     $metaData = $this->serializeDataWithContract($eventEnvelope->getMetaData(), $metaDataContract);
     $envelope = new CommitEnvelope();
     $envelope->setCommitId($commit->getCommitId());
     $envelope->setOccurredOn($eventEnvelope->getOccurredOn());
     $envelope->setCommittedOn($commit->getCommittedOn());
     $envelope->setStreamId($streamIdentifier->getStreamId());
     $envelope->setStreamIdContract($streamIdentifier->getStreamIdContract());
     $envelope->setPayloadContract($payloadContract->toString());
     $envelope->setPayload($payloadData);
     $envelope->setMetaDataContract($metaDataContract->toString());
     $envelope->setMetaData($metaData);
     $envelope->setFile($eventEnvelope->getFile());
     return $envelope;
 }