/** * Integration test for: * - Kohana_Jam_Behavior_Sortable::model_before_create * - Kohana_Jam_Behavior_Sortable::builder_call_where_in_scope * - Kohana_Jam_Behavior_Sortable::model_call_get_position * * @coversNothing */ public function test_set() { $last_in_group = Jam::all('test_video')->where('group', '=', 'one')->first(); $new = Jam::create('test_video', array('file' => 'file3.jpg', 'group' => 'one')); $first_in_group = Jam::create('test_video', array('file' => 'file3.jpg', 'group' => 'nogroup')); $this->assertGreaterThan($last_in_group->position, $new->position); $this->assertEquals(1, $first_in_group->position); }
/** * @covers Jam_Behavior_Taxonomable::builder_call_with_terms */ public function test_builder_method_with_terms() { Jam::create('taxonomy_event', array('name' => 'abc', 'terms' => array(array('id' => 100, 'name' => 'poiuy', 'slug' => 'poiuy', 'vocabulary' => 1)))); Jam::create('taxonomy_event', array('name' => 'xyz', 'terms' => array(array('id' => 101, 'name' => 'qwerty', 'slug' => 'qwerty', 'vocabulary' => 1)))); $builder = Jam::all('taxonomy_event'); $this->assertEquals('SELECT `taxonomy_events`.* FROM `taxonomy_events`', $builder); $builder->with_terms('qwerty'); $this->assertEquals("SELECT `taxonomy_events`.* FROM `taxonomy_events` JOIN `terms_items` AS `terms-101` ON (`terms-101`.`item_id` = `taxonomy_events`.`id` AND `terms-101`.`item_model` = 'taxonomy_event' AND `terms-101`.`term_id` IN (101))", (string) $builder); $builder->reset(); $builder->with_terms('poiuy'); $this->assertEquals("SELECT `taxonomy_events`.* FROM `taxonomy_events` JOIN `terms_items` AS `terms-100` ON (`terms-100`.`item_id` = `taxonomy_events`.`id` AND `terms-100`.`item_model` = 'taxonomy_event' AND `terms-100`.`term_id` IN (100))", (string) $builder); $builder->reset(); $builder->with_terms(array('qwerty', 'poiuy')); $this->assertEquals("SELECT `taxonomy_events`.* FROM `taxonomy_events` JOIN `terms_items` AS `terms-100-101` ON (`terms-100-101`.`item_id` = `taxonomy_events`.`id` AND `terms-100-101`.`item_model` = 'taxonomy_event' AND `terms-100-101`.`term_id` IN (100,101))", (string) $builder); $builder->reset(); $builder->with_terms(array('qwerty', 'poiuy'), 'NOT IN'); $this->assertEquals("SELECT `taxonomy_events`.* FROM `taxonomy_events` JOIN `terms_items` AS `terms-100-101` ON (`terms-100-101`.`item_id` = `taxonomy_events`.`id` AND `terms-100-101`.`item_model` = 'taxonomy_event' AND `terms-100-101`.`term_id` NOT IN (100,101))", (string) $builder); $builder->reset(); $builder->with_terms('poiusadsfdsfy'); // Missing slugs are completely ignored and do not limit the query $this->assertEquals("SELECT `taxonomy_events`.* FROM `taxonomy_events`", (string) $builder); }
/** * @covers Kohana_Jam_Association_Materializedpath_Hasmany::save * @covers Kohana_Jam_Association_Materializedpath_Hasmany::model_after_delete */ public function test_shallow() { $nine = Jam::create('category', array('name' => 'nine')); $four = Jam::find('category', 4); $four->children->add($nine); $four->save(); $one = Jam::find('category', 1); $two = Jam::find('category', 2); $four = Jam::find('category', 4); $this->assertTrue($nine->is_decendent_of($one)); $this->assertTrue($nine->is_decendent_of($two)); $this->assertTrue($nine->is_decendent_of($four)); $seven = Jam::find('category', 7); $seven->parent = $nine; $seven->save(); $this->assertTrue($seven->is_decendent_of($nine)); $this->assertTrue($seven->is_decendent_of($two)); $this->assertTrue($seven->is_decendent_of($one)); $this->assertTrue($seven->is_decendent_of($four)); $this->assertTrue($nine->children->has($seven)); $nine->delete(); $this->assertEquals(array(2, 3, 4, 5, 6, 8), $one->decendents()->ids()); }
<?php $role_login = Jam::create('test_role', array('name' => 'login', 'description' => 'Login Permssion')); $role_admin = Jam::create('test_role', array('name' => 'admin', 'description' => 'Admin Permssion')); $user1 = Jam::create('test_user', array('id' => '1', 'email' => '*****@*****.**', 'username' => 'admin', 'password' => 'qweqwe', 'logins' => '5', 'last_login' => strtotime('last month'), 'last_login_ip' => '10.20.10.1', 'facebook_uid' => 'facebook-test', 'roles' => array($role_login), 'user_tokens' => array(array('id' => 1, 'user_agent' => '92b1e2f536fa11fa996731b98b219f837d4436c8', 'token' => '4c14538f3c4a3b8cf30086958911d0d0ae1b2eb7', 'created' => strtotime('last week'), 'expires' => strtotime('tomorrow')), array('id' => 3, 'user_agent' => '92b1e2f536fa11fa996731b98b219f837d4436c8', 'token' => '59ed73c1a3c105e7409c69c21770d674949c07e9', 'created' => strtotime('last month'), 'expires' => strtotime('last week'))))); $user2 = Jam::create('test_user', array('id' => '2', 'email' => '*****@*****.**', 'username' => 'user', 'password' => 'qweqwe', 'logins' => '20', 'last_login' => strtotime('last week'), 'last_login_ip' => '10.20.10.2', 'roles' => array($role_login, $role_admin), 'user_tokens' => array(array('id' => 2, 'user_agent' => '92b1e2f536fa11fa996731b98b219f837d4436c8', 'token' => 'f0dc12b77cf0214fbd04e2a224422f44adc7652c', 'created' => strtotime('last week'), 'expires' => strtotime('tomorrow')))));
public function test_before_create() { $video = Jam::create('test_video', array('file' => 'test.mp4')); $this->assertNotNull($video->token); }
public function test_mass_children() { $n1 = Jam::create('test_closurelist', array('name' => 'n1', 'children' => array(array('name' => 'n2', 'children' => array(array('name' => 'n3')))))); $this->assertEquals('n1', $n1->name()); $this->assertCount(1, $n1->children); $this->assertEquals('n2', $n1->children[0]->name()); $this->assertCount(1, $n1->children[0]->children); $this->assertEquals('n3', $n1->children[0]->children[0]->name()); $n1 = Jam::find('test_closurelist', 'n1'); $this->assertEquals('n1', $n1->name()); $this->assertCount(1, $n1->children); $this->assertEquals('n2', $n1->children[0]->name()); $this->assertCount(1, $n1->children[0]->children); $this->assertEquals('n3', $n1->children[0]->children[0]->name()); }
$post1 = Jam::create('test_post', array('id' => 1, 'name' => 'First Post', 'slug' => 'first-post', 'status' => 'draft', 'created' => 1264985737, 'updated' => 1264985737, 'published' => 1264985737, 'test_author' => $author1, 'test_blog' => $blog1, 'test_categories' => array(1, 2, 3))); $post2 = Jam::create('test_post', array('id' => 2, 'name' => 'Second Post', 'slug' => 'first-post', 'status' => 'review', 'created' => 1264985737, 'updated' => 1264985740, 'published' => 1264985737, 'test_author' => $author1, 'test_blog' => $blog3, 'approved_by' => $author1, 'test_categories' => array(2))); $post3 = Jam::create('test_post', array('id' => 3, 'name' => 'Third Post', 'slug' => 'third-post', 'status' => 'draft', 'created' => 1264985737, 'updated' => 1264985740, 'published' => 1264985737)); /** * Tags */ Jam::create('test_tag', array('id' => 1, 'name' => 'red', 'slug' => 'red', 'test_post' => $post1, 'test_blogs' => array($blog1))); Jam::create('test_tag', array('id' => 2, 'name' => 'green', 'slug' => 'green', 'test_post' => $post1, 'test_blogs' => array($blog1))); Jam::create('test_tag', array('id' => 3, 'name' => 'orange', 'slug' => 'orange', 'test_post' => $post2, 'test_blogs' => array($blog2))); Jam::create('test_tag', array('id' => 4, 'name' => '--black', 'slug' => 'black', 'test_post' => $post1, 'test_blogs' => array($blog2))); Jam::create('test_tag', array('id' => 5, 'name' => '* List 1', 'slug' => 'list-1', 'test_post' => $post1, 'test_blogs' => array($blog3))); Jam::create('test_tag', array('id' => 6, 'name' => '* List 2', 'slug' => 'list-2', 'test_post' => $post1, 'test_blogs' => array($blog3))); /** * VIDEOS */ Jam::create('test_video', array('id' => 1, 'file' => 'video.jpg', 'test_holder' => $post1, 'position' => 1, 'slug' => 'video-jpg-1', 'group' => 'one')); Jam::create('test_video', array('id' => 2, 'file' => 'video2.jpg', 'slug' => 'video2-jpg-2', 'position' => 2, 'group' => 'one')); Jam::create('test_video', array('id' => 3, 'file' => 'video3.jpg', 'test_holder' => $post1, 'deleted' => 1, 'position' => 3, 'slug' => 'video3-jpg-3', 'group' => 'two')); Jam::create('test_video', array('id' => 4, 'file' => 'video4.jpg', 'test_holder' => $post1, 'position' => 3, 'slug' => 'video4-jpg-4', 'group' => 'two')); Jam::create('test_video', array('id' => 5, 'file' => 'video5.jpg', 'test_holder' => $post1, 'position' => 3, 'slug' => 'video5-jpg-4', 'group' => 'one')); /** * Images */ $image1 = Jam::create('test_image', array('id' => 1, 'file' => 'file.jpg', 'test_holder' => $post1)); $image2 = Jam::create('test_image', array('id' => 2, 'file' => 'file2.jpg', 'test_holder' => $author1)); $image3 = Jam::create('test_image', array('id' => 3, 'file' => 'file3.jpg')); /** * Copyrights */ Jam::create('test_copyright', array('id' => 1, 'name' => 'My Copyright', 'test_image' => $image1));