<?php
namespace 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));
}
}
|