colly_wyx
2018-05-18 50a53f7db63c5729b0ddbc93367117cf35ccf03c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?php
/**
 * PhpUnderControl_PhalApiModelNotORM_Test
 *
 * 针对 ../../PhalApi/Model/NotORM.php PhalApi_Model_NotORM 类的PHPUnit单元测试
 *
 * @author: dogstar 20150226
 */
 
require_once dirname(__FILE__) . '/../test_env.php';
 
if (!class_exists('PhalApi_Model_NotORM')) {
    require dirname(__FILE__) . '/../../PhalApi/Model/NotORM.php';
}
 
class PhpUnderControl_PhalApiModelNotORM_Test extends PHPUnit_Framework_TestCase
{
    public $phalApiModelNotORM;
 
    protected function setUp()
    {
        parent::setUp();
        $this->phalApiModelNotORM = new PhalApi_Model_NotORM_Tmp();
    }
 
    protected function tearDown()
    {
    }
 
 
    /**
     * @group testGet
     */ 
    public function testGet()
    {
        $id = '1';
        $fields = '*';
 
        $rs = $this->phalApiModelNotORM->get($id, $fields);
 
        $this->assertNotEmpty($rs);
 
        $this->assertEquals('welcome here', $rs['content']);
    }
 
    /**
     * @group testInsert
     */ 
    public function testInsert()
    {
        $data = array('id' => 100, 'content' => 'phpunit', 'ext_data' => array('year' => 2015));
        $id = NULL;
 
        $rs = $this->phalApiModelNotORM->insert($data, $id);
 
        $rs = $this->phalApiModelNotORM->get(100, 'content, ext_data');
 
        $this->assertEquals('phpunit', $rs['content']);
        $this->assertEquals(array('year' => 2015), $rs['ext_data']);
    }
 
    /**
     * @group testUpdate
     * @depends testInsert
     */ 
    public function testUpdate()
    {
        $id = '100';
        $data = array('content' => 'phpunit2', 'ext_data' => array('year' => 2020));
 
        $this->phalApiModelNotORM->update($id, $data);
 
        $rs = $this->phalApiModelNotORM->get($id, 'content, ext_data');
 
        $this->assertEquals('phpunit2', $rs['content']);
        $this->assertEquals(array('year' => 2020), $rs['ext_data']);
    }
 
    /**
     * @group testDelete
     */ 
    public function testDelete()
    {
        $id = '100';
 
        $rs = $this->phalApiModelNotORM->delete($id);
    }
 
    /**
     * @dataProvider provideDefaultTableData
     */
    public function testDefaultTable($tableName, $tableClass)
    {
        $model = new $tableClass();
        $this->assertEquals($tableName, $model->getTableName(null));
    }
 
    public function provideDefaultTableData()
    {
        return array(
            array('defaulttable', 'Model_DefaultTable'),
            array('default_table', 'Model_Default_Table'),
            array('default_table', 'Demo_Model_Default_Table'),
            array('model_default_table', 'Model_Model_Default_Table'),
            array('wtf_table', 'WTF_Table'),
        );
    }
}
 
class PhalApi_Model_NotORM_Tmp extends PhalApi_Model_NotORM {
 
    protected function getTableName($id = NULL) {
        return 'tmp';
    }
}
 
class PhalApi_Model_NotORM_Test extends PhalApi_Model_NotORM {
 
    public function getTableName($id) {
        return parent::getTableName($id);
    }
}
 
class Model_DefaultTable extends PhalApi_Model_NotORM_Test {
}
 
class Model_Default_Table extends PhalApi_Model_NotORM_Test {
}
 
class Demo_Model_Default_Table extends PhalApi_Model_NotORM_Test {
}
 
class Model_Model_Default_Table extends PhalApi_Model_NotORM_Test {
}
 
class WTF_Table extends PhalApi_Model_NotORM_Test {
}