示例#1
0
 public function test_save()
 {
     $model = new Example();
     $backend = new MockBackend();
     $model->set_backend($backend);
     $model->set_attributes($this->example_user);
     $result = $model->save();
     $this->assertEquals($result->username, "test1");
     $this->assertEquals($result->password, "password");
     $this->assertEquals($result->email, "*****@*****.**");
 }
示例#2
0
 public function test_validate_length()
 {
     $this->model->define("username", "CharField", array("maxlength" => "3"));
     $res = $this->model->set_attributes($this->get_fixture("user1"));
     $this->assertFalse($res->validate());
     $res = new Example();
     $res->define("username", "CharField", array("maxlength" => "6"));
     $res->set_attributes($this->get_fixture("user1"));
     $this->assertTrue($res->validate());
     $res = new Example();
     $res->define("username", "CharField", array("minlength" => "6"));
     $res->set_attributes($this->get_fixture("user1"));
     $this->assertFalse($res->validate());
     $this->assertFalse($res->save());
 }
示例#3
0
 /**
  * 
  *
  **/
 public function test_observers()
 {
     $model = new Example();
     $backend = new MockBackend();
     $model->set_backend($backend);
     $model->set_attributes($this->example_user);
     $this->assertEquals($model->fieldset()->key, 'example');
     $model->mock = "now_set";
     $this->assertContains("before_set", $model->fieldset()->mock->observer_calls);
     $this->assertContains("after_set", $model->fieldset()->mock->observer_calls);
     $this->assertEquals($model->mock, 'intercepted');
     $this->assertContains("before_get", $model->fieldset()->mock->observer_calls);
     $this->assertContains("after_get", $model->fieldset()->mock->observer_calls);
     $model->save();
     $this->assertContains("before_save", $model->fieldset()->mock->observer_calls);
     $this->assertContains("after_save", $model->fieldset()->mock->observer_calls);
 }
    protected $_created;
}
THCFrame\Core\Test::add(function () use($database) {
    $example = new Example();
    return $database->sync($example) instanceof THCFrame\Database\Connector\Mysql;
}, "Model syncs", "Model");
THCFrame\Core\Test::add(function () use($database) {
    $example = new Example(array("name" => "foo", "created" => date("Y-m-d H:i:s")));
    return $example->save() > 0;
}, "Model inserts rows", "Model");
THCFrame\Core\Test::add(function () use($database) {
    return Example::count() == 1;
}, "Model fetches number of rows", "Model");
THCFrame\Core\Test::add(function () use($database) {
    $example = new Example(array("name" => "foo", "created" => date("Y-m-d H:i:s")));
    $example->save();
    $example->save();
    $example->save();
    return Example::count() == 2;
}, "Model saves single row multiple times", "Model");
THCFrame\Core\Test::add(function () use($database) {
    $example = new Example(array("id" => 1, "name" => "hello", "created" => date("Y-m-d H:i:s")));
    $example->save();
    return Example::first()->name == "hello";
}, "Model updates rows", "Model");
THCFrame\Core\Test::add(function () use($database) {
    $example = new Example(array("id" => 2));
    $example->delete();
    return Example::count() == 1;
}, "Model deletes rows", "Model");
unset($database);