3 require_once('simpletest/unit_tester.php');
4 require_once('simpletest/reporter.php');
6 class SqlCodeTest
extends UnitTestCase
{
10 require_once '../lib/code.php';
11 $this->query
= 'select * from test';
12 $this->md5
= md5($this->query
);
13 $this->sqlCode
= new SqlCode($this->query
);
14 $this->db
=& new PDO("sqlite:bazdig-test.db");
15 SqlCode
::set_db($this->db
);
16 $this->sqlCode2
= new SqlCode("select * from test");
17 $this->sqlCode2
->id
= 'test:001';
18 $this->sqlCode2
->date
= '2008-01-25';
19 $this->markkitDB
=& new PDO("sqlite2:markkit-test.db");
24 $tableName = SqlCode
::get_table_name();
25 $id = $this->sqlCode
->id
;
26 $this->db
->exec("delete from $tableName where id='$id'");
29 function test_search()
31 $result = SqlCode
::search("test");
33 $this->assertEqual($expected, count($result));
34 $expected = $this->sqlCode2
;
35 $this->assertTrue($expected == $result[0] ||
$expected == $result[1]);
36 $result = SqlCode
::search("test", "limit 1");
38 $this->assertEqual($expected, count($result));
39 $result = SqlCode
::search("test", "where id='test:005'");
41 $this->assertEqual($expected, count($result));
46 $markkitQuery1 = new SqlCode("select * from marks where id='testid'");
47 $result = $markkitQuery1->exec($this->markkitDB
)->fetchAll();
48 $expected = 'testuser';
49 $this->assertEqual($expected, $result[0]['owner']);
50 $markkitQuery2 = new SqlCode("select * from marks where id='testid4'");
51 $result = $markkitQuery2->exec($this->markkitDB
)->fetchAll();
52 $expected = 'http://localhost/test/x';
53 $this->assertEqual($expected, $result[0]['pageUrl']);
54 $markkitQuery3 = new SqlCode("select * from marks where pageUrl like '%x'");
55 $result = $markkitQuery3->exec($this->markkitDB
)->fetchAll();
56 $expected = 'http://localhost/test/x';
57 $this->assertEqual($expected, $result[1]['pageUrl']);
60 function test_toSQLinsert()
62 $result = $this->sqlCode
->toSQLinsert();
63 $expected = "/insert/i";
64 $this->assertWantedPattern($expected, $result);
65 $expected = "/'md5:".$this->md5
."'/";
66 $this->assertWantedPattern($expected, $result);
69 function test_toSQLselect()
71 $result = $this->sqlCode
->toSQLselect();
72 $expected = "/select/i";
73 $this->assertWantedPattern($expected, $result);
74 $expected = "/id='md5:".$this->md5
."'/";
75 $this->assertWantedPattern($expected, $result);
78 function test_sql_select()
80 $options = " where code like 'select %'";
81 $result = SqlCode
::sql_select($options);
82 $expected = "/$options/i";
83 $this->assertWantedPattern($expected, $result);
84 $expected = "/select.+id.+from/i";
85 $this->assertWantedPattern($expected, $result);
86 $expected = "/select.+code.+from/i";
87 $this->assertWantedPattern($expected, $result);
88 $expected = "/select.+date.+from/i";
89 $this->assertWantedPattern($expected, $result);
92 function test_select()
94 $result = SqlCode
::select(" where id='test:001'");
95 $expected = array($this->sqlCode2
);
96 $this->assertEqual($expected, $result);
101 $this->sqlCode
->save();
102 $md5 = $this->sqlCode
->id
;
103 $result = $this->db
->query("select code from sql where id='$md5'");
104 $result = $result->fetch();
105 $expected = "select * from test";
106 $this->assertEqual($expected, $result['code']);
107 $this->sqlCode
->save();
108 $result = $this->db
->query("select * from sql where id='$md5'");
109 $result = $result->fetchAll();
111 $this->assertEqual($expected, count($result));
116 $test =& new SqlCodeTest
;
117 $test->run(new HtmlReporter());