Example #1
0
 public function testConstruct()
 {
     $student = new My_ShantyMongo_Student();
     $this->assertTrue($student->isNewDocument());
     $this->assertTrue($student->isRootDocument());
     $this->assertTrue($student->isConnected());
     $this->assertTrue($student->hasKey());
     $this->assertTrue($student->hasId());
     $this->assertType(PHPUnit_Framework_Constraint_IsType::TYPE_OBJECT, $student->getId());
     $this->assertEquals('MongoId', get_class($student->getId()));
     $this->assertEquals(My_ShantyMongo_Student::getCollectionRequirements(), $student->getRequirements());
     $type = array('My_ShantyMongo_Student', 'My_ShantyMongo_User');
     $this->assertEquals($type, $student->getInheritance());
     $criteria = $student->getCriteria();
     $this->assertTrue(array_key_exists('_id', $criteria));
     $this->assertEquals($student->getId()->__toString(), $criteria['_id']->__toString());
     $name = new My_ShantyMongo_Name();
     $this->assertTrue($name->isNewDocument());
     $this->assertTrue($name->isRootDocument());
     $this->assertFalse($name->isConnected());
     $this->assertFalse($name->hasKey());
     $this->assertFalse($name->hasId());
     $this->assertEquals(array(), $name->getInheritance());
     $config = array('new' => false, 'connectionGroup' => 'default', 'db' => TESTS_SHANTY_MONGO_DB, 'collection' => 'user', 'pathToDocument' => 'name', 'requirementModifiers' => array('middle' => array('Required' => null)));
     $name = new My_ShantyMongo_Name(array('first' => 'Jerry'), $config);
     $this->assertFalse($name->isNewDocument());
     $this->assertFalse($name->isRootDocument());
     $this->assertTrue($name->isConnected());
     $requirements = array('_id' => array('Validator:MongoId' => null), '_type' => array('Array' => null), 'first' => array('Required' => null), 'last' => array('Required' => null), 'middle' => array('Required' => null));
     $this->assertEquals($requirements, $name->getRequirements());
 }
Example #2
0
 public function testConstruct()
 {
     $student = new My_ShantyMongo_Student();
     $this->assertTrue($student->isNewDocument());
     $this->assertTrue($student->isRootDocument());
     $this->assertTrue($student->isConnected());
     $this->assertTrue($student->hasKey());
     $this->assertTrue($student->hasId());
     $this->assertInternalType(PHPUnit_Framework_Constraint_IsType::TYPE_OBJECT, $student->getId());
     $this->assertEquals('MongoId', get_class($student->getId()));
     $this->assertEquals(My_ShantyMongo_Student::getCollectionRequirements(), $student->getRequirements());
     $type = array('My_ShantyMongo_Student', 'My_ShantyMongo_User');
     $this->assertEquals($type, $student->getInheritance());
     $criteria = $student->getCriteria();
     $this->assertTrue(array_key_exists('_id', $criteria));
     $this->assertEquals($student->getId()->__toString(), $criteria['_id']->__toString());
     $name = new My_ShantyMongo_Name();
     $this->assertTrue($name->isNewDocument());
     $this->assertTrue($name->isRootDocument());
     $this->assertFalse($name->isConnected());
     $this->assertFalse($name->hasKey());
     $this->assertFalse($name->hasId());
     $this->assertEquals(array(), $name->getInheritance());
     $config = array('new' => false, 'connectionGroup' => 'default', 'db' => TESTS_SHANTY_MONGO_DB, 'collection' => 'user', 'pathToDocument' => 'name', 'requirementModifiers' => array('middle' => array('Required' => null)));
     $name = new My_ShantyMongo_Name(array('first' => 'Jerry'), $config);
     $this->assertFalse($name->isNewDocument());
     $this->assertFalse($name->isRootDocument());
     $this->assertTrue($name->isConnected());
     $this->assertEquals($name->first, 'Jerry');
     $requirements = array('_id' => array('Validator:MongoId' => null), '_type' => array('Array' => null), 'first' => array('Required' => null), 'last' => array('Required' => null), 'middle' => array('Required' => null));
     $this->assertEquals($requirements, $name->getRequirements());
     // Test input data initialisation
     $data = array('name' => array('first' => 'Jerry', 'last' => 'Springer'), 'addresses' => array(array('street' => '35 Sheep Lane', 'suburb' => 'Sheep Heaven', 'state' => 'New Zealand', 'postcode' => '2345', 'country' => 'New Zealand')), 'friends' => array(MongoDBRef::create('user', new MongoId('4c04516f1f5f5e21361e3ab1')), MongoDBRef::create('user', new MongoId('4c0451791f5f5e21361e3ab2'))));
     $student = new My_ShantyMongo_Student($data);
     $this->assertNotNull($student->name);
     $this->assertEquals('My_ShantyMongo_Name', get_class($student->name));
     $this->assertEquals('Sheep Heaven', $student->addresses[0]->suburb);
     $this->assertEquals('My_ShantyMongo_ArtStudent', get_class($student->friends[1]));
 }
 /**
  * @depends testMakeRequirementsTidy
  */
 public function testGetCollectionRequirements()
 {
     $requirements = array('concession' => array('Required' => null));
     $this->assertEquals($requirements, My_ShantyMongo_Student::getCollectionRequirements(false));
     $requirements = array('_id' => array('Validator:MongoId' => null), '_type' => array('Array' => null), 'name' => array('Document:My_ShantyMongo_Name' => null, 'Required' => null), 'email' => array('Required' => null, 'Validator:EmailAddress' => null), 'addresses' => array('DocumentSet' => null), 'addresses.$.street' => array('Required' => null), 'addresses.$.state' => array('Required' => null), 'addresses.$.suburb' => array('Required' => null), 'addresses.$.postcode' => array('Required' => null), 'friends' => array('DocumentSet:My_ShantyMongo_Users' => null), 'friends.$' => array('Document:My_ShantyMongo_User' => null, 'AsReference' => null), 'sex' => array('Required' => null, 'Validator:InArray' => array('F', 'M')), 'partner' => array('Document:My_ShantyMongo_User' => null, 'AsReference' => null), 'concession' => array('Required' => null));
     $this->assertEquals($requirements, My_ShantyMongo_Student::getCollectionRequirements());
     $requirements = array('_id' => array('Validator:MongoId' => null), '_type' => array('Array' => null), 'name' => array('Document:My_ShantyMongo_Name' => null, 'Required' => null), 'email' => array('Required' => null, 'Validator:EmailAddress' => null), 'addresses' => array('DocumentSet' => null), 'addresses.$.street' => array('Required' => null), 'addresses.$.state' => array('Required' => null), 'addresses.$.suburb' => array('Required' => null), 'addresses.$.postcode' => array('Required' => null), 'friends' => array('DocumentSet:My_ShantyMongo_Users' => null), 'friends.$' => array('Document:My_ShantyMongo_User' => null, 'AsReference' => null), 'sex' => array('Required' => null, 'Validator:InArray' => array('F', 'M')), 'partner' => array('Document:My_ShantyMongo_User' => null, 'AsReference' => null));
     // This assertion is needed to ensure parent requirements have not been contaminated by child requirements
     $this->assertEquals($requirements, My_ShantyMongo_User::getCollectionRequirements());
 }