1<?php
2/*
3Copyright (C) 2014, Siemens AG
4
5This program is free software; you can redistribute it and/or
6modify it under the terms of the GNU General Public License
7version 2 as published by the Free Software Foundation.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License along
15with this program; if not, write to the Free Software Foundation, Inc.,
1651 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17*/
18
19namespace Fossology\Lib\Test;
20
21class TestPgDbTest extends \PHPUnit\Framework\TestCase
22{
23
24  public function testIfTestDbIsCreated()
25  {
26    return;
27    $this->markTestSkipped();
28    $dbName = 'fosstestone';
29    exec($cmd="dropdb -Ufossy -hlocalhost $dbName", $cmdOut, $cmdRtn);
30    if ($cmdRtn != 0) {
31      echo $cmdOut;
32    }
33    $testDb = new TestPgDb();
34    exec($cmd="psql -Ufossy -hlocalhost -l | grep -q $dbName", $cmdOut, $cmdRtn);
35    assertThat($cmdRtn,is(0));
36  }
37
38  public function testGetDbManager()
39  {
40    $testDb = new TestPgDb();
41    $this->assertInstanceOf('Fossology\Lib\Db\DbManager', $testDb->getDbManager());
42  }
43
44  public function testCreatePlainTables()
45  {
46    $testDb = new TestPgDb();
47    $testDb->createPlainTables(array('tag'));
48    $dbManager = $testDb->getDbManager();
49
50    $dbManager->queryOnce("insert into tag (tag_pk,tag,tag_desc) values (1,'hello','world')");
51    $tag1 = $dbManager->getSingleRow('select * from tag where tag_pk=1');
52    assertThat($tag1,hasKey('tag_desc'));
53    assertThat($tag1['tag_desc'],is('world'));
54  }
55
56  public function testInsertData()
57  {
58    $testDb = new TestPgDb();
59    $testDb->createPlainTables(array('perm_upload'));
60    $testDb->insertData(array('perm_upload'));
61    $tag1 = $testDb->getDbManager()->getSingleRow('select perm from perm_upload where perm_upload_pk=1');
62    assertThat($tag1,hasKey('perm'));
63    assertThat($tag1['perm'],is(10));
64  }
65}
66