a tiny mvc framework for php using php-activerecord
at master 57 lines 1.4 kB view raw
1<?php 2include 'helpers/config.php'; 3include 'helpers/foo.php'; 4 5use foo\bar\biz\User; 6use foo\bar\biz\Newsletter; 7 8class HasManyThroughTest extends DatabaseTest { 9 10 public function test_gh101_has_many_through() { 11 $user = User::find(1); 12 $newsletter = Newsletter::find(1); 13 14 $this->assert_equals($newsletter->id, $user->newsletters[0]->id); 15 $this->assert_equals( 16 'foo\bar\biz\Newsletter', 17 get_class($user->newsletters[0]) 18 ); 19 $this->assert_equals($user->id, $newsletter->users[0]->id); 20 $this->assert_equals( 21 'foo\bar\biz\User', 22 get_class($newsletter->users[0]) 23 ); 24 } 25 26 public function test_gh101_has_many_through_include() { 27 $user = User::find(1, array( 28 'include' => array( 29 'user_newsletters' 30 ) 31 )); 32 33 $this->assert_equals(1, $user->id); 34 $this->assert_equals(1, $user->user_newsletters[0]->id); 35 } 36 37 public function test_gh107_has_many_through_include_eager() { 38 $venue = Venue::find(1, array('include' => array('events'))); 39 $this->assert_equals(1, $venue->events[0]->id); 40 41 $venue = Venue::find(1, array('include' => array('hosts'))); 42 $this->assert_equals(1, $venue->hosts[0]->id); 43 } 44 45 public function test_gh107_has_many_though_include_eager_with_namespace() { 46 $user = User::find(1, array( 47 'include' => array( 48 'newsletters' 49 ) 50 )); 51 52 $this->assert_equals(1, $user->id); 53 $this->assert_equals(1, $user->newsletters[0]->id); 54 } 55} 56# vim: noet ts=4 nobinary 57?>