I'm trying to unit test a Kohana application using SimpleTest and Phactory. I have two separate directories, C:\xampp\htdocs\kohana (the application directory) and C:\xampp\htdocs\unit_tests\ (where I have the simpletest and Phactory subdirectories). I'm placing my test files in the C:\xampp\htdocs\unit_tests\simpletest\test directory. I require kohana's test_index.php to autoload the required classes. However when I access http://localhost/unit_tests/simpletest/test/vendoruser_test.php I get a Page Not Found error:
The page you requested, unit_tests/simpletest/test/vendoruser_test.php, could not be found.
I think I'm getting this error because Kohana is trying to serve the page but the vendoruser_test.php file is in an external directory. Is there a way to prevent Kohana to serve the page? Can I set a route to an external directory? Is there any other solution? Here's the code:
<?php
require_once('../../../kohana/test_index.php');
require_once('../autorun.php');
require_once('../../Phactory/lib/Phactory.php');
// this call generates a class called 'Vendor_Model'
// with the same interface as 'Vendor_Model'
Mock::generate('Vendor_Model');
// this call generates a class called 'User_Model'
// with the same interface as 'User_Model'
Mock::generate('User_Model');
class Vendoruser_test extends UnitTestCase
{
function setUp()
{
// create a db connection and tell Phactory to use it
$pdo = new PDO('mysql:host=127.0.0.1; dbname=testdb', 'root', '');
$pdo->exec('set names utf8');
Phactory::setConnection($pdo);
// reset any existing blueprints and empty any tables Phactory has used
Phactory::reset();
// define default values for each user we will create
Phactory::define('user', array('id' => 1, 'vendor_id' => 1, 'name' => 'Test User $n'));
// define default values for each vendor we will create
Phactory::define('vendor', array('id' => 1, 'name' => 'Test Vendor $n'));
}
function tearDown()
{
Phactory::reset();
}
public function test_get_users_mock_objects()
{
$vendor1 = new MockVendor_Model('vendor', 1);
$vendor2 = new MockVendor_Model('vendor', 2);
$mockedUsers1 = array(
array('id' => 1, 'vendor_id' => 1, 'name' => 'Luis Guilherme'),
array('id' => 2, 'vendor_id' => 1, 'name' => 'Gomes Albuquerque'),
);
$mockedUsers2 = array(
array('id' => 3, 'vendor_id' => 2, 'name' => 'Santos Castelo'),
array('id' => 4, 'vendor_id' => 2, 'name' => 'Ana Maria'),
array('id' => 5, 'vendor_id' => 2, 'name' => 'José António'),
array('id' => 6, 'vendor_id' => 2, 'name' => 'Susana Cristina'),
array('id' => 7, 'vendor_id' => 2, 'name' => 'Luis Filipe'),
);
$vendor1->returns('get_users', $mockedUsers1);
$vendor2->returns('get_users', $mockedUsers2);
$A_users1 = $vendor1->get_users();
$A_users2 = $vendor2->get_users();
$this->assertEqual($mockedUsers1, $A_users1);
$this->assertEqual($mockedUsers2, $A_users2);
}
public function test_get_users_mock_database()
{
/*
// create 10 users with id from 1 to 10, vendor_id = 1 and name from 'Test User 0' to 'Test User 9'
$users1 = array();
for($i = 1; $i <= 10; $i++)
{
// create a row in the db with vendor_id = 1 and name = 'Test User $n', and store a Phactory_Row object
$users1[] = Phactory::create('user', array('id' => $i));
}
// create 10 users with id from 11 to 20, vendor_id = 2 and name from 'Test User 10' to 'Test User 19'
$users2 = array();
for($i = 11; $i <= 20; $i++)
{
// create a row in the db with vendor_id = 2 and name = 'Test User $n', and store a Phactory_Row object
$users2[] = Phactory::create('user', array('id' => $i, 'vendor_id' => 2));
}
*/
// create a row in the db with id = 1 and name = 'Alfagene'
Phactory::create('vendor', array('id' => 1, 'name' => 'Alfagene'));
// create a row in the db with id = 2 and name = 'Via Athena'
Phactory::create('vendor', array('id' => 2, 'name' => 'Via Athena'));
// create a row in the db with id = 1, vendor_id = 1 and name = 'Luis Guilherme', and store a Phactory_Row object
$user1 = Phactory::create('user', array('id' => 1, 'vendor_id' => 1, 'name' => 'Luis Guilherme'));
// create a row in the db with id = 2, vendor_id = 1 and name = 'Gomes Albuquerque', and store a Phactory_Row object
$user2 = Phactory::create('user', array('id' => 2, 'vendor_id' => 1, 'name' => 'Gomes Albuquerque'));
// create a row in the db with id = 3, vendor_id = 2 and name = 'Santos Castelo', and store a Phactory_Row object
$user3 = Phactory::create('user', array('id' => 3, 'vendor_id' => 2, 'name' => 'Santos Castelo'));
// create a row in the db with id = 4, vendor_id = 2 and name = 'Ana Maria', and store a Phactory_Row object
$user4 = Phactory::create('user', array('id' => 4, 'vendor_id' => 2, 'name' => 'Ana Maria'));
// create a row in the db with id = 5, vendor_id = 2 and name = 'José António', and store a Phactory_Row object
$user5 = Phactory::create('user', array('id' => 5, 'vendor_id' => 2, 'name' => 'José António'));
// create a row in the db with id = 6, vendor_id = 2 and name = 'Susana Cristina', and store a Phactory_Row object
$user6 = Phactory::create('user', array('id' => 6, 'vendor_id' => 2, 'name' => 'Susana Cristina'));
// create a row in the db with id = 7, vendor_id = 2 and name = 'Luis Filipe', and store a Phactory_Row object
$user7 = Phactory::create('user', array('id' => 7, 'vendor_id' => 2, 'name' => 'Luis Filipe'));
$vendor1 = ORM::factory('vendor', 1);
$vendor2 = ORM::factory('vendor', 2);
// $vendor1 = Vendor_Model::get_by_id(1);
// $vendor2 = Vendor_Model::get_by_id(2);
$A_users1 = $vendor1->get_users();
$A_users2 = $vendor2->get_users();
$vendor_id1 = $A_users1[0]->vendor_id;
$name1 = $A_users1[0]->name;
$vendor_id2 = $A_users1[1]->vendor_id;
$name2 = $A_users1[1]->name;
$vendor_id3 = $A_users2[0]->vendor_id;
$name3 = $A_users2[0]->name;
$vendor_id4 = $A_users2[1]->vendor_id;
$name4 = $A_users2[1]->name;
$vendor_id5 = $A_users2[2]->vendor_id;
$name5 = $A_users2[2]->name;
$vendor_id6 = $A_users2[3]->vendor_id;
$name6 = $A_users2[3]->name;
$vendor_id7 = $A_users2[4]->vendor_id;
$name7 = $A_users2[4]->name;
$this->assertEqual($user1->vendor_id, $vendor_id1);
$this->assertEqual($user1->name, $name1);
$this->assertEqual($user2->vendor_id, $vendor_id2);
$this->assertEqual($user2->name, $name2);
$this->assertEqual($user3->vendor_id, $vendor_id3);
$this->assertEqual($user3->name, $name3);
$this->assertEqual($user4->vendor_id, $vendor_id4);
$this->assertEqual($user4->name, $name4);
$this->assertEqual($user5->vendor_id, $vendor_id5);
$this->assertEqual($user5->name, $name5);
$this->assertEqual($user6->vendor_id, $vendor_id6);
$this->assertEqual($user6->name, $name6);
$this->assertEqual($user7->vendor_id, $vendor_id7);
$this->assertEqual($user7->name, $name7);
/*
// auxiliary counter
$i = 0;
// test that get_users() returns the correct vendor_id and name for each user
foreach($users1 as $user)
{
$vendor_id1 = $A_users1[$i]->vendor_id;
$this->assertEqual($user->vendor_id, $vendor_id1);
$name1 = $A_users1[$i]->name;
$this->assertEqual($user->name, $name1);
$i++;
}
// auxiliary counter
$i = 0;
// test that get_users() returns the correct vendor_id and name for each user
foreach($users2 as $user)
{
$vendor_id2 = $A_users2[$i]->vendor_id;
$this->assertEqual($user->vendor_id, $vendor_id2);
$name2 = $A_users2[$i]->name;
$this->assertEqual($user->name, $name2);
$i++;
}
*/
}
public function test_get_name_mock_objects()
{
$user1 = new MockUser_Model('user', 1);
$user2 = new MockUser_Model('user', 2);
$user3 = new MockUser_Model('user', 3);
$user4 = new MockUser_Model('user', 4);
$user5 = new MockUser_Model('user', 5);
$user6 = new MockUser_Model('user', 6);
$user7 = new MockUser_Model('user', 7);
$user1->returns('get_name', 'Luis Guilherme');
$user2->returns('get_name', 'Gomes Albuquerque');
$user3->returns('get_name', 'Santos Castelo');
$user4->returns('get_name', 'Ana Maria');
$user5->returns('get_name', 'José António');
$user6->returns('get_name', 'Susana Cristina');
$user7->returns('get_name', 'Luis Filipe');
$name1 = $user1->get_name();
$name2 = $user2->get_name();
$name3 = $user3->get_name();
$name4 = $user4->get_name();
$name5 = $user5->get_name();
$name6 = $user6->get_name();
$name7 = $user7->get_name();
$this->assertEqual('Luis Guilherme', $name1);
$this->assertEqual('Gomes Albuquerque', $name2);
$this->assertEqual('Santos Castelo', $name3);
$this->assertEqual('Ana Maria', $name4);
$this->assertEqual('José António', $name5);
$this->assertEqual('Susana Cristina', $name6);
$this->assertEqual('Luis Filipe', $name7);
}
public function test_get_name_mock_database()
{
// create a row in the db with id = 1, vendor_id = 1 and name = 'Luis Guilherme', and store a Phactory_Row object
$user1_phactory_row = Phactory::create('user', array('id' => 1, 'vendor_id' => 1, 'name' => 'Luis Guilherme'));
// create a row in the db with id = 2, vendor_id = 1 and name = 'Gomes Albuquerque', and store a Phactory_Row object
$user2_phactory_row = Phactory::create('user', array('id' => 2, 'vendor_id' => 1, 'name' => 'Gomes Albuquerque'));
// create a row in the db with id = 3, vendor_id = 2 and name = 'Santos Castelo', and store a Phactory_Row object
$user3_phactory_row = Phactory::create('user', array('id' => 3, 'vendor_id' => 2, 'name' => 'Santos Castelo'));
// create a row in the db with id = 4, vendor_id = 2 and name = 'Ana Maria', and store a Phactory_Row object
$user4_phactory_row = Phactory::create('user', array('id' => 4, 'vendor_id' => 2, 'name' => 'Ana Maria'));
// create a row in the db with id = 5, vendor_id = 2 and name = 'José António', and store a Phactory_Row object
$user5_phactory_row = Phactory::create('user', array('id' => 5, 'vendor_id' => 2, 'name' => 'José António'));
// create a row in the db with id = 6, vendor_id = 2 and name = 'Susana Cristina', and store a Phactory_Row object
$user6_phactory_row = Phactory::create('user', array('id' => 6, 'vendor_id' => 2, 'name' => 'Susana Cristina'));
// create a row in the db with id = 7, vendor_id = 2 and name = 'Luis Filipe', and store a Phactory_Row object
$user7_phactory_row = Phactory::create('user', array('id' => 7, 'vendor_id' => 2, 'name' => 'Luis Filipe'));
$user1 = ORM::factory('user', 1);
$user2 = ORM::factory('user', 2);
$user3 = ORM::factory('user', 3);
$user4 = ORM::factory('user', 4);
$user5 = ORM::factory('user', 5);
$user6 = ORM::factory('user', 6);
$user7 = ORM::factory('user', 7);
$name1 = $user1->get_name();
$name2 = $user2->get_name();
$name3 = $user3->get_name();
$name4 = $user4->get_name();
$name5 = $user5->get_name();
$name6 = $user6->get_name();
$name7 = $user7->get_name();
$this->assertEqual($user1_phactory_row->name, $name1);
$this->assertEqual($user2_phactory_row->name, $name2);
$this->assertEqual($user3_phactory_row->name, $name3);
$this->assertEqual($user4_phactory_row->name, $name4);
$this->assertEqual($user5_phactory_row->name, $name5);
$this->assertEqual($user6_phactory_row->name, $name6);
$this->assertEqual($user7_phactory_row->name, $name7);
}
public function test_get_last_name_mock_objects()
{
$user1 = new MockUser_Model('user', 1);
$user2 = new MockUser_Model('user', 2);
$user3 = new MockUser_Model('user', 3);
$user4 = new MockUser_Model('user', 4);
$user5 = new MockUser_Model('user', 5);
$user6 = new MockUser_Model('user', 6);
$user7 = new MockUser_Model('user', 7);
$user1->returns('get_last_name', 'Guilherme');
$user2->returns('get_last_name', 'Albuquerque');
$user3->returns('get_last_name', 'Castelo');
$user4->returns('get_last_name', 'Maria');
$user5->returns('get_last_name', 'António');
$user6->returns('get_last_name', 'Cristina');
$user7->returns('get_last_name', 'Filipe');
$last_name1 = $user1->get_last_name();
$last_name2 = $user2->get_last_name();
$last_name3 = $user3->get_last_name();
$last_name4 = $user4->get_last_name();
$last_name5 = $user5->get_last_name();
$last_name6 = $user6->get_last_name();
$last_name7 = $user7->get_last_name();
$this->assertEqual('Guilherme', $last_name1);
$this->assertEqual('Albuquerque', $last_name2);
$this->assertEqual('Castelo', $last_name3);
$this->assertEqual('Maria', $last_name4);
$this->assertEqual('António', $last_name5);
$this->assertEqual('Cristina', $last_name6);
$this->assertEqual('Filipe', $last_name7);
}
public function test_get_last_name_mock_database()
{
// create a row in the db with id = 1, vendor_id = 1 and name = 'Luis Guilherme'
Phactory::create('user', array('id' => 1, 'vendor_id' => 1, 'name' => 'Luis Guilherme'));
// create a row in the db with id = 2, vendor_id = 1 and name = 'Gomes Albuquerque'
Phactory::create('user', array('id' => 2, 'vendor_id' => 1, 'name' => 'Gomes Albuquerque'));
// create a row in the db with id = 3, vendor_id = 2 and name = 'Santos Castelo'
Phactory::create('user', array('id' => 3, 'vendor_id' => 2, 'name' => 'Santos Castelo'));
// create a row in the db with id = 4, vendor_id = 2 and name = 'Ana Maria', and store a Phactory_Row object
Phactory::create('user', array('id' => 4, 'vendor_id' => 2, 'name' => 'Ana Maria'));
// create a row in the db with id = 5, vendor_id = 2 and name = 'José António'
Phactory::create('user', array('id' => 5, 'vendor_id' => 2, 'name' => 'José António'));
// create a row in the db with id = 6, vendor_id = 2 and name = 'Susana Cristina'
Phactory::create('user', array('id' => 6, 'vendor_id' => 2, 'name' => 'Susana Cristina'));
// create a row in the db with id = 7, vendor_id = 2 and name = 'Luis Filipe'
Phactory::create('user', array('id' => 7, 'vendor_id' => 2, 'name' => 'Luis Filipe'));
$user1 = ORM::factory('user', 1);
$user2 = ORM::factory('user', 2);
$user3 = ORM::factory('user', 3);
$user4 = ORM::factory('user', 4);
$user5 = ORM::factory('user', 5);
$user6 = ORM::factory('user', 6);
$user7 = ORM::factory('user', 7);
$last_name1 = $user1->get_last_name();
$last_name2 = $user2->get_last_name();
$last_name3 = $user3->get_last_name();
$last_name4 = $user4->get_last_name();
$last_name5 = $user5->get_last_name();
$last_name6 = $user6->get_last_name();
$last_name7 = $user7->get_last_name();
$this->assertEqual('Guilherme', $last_name1);
$this->assertEqual('Albuquerque', $last_name2);
$this->assertEqual('Castelo', $last_name3);
$this->assertEqual('Maria', $last_name4);
$this->assertEqual('António', $last_name5);
$this->assertEqual('Cristina', $last_name6);
$this->assertEqual('Filipe', $last_name7);
}
public function test_get_vendor_mock_objects()
{
$user1 = new MockUser_Model('user', 1);
$user2 = new MockUser_Model('user', 2);
$user3 = new MockUser_Model('user', 3);
$user4 = new MockUser_Model('user', 4);
$user5 = new MockUser_Model('user', 5);
$user6 = new MockUser_Model('user', 6);
$user7 = new MockUser_Model('user', 7);
$mockedVendor1 = array(
array('id' => 1, 'name' => 1, 'Alfagene'),
);
$mockedVendor2 = array(
array('id' => 2, 'name' => 1, 'Via Athena'),
);
$user1->returns('get_vendor', $mockedVendor1);
$user2->returns('get_vendor', $mockedVendor1);
$user3->returns('get_vendor', $mockedVendor2);
$user4->returns('get_vendor', $mockedVendor2);
$user5->returns('get_vendor', $mockedVendor2);
$user6->returns('get_vendor', $mockedVendor2);
$user7->returns('get_vendor', $mockedVendor2);
$vendor1 = $user1->get_vendor();
$vendor2 = $user2->get_vendor();
$vendor3 = $user3->get_vendor();
$vendor4 = $user4->get_vendor();
$vendor5 = $user5->get_vendor();
$vendor6 = $user6->get_vendor();
$vendor7 = $user7->get_vendor();
$this->assertEqual($mockedVendor1, $vendor1);
$this->assertEqual($mockedVendor1, $vendor2);
$this->assertEqual($mockedVendor2, $vendor3);
$this->assertEqual($mockedVendor2, $vendor4);
$this->assertEqual($mockedVendor2, $vendor5);
$this->assertEqual($mockedVendor2, $vendor6);
$this->assertEqual($mockedVendor2, $vendor7);
}
public function test_get_vendor_mock_database()
{
// create a row in the db with id = 1 and name = 'Alfagene', and store a Phactory_Row object
$vendor1_phactory_row = Phactory::create('vendor', array('id' => 1, 'name' => 'Alfagene'));
// create a row in the db with id = 2 and name = 'Via Athena', and store a Phactory_Row object
$vendor2_phactory_row = Phactory::create('vendor', array('id' => 2, 'name' => 'Via Athena'));
// create a row in the db with id = 1, vendor_id = 1 and name = 'Luis Guilherme', and store a Phactory_Row object
$user1_phactory_row = Phactory::create('user', array('id' => 1, 'vendor_id' => 1, 'name' => 'Luis Guilherme'));
// create a row in the db with id = 2, vendor_id = 1 and name = 'Gomes Albuquerque', and store a Phactory_Row object
$user2_phactory_row = Phactory::create('user', array('id' => 2, 'vendor_id' => 1, 'name' => 'Gomes Albuquerque'));
// create a row in the db with id = 3, vendor_id = 2 and name = 'Santos Castelo', and store a Phactory_Row object
$user3_phactory_row = Phactory::create('user', array('id' => 3, 'vendor_id' => 2, 'name' => 'Santos Castelo'));
// create a row in the db with id = 4, vendor_id = 2 and name = 'Ana Maria', and store a Phactory_Row object
$user4_phactory_row = Phactory::create('user', array('id' => 4, 'vendor_id' => 2, 'name' => 'Ana Maria'));
// create a row in the db with id = 5, vendor_id = 2 and name = 'José António', and store a Phactory_Row object
$user5_phactory_row = Phactory::create('user', array('id' => 5, 'vendor_id' => 2, 'name' => 'José António'));
// create a row in the db with id = 6, vendor_id = 2 and name = 'Susana Cristina', and store a Phactory_Row object
$user6_phactory_row = Phactory::create('user', array('id' => 6, 'vendor_id' => 2, 'name' => 'Susana Cristina'));
// create a row in the db with id = 7, vendor_id = 2 and name = 'Luis Filipe', and store a Phactory_Row object
$user7_phactory_row = Phactory::create('user', array('id' => 7, 'vendor_id' => 2, 'name' => 'Luis Filipe'));
$user1 = ORM::factory('user', 1);
$user2 = ORM::factory('user', 2);
$user3 = ORM::factory('user', 3);
$user4 = ORM::factory('user', 4);
$user5 = ORM::factory('user', 5);
$user6 = ORM::factory('user', 6);
$user7 = ORM::factory('user', 7);
$vendor1 = $user1->get_vendor();
$vendor2 = $user2->get_vendor();
$vendor3 = $user3->get_vendor();
$vendor4 = $user4->get_vendor();
$vendor5 = $user5->get_vendor();
$vendor6 = $user6->get_vendor();
$vendor7 = $user7->get_vendor();
$id1 = $vendor1->id;
$id2 = $vendor2->id;
$id3 = $vendor3->id;
$id4 = $vendor4->id;
$id5 = $vendor5->id;
$id6 = $vendor6->id;
$id7 = $vendor7->id;
$name1 = $vendor1->name;
$name2 = $vendor2->name;
$name3 = $vendor3->name;
$name4 = $vendor4->name;
$name5 = $vendor5->name;
$name6 = $vendor6->name;
$name7 = $vendor7->name;
$this->assertEqual($vendor1_phactory_row->id, $id1);
$this->assertEqual($vendor1_phactory_row->id, $id2);
$this->assertEqual($vendor2_phactory_row->id, $id3);
$this->assertEqual($vendor2_phactory_row->id, $id4);
$this->assertEqual($vendor2_phactory_row->id, $id5);
$this->assertEqual($vendor2_phactory_row->id, $id6);
$this->assertEqual($vendor2_phactory_row->id, $id7);
$this->assertEqual($vendor1_phactory_row->name, $name1);
$this->assertEqual($vendor1_phactory_row->name, $name2);
$this->assertEqual($vendor2_phactory_row->name, $name3);
$this->assertEqual($vendor2_phactory_row->name, $name4);
$this->assertEqual($vendor2_phactory_row->name, $name5);
$this->assertEqual($vendor2_phactory_row->name, $name6);
$this->assertEqual($vendor2_phactory_row->name, $name7);
}
public function test_square_users()
{
$user_model = new MockUser_Model('user');
$user_model->returns('get_number_users', 10);
$n_users = $user_model->get_number_users();
$square_users = pow($n_users, 2);
$this->assertEqual($square_users, 100);
}
}
?>
Thanks in advance
Aucun commentaire:
Enregistrer un commentaire