Revert "j'ai corrigé un bug qui empechait le schema browser de fonctionner avec les...
[bazdig.git] / test / SqlCodeTest.php
blobcfb563792343154fe0b1748ea05c06d564eda485
1 <?php
3 require_once('simpletest/unit_tester.php');
4 require_once('simpletest/reporter.php');
6 class SqlCodeTest extends UnitTestCase {
8 function setUp()
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");
20 $this->markkitQuery3 = new SqlCode("select * from marks where pageUrl like '%x'");
21 $this->markkitQuery4 = new SqlCode("create table marks (pageUrl, text)");
24 function tearDown()
26 $tableName = SqlCode::get_table_name();
27 $id = $this->sqlCode->id;
28 $this->db->exec("delete from $tableName where id='$id'");
29 $id = $this->markkitQuery3->id;
30 $this->db->exec("delete from $tableName where id='$id'");
33 function test_extractColumns()
35 $result = firstWord(' test test2 test3 ');
36 $expected = 'test';
37 $this->assertEqual($expected, $result);
38 $result = firstWord('test');
39 $this->assertEqual($expected, $result);
40 $result = $this->markkitQuery4->extractColumns();
41 $expected = 2;
42 $this->assertEqual($expected, count($result));
43 $expected = array(new Column('pageUrl'), new Column('text'));
44 $this->assertEqual($expected, $result);
47 function test_search()
49 $result = SqlCode::search("test");
50 $expected = 2;
51 $this->assertEqual($expected, count($result));
52 $expected = $this->sqlCode2;
53 $this->assertTrue($expected == $result[0] || $expected == $result[1]);
54 $result = SqlCode::search("test", "limit 1");
55 $expected = 1;
56 $this->assertEqual($expected, count($result));
57 $result = SqlCode::search("test", "where id='test:005'");
58 $expected = 1;
59 $this->assertEqual($expected, count($result));
62 function test_exec()
64 $markkitQuery1 = new SqlCode("select * from marks where id='testid'");
65 $result = $markkitQuery1->exec($this->markkitDB)->fetchAll();
66 $expected = 'testuser';
67 $this->assertEqual($expected, $result[0]['owner']);
68 $markkitQuery2 = new SqlCode("select * from marks where id='testid4'");
69 $result = $markkitQuery2->exec($this->markkitDB)->fetchAll();
70 $expected = 'http://localhost/test/x';
71 $this->assertEqual($expected, $result[0]['pageUrl']);
72 $result = $this->markkitQuery3->exec($this->markkitDB)->fetchAll();
73 $expected = 'http://localhost/test/x';
74 $this->assertEqual($expected, $result[1]['pageUrl']);
77 function test_toSQLinsert()
79 $result = $this->sqlCode->toSQLinsert();
80 $expected = "/insert/i";
81 $this->assertWantedPattern($expected, $result);
82 $expected = "/'md5:".$this->md5."'/";
83 $this->assertWantedPattern($expected, $result);
86 function test_toSQLselect()
88 $result = $this->sqlCode->toSQLselect();
89 $expected = "/select/i";
90 $this->assertWantedPattern($expected, $result);
91 $expected = "/id='md5:".$this->md5."'/";
92 $this->assertWantedPattern($expected, $result);
95 function test_sql_select()
97 $options = " where code like 'select %'";
98 $result = SqlCode::sql_select($options);
99 $expected = "/$options/i";
100 $this->assertWantedPattern($expected, $result);
101 $expected = "/select.+id.+from/i";
102 $this->assertWantedPattern($expected, $result);
103 $expected = "/select.+code.+from/i";
104 $this->assertWantedPattern($expected, $result);
105 $expected = "/select.+date.+from/i";
106 $this->assertWantedPattern($expected, $result);
109 function test_select()
111 $result = SqlCode::select(" where id='test:001'");
112 $expected = array($this->sqlCode2);
113 $this->assertEqual($expected, $result);
116 function test_save()
118 $this->sqlCode->save();
119 $md5 = $this->sqlCode->id;
120 $result = $this->db->query("select code from sql where id='$md5'");
121 $rows = $result->fetchAll(PDO::FETCH_ASSOC);
122 $count = count($rows);
123 $expected = 1;
124 $this->assertEqual($expected, $count);
125 $expected = "select * from test";
126 $this->assertEqual($expected, $rows[0]['code']);
127 $this->sqlCode->save(); // save a second time
128 $result = $this->db->query("select * from sql where id='$md5'");
129 $rows = $result->fetchAll(PDO::FETCH_ASSOC);
130 $count = count($rows);
131 $expected = 1;
132 $this->assertEqual($expected, $count);
133 $this->markkitQuery3->save();
134 $id = $this->markkitQuery3->id;
135 $result = $this->db->query("select * from sql where id='$id'");
136 $rows = $result->fetchAll(PDO::FETCH_ASSOC);
137 $count = count($rows);
138 $expected = 1;
139 $this->assertEqual($expected, $count);
140 $expected = "/'%x'/";
141 $this->assertWantedPattern($expected, $rows[0]['code']);
142 $expected = $id;
143 $this->assertEqual($expected, $rows[0]['id']);
147 // Running the test.
148 $test =& new SqlCodeTest;
149 $test->run(new HtmlReporter());