/** * @param Document $document * @return string */ public function marshall(Document $document) : string { $fragments = $document->getFragments(); $document = [self::KEY_VERSION => self::VERSION_1, self::KEY_FRAGMENTS => []]; foreach ($fragments as $fragment) { $document[self::KEY_FRAGMENTS][] = $this->fragmentMarshaller->marshall($fragment); } $document[self::KEY_CHECKSUM] = $this->calculateFragmentsChecksum($fragments); return json_encode($document); }
/** * @test * @dataProvider boolProvider */ public function testBooleans($testValue) { $marshaller = new DocumentFragment\Marshaller(); $fragment = new DocumentFragment("test", $testValue); $marshalledFragment = $marshaller->marshall($fragment); $unmarshalledFragment = $marshaller->unmarshall($marshalledFragment); $this->assertEquals("test", $unmarshalledFragment->getName()); $this->assertEquals($testValue ? 1 : 0, $unmarshalledFragment->getData()); }