/** * @covers PatomicTransaction::__toString */ public function testToString() { /* Append a PatomicEntity object and add data to the current transaction */ $pt = new PatomicTransaction(); $pe = new PatomicEntity(); $pe->ident("community", "name")->valueType("string")->cardinality("one")->fullText(true)->doc("A community's name")->install("attribute"); $pt->append($pe); $expectedString1 = '[{:db/id #db/id [:db.part/db] :db/ident :community/name :db/valueType :db.type/string :db/cardinality :db.cardinality/one :db/fulltext true :db/doc "A community\'s name" :db.install/_attribute :db.part/db}]'; $this->assertEquals($expectedString1, sprintf($pt)); $pt->add("community", "name", "Beacon Hill"); $expectedString2 = '[{:db/id #db/id [:db.part/db] :db/ident :community/name :db/valueType :db.type/string :db/cardinality :db.cardinality/one :db/fulltext true :db/doc "A community\'s name" :db.install/_attribute :db.part/db}[:db/add #db/id [:db.part/user] :community/name "Beacon Hill"]]'; $this->assertEquals($expectedString2, sprintf($pt)); }
/** * @covers PatomicEntity::prettyPrint * @covers PatomicEntity::printHandler */ public function testPrettyPrint() { /* prettyPrint should match the datalog style shown on http://docs.datomic.com */ /* {:db/id #db/id[:db.part/db] :db/ident :community/name :db/valueType :db.type/string :db/cardinality :db.cardinality/one :db/fulltext true :db/doc "A community's name" :db.install/_attribute :db.part/db} */ $pe = new PatomicEntity(); $pe->ident("community", "name")->valueType("string")->cardinality("one")->fullText(true)->doc("A community's name")->install("attribute"); $expectedStrings = array('{:db/id #db/id[:db.part/db]', ':db/ident :community/name', ':db/valueType :db.type/string', ':db/cardinality :db.cardinality/one', ':db/fulltext true', ':db/doc "A community\'s name"', ':db.install/_attribute :db.part/db}'); $expectedString = implode("\n ", $expectedStrings); ob_start(); $pe->prettyPrint(); $prettyPrintOutput = ob_get_contents(); ob_end_clean(); $this->assertEquals($expectedString, $prettyPrintOutput); }