| 
<?phpnamespace Nkey\Caribu\Tests;
 
 require_once dirname(__FILE__).'/../AbstractDatabaseTestCase.php';
 require_once dirname(__FILE__).'/../Model/MockedModel.php';
 require_once dirname(__FILE__).'/../Model/GuestBookModel.php';
 require_once dirname(__FILE__).'/../Model/AnnotatedGuestBookModel.php';
 
 use Nkey\Caribu\Tests\Model\MockedModel;
 use Nkey\Caribu\Tests\Model\GuestBookModel;
 use Nkey\Caribu\Tests\Model\AnnotatedGuestBookModel;
 
 use Nkey\Caribu\Orm\Orm;
 
 /**
 * Simple test cases
 *
 * This class is part of Caribu package
 *
 * @author Maik Greubel <greubel@nkey.de>
 */
 class SimpleTest extends AbstractDatabaseTestCase
 {
 public function __construct()
 {
 parent::__construct();
 
 $this->options = array(
 'type' => 'sqlite',
 'file' => ':memory:'
 );
 
 $this->flatDataSetFile = dirname(__FILE__).'/../_files/guestbook-seed.xml';
 }
 
 /**
 * (non-PHPdoc)
 * @see \PHPUnit\DbUnit\TestCase::setUp()
 */
 protected function setUp()
 {
 Orm::passivate();
 
 $connection = $this->getConnection()->getConnection();
 $connection->beginTransaction();
 $connection->query("CREATE TABLE guestbook (id INTEGER PRIMARY KEY AUTOINCREMENT, content TEXT, user TEXT, created TEXT)");
 $connection->commit();
 
 parent::setUp();
 }
 
 /**
 * (non-PHPdoc)
 * @see \PHPUnit\DbUnit\TestCase::tearDown()
 */
 protected function tearDown()
 {
 $connection = $this->getConnection()->getConnection();
 $connection->beginTransaction();
 $connection->query("DROP TABLE guestbook");
 $connection->commit();
 
 parent::tearDown();
 }
 
 /**
 * Test simple
 */
 public function testSimple()
 {
 $model = new MockedModel();
 $this->assertFalse($model->getConnection() == null);
 }
 
 /**
 * Test fetching
 */
 public function testFetching()
 {
 $entity = GuestBookModel::get(1);
 $this->assertFalse(is_null($entity));
 $this->assertEquals("joe", $entity->getUser());
 }
 
 /**
 * Test annotated fetching
 */
 public function testAnnotated()
 {
 $entity = AnnotatedGuestBookModel::get(1);
 $this->assertFalse(is_null($entity));
 $this->assertEquals(1, $entity->getGid());
 $this->assertEquals("joe", $entity->getUser());
 }
 
 /**
 * Test finding
 */
 public function testFind()
 {
 $entity = AnnotatedGuestBookModel::find(array('user' => 'joe'), 'id ASC', 1);
 $this->assertFalse(is_null($entity));
 $this->assertEquals(1, $entity->getGid());
 $this->assertEquals("joe", $entity->getUser());
 }
 
 /**
 * Test finding via like keyword
 */
 public function testLikeFind()
 {
 $entity = AnnotatedGuestBookModel::find(array('user' => 'LIKE jo%'), 'id ASC', 1);
 $this->assertFalse(is_null($entity));
 $this->assertEquals(1, $entity->getGid());
 $this->assertEquals("joe", $entity->getUser());
 }
 
 /**
 * Test the finding via OR condition instead of default AND
 */
 public function testOrFind()
 {
 $entities = AnnotatedGuestBookModel::find(array('user' => 'joe', 'OR user' => 'bob'));
 $this->assertEquals(3, count($entities));
 }
 
 /**
 * Test the finding via OR condition instead of default AND using LIKE modifier
 */
 public function testOrLikeFind()
 {
 $entities = AnnotatedGuestBookModel::find(array('user' => 'LIKE jo%', 'OR user' => 'LIKE bo%'));
 $this->assertEquals(3, count($entities));
 }
 
 public function testBetween()
 {
 $entities = AnnotatedGuestBookModel::find(array('gid' => 'BETWEEN 1 AND 3'));
 $this->assertEquals(3, count($entities));
 }
 }
 |