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