1<?php 2 3require_once('simpletest/unit_tester.php'); 4require_once('simpletest/reporter.php'); 5 6require_once('../include/LogObject.class.php'); 7require_once('../include/QueryLogObject.class.php'); 8 9class TestQueryLogObject extends UnitTestCase { 10 11 function testInstanciation() { 12 define('TEST_CONNECTION_ID', 4356); 13 define('TEST_USER', 'test user'); 14 define('TEST_DB', 'test db'); 15 define('TEST_TEXT', 'test text'); 16 17 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, TEST_TEXT); 18 $this->assertEqual(EVENT_QUERY, $query->getEventType()); 19 $this->assertFalse($query->isIgnored()); 20 21 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, TEST_TEXT, true); 22 $this->assertTrue($query->isIgnored()); 23 $this->assertEqual(TEST_TEXT, $query->getText()); 24 25 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, TEST_TEXT, false); 26 $this->assertFalse($query->isIgnored()); 27 } 28 29 function testSettersAndGetters() { 30 define('TEST_TEXT', 'test text'); 31 define('TEST_DB', 'test_db'); 32 define('TEST_USER', 'test_user'); 33 define('TEST_DURATION', 100); 34 35 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, TEST_TEXT); 36 37 $query->setDuration(TEST_DURATION); 38 $this->assertEqual(TEST_DURATION, $query->getDuration()); 39 } 40 41 function testTypeDetection() { 42 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, 'select * from mytable'); 43 $this->assertTrue($query->isSelect()); 44 $this->assertFalse($query->isDelete()); 45 $this->assertFalse($query->isInsert()); 46 $this->assertFalse($query->isUpdate()); 47 48 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, 'SELECT * FROM mytable'); 49 $this->assertTrue($query->isSelect()); 50 $this->assertFalse($query->isDelete()); 51 $this->assertFalse($query->isInsert()); 52 $this->assertFalse($query->isUpdate()); 53 54 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, 'delete from mytable'); 55 $this->assertFalse($query->isSelect()); 56 $this->assertTrue($query->isDelete()); 57 $this->assertFalse($query->isInsert()); 58 $this->assertFalse($query->isUpdate()); 59 60 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, 'DELETE FROM mytable'); 61 $this->assertFalse($query->isSelect()); 62 $this->assertTrue($query->isDelete()); 63 $this->assertFalse($query->isInsert()); 64 $this->assertFalse($query->isUpdate()); 65 66 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, 'insert into mytable values(4)'); 67 $this->assertFalse($query->isSelect()); 68 $this->assertFalse($query->isDelete()); 69 $this->assertTrue($query->isInsert()); 70 $this->assertFalse($query->isUpdate()); 71 72 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, 'INSERT INTO mytable VALUES(4)'); 73 $this->assertFalse($query->isSelect()); 74 $this->assertFalse($query->isDelete()); 75 $this->assertTrue($query->isInsert()); 76 $this->assertFalse($query->isUpdate()); 77 78 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, 'update mytable set field=4'); 79 $this->assertFalse($query->isSelect()); 80 $this->assertFalse($query->isDelete()); 81 $this->assertFalse($query->isInsert()); 82 $this->assertTrue($query->isUpdate()); 83 84 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, 'UPDATE mytable SET field=4'); 85 $this->assertFalse($query->isSelect()); 86 $this->assertFalse($query->isDelete()); 87 $this->assertFalse($query->isInsert()); 88 $this->assertTrue($query->isUpdate()); 89 } 90 91 function testSubQuery() { 92 define('TEST_TEXT1', 'test text 1'); 93 define('TEST_TEXT2', 'test text 2'); 94 define('TEST_TEXT3', 'test text 3'); 95 define('TEST_TEXT4', 'test text 4'); 96 97 $query = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, TEST_TEXT1); 98 99 $query2 = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, TEST_TEXT2); 100 $query3 = new QueryLogObject(TEST_CONNECTION_ID, TEST_USER, TEST_DB, TEST_TEXT3); 101 102 $query->addSubQuery($query2); 103 $subQueries = $query->getSubQueries(); 104 105 $this->assertEqual(1, count($subQueries)); 106 $this->assertReference($query2, $subQueries[0]); 107 108 $query->addSubQuery($query3); 109 $subQueries = $query->getSubQueries(); 110 111 $this->assertEqual(2, count($subQueries)); 112 $this->assertReference($query2, $subQueries[0]); 113 $this->assertReference($query3, $subQueries[1]); 114 } 115} 116 117?>