8 namespace Fossology\Lib\Db;
12 function setUp() :
void
16 $this->
dbManager->setDriver($this->driver);
19 function tearDown() :
void
24 function testInsertTableRow()
27 $assocParams = array(
'cola'=>1,
'colb'=>2);
29 $this->driver->shouldReceive(
'query')->once();
30 $this->driver->shouldReceive(
'freeResult');
31 $this->
dbManager->insertTableRow($tableName,$assocParams,$sqlLog);
34 function testCreateMap()
40 $preSql =
"/ $keyColumn, *$valueColumn /";
41 $this->driver->shouldReceive(
'query')->andReturn(
'fakeRes');
42 $this->driver->shouldReceive(
'fetchArray')->andReturn(
43 array($keyColumn=>
'k0',$valueColumn=>
'v0'),
44 array($keyColumn=>
'k1',$valueColumn=>
'v1'),
47 $this->driver->shouldReceive(
'freeResult');
48 $map = $this->
dbManager->createMap($tableName,$keyColumn,$valueColumn,$sqlLog);
49 assertThat($map,hasKey(
'k0'));
50 assertThat($map,EqualTo(array(
'k0'=>
'v0',
'k1'=>
'v1')));
53 function testEvaluateStatement()
55 $this->driver->shouldReceive(
'query');
56 $sqlStmt =
'SELECT pet FROM africa WHERE cervical=$1 AND class=$2 AND $3';
57 $this->
dbManager->prepare($stmt=
'statement',$sqlStmt);
59 $reflection = new \ReflectionClass(get_class($this->
dbManager));
60 $method = $reflection->getMethod(
'evaluateStatement');
61 $method->setAccessible(
true);
63 $params = array(7,
'Mammalia',
true);
64 $sql = $method->invoke($this->
dbManager,$stmt,$params);
65 assertThat($sql, is(
'SELECT pet FROM africa WHERE cervical=7 AND class=\'Mammalia\' AND t') );
67 $params = array(7,
'Mammalia\'; SELECT * FROM passwords WHERE user like \'%',
true);
68 $sql = $method->invoke($this->
dbManager,$stmt,$params);
69 assertThat($sql, is(
'SELECT pet FROM africa WHERE cervical=7 AND class=\'Mammalia\'\'; SELECT * FROM passwords WHERE user like \'\'%\' AND t') );
72 function testEvaluateStatement_exception()
74 $sqlStmt =
'SELECT pet FROM africa WHERE cervical=$1 AND class=$2';
75 $this->
dbManager->prepare($stmt=
'statement',$sqlStmt);
77 $reflection = new \ReflectionClass(get_class($this->
dbManager));
78 $method = $reflection->getMethod(
'evaluateStatement');
79 $method->setAccessible(
true);
81 $exceptionMsg =
false;
82 $params = array(7,
'Mammalia',
'non-used parameter');
84 $method->invoke($this->
dbManager,$stmt,$params);
87 $exceptionMsg = $e->getMessage();
89 assertThat($exceptionMsg, is(
'$3 not found in prepared statement'));
fo_dbManager * dbManager
fo_dbManager object