/** * @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()); }
/** * @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; }