Пример #1
0
 private function insertTestData()
 {
     $baseballTag = new \Documents\Tag('baseball');
     $footballTag = new \Documents\Tag('football');
     $blogPost = new \Documents\BlogPost();
     $blogPost->name = 'Test 1';
     $blogPost->addTag($baseballTag);
     $this->dm->persist($blogPost);
     $blogPost = new \Documents\BlogPost();
     $blogPost->name = 'Test 2';
     $blogPost->addTag($baseballTag);
     $this->dm->persist($blogPost);
     $blogPost = new \Documents\BlogPost();
     $blogPost->name = 'Test 3';
     $blogPost->addTag($footballTag);
     $this->dm->persist($blogPost);
     $blogPost = new \Documents\BlogPost();
     $blogPost->name = 'Test 4';
     $blogPost->addTag($baseballTag);
     $blogPost->addTag($footballTag);
     $this->dm->persist($blogPost);
     $this->dm->flush();
     $this->dm->clear();
 }
 public function testManyToMany()
 {
     $baseballTag = new \Documents\Tag('baseball');
     $blogPost = new \Documents\BlogPost();
     $blogPost->name = 'Test';
     $blogPost->addTag($baseballTag);
     $this->dm->persist($blogPost);
     $this->dm->flush();
     $this->dm->clear();
     $check = $this->dm->getDocumentCollection(get_class($blogPost))->findOne();
     $this->assertEquals(1, count($check['tags']));
     $check = $this->dm->getDocumentCollection('Documents\\Tag')->findOne();
     $this->assertFalse(isset($check['blogPosts']));
     $blogPost = $this->dm->createQueryBuilder('Documents\\BlogPost')->getQuery()->getSingleResult();
     $this->assertEquals(1, count($blogPost->tags));
     $this->dm->clear();
     $tag = $this->dm->createQueryBuilder('Documents\\Tag')->getQuery()->getSingleResult();
     $this->assertEquals('baseball', $tag->name);
     $this->assertEquals(1, $tag->blogPosts->count());
     $this->assertEquals('Test', $tag->blogPosts[0]->name);
 }