public function testGetOneBy() { $field_key = 'external_url'; // Cleanup Keyword::deleteAll(); // Create posts for ($i = 0; $i < 100; $i++) { $keyword = new Keyword(); $keyword->name = sprintf('keyword %d', $i); $keyword->{$field_key} = $i; $keyword->save(); } // Less than $this->assertInstanceOf('Keyword', Keyword::getOneBy($field_key, 1, '<')); // Less than or equal to $this->assertInstanceOf('Keyword', Keyword::getOneBy($field_key, 1, '<=')); // Equal to implicit $this->assertInstanceOf('Keyword', Keyword::getOneBy($field_key, 1)); // Equal to explicit $this->assertInstanceOf('Keyword', Keyword::getOneBy($field_key, 1, '=')); // Greater than $this->assertInstanceOf('Keyword', Keyword::getOneBy($field_key, 1, '>')); // Greater than or equal to $this->assertInstanceOf('Keyword', Keyword::getOneBy($field_key, 1, '>=')); // Order ASC $args = array('orderby' => $field_key, 'order' => 'ASC'); $keyword = Keyword::getOneBy($field_key, '1', '>', $args); $this->assertInstanceOf('Keyword', $keyword); $this->assertEquals('10', $keyword->{$field_key}); // Order DESC $args = array('orderby' => $field_key, 'order' => 'DESC'); $keyword = Keyword::getOneBy($field_key, '1', '>', $args); $this->assertInstanceOf('Keyword', $keyword); $this->assertEquals('99', $keyword->{$field_key}); }