summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorThomas Tanghus <thomas@tanghus.net>2012-10-19 13:18:57 +0200
committerThomas Tanghus <thomas@tanghus.net>2012-10-19 13:18:57 +0200
commit1c9929d44f9d826493de7222ad42ff220cfd0cab (patch)
tree2a903e1cd76ed7d4d28dd10f15c2c2be9d930e79 /tests
parent03ff614265da769cfef8ce62a535004e4346d3f0 (diff)
downloadnextcloud-server-1c9929d44f9d826493de7222ad42ff220cfd0cab.tar.gz
nextcloud-server-1c9929d44f9d826493de7222ad42ff220cfd0cab.zip
Added unit tests for OC_DB::insertIfNotExist()
Diffstat (limited to 'tests')
-rw-r--r--tests/data/db_structure.xml84
-rw-r--r--tests/lib/db.php26
2 files changed, 110 insertions, 0 deletions
diff --git a/tests/data/db_structure.xml b/tests/data/db_structure.xml
index 03d7502c441..8a80819adf2 100644
--- a/tests/data/db_structure.xml
+++ b/tests/data/db_structure.xml
@@ -135,4 +135,88 @@
</table>
+ <table>
+
+ <name>*dbprefix*vcategory</name>
+
+ <declaration>
+
+ <field>
+ <name>id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <autoincrement>1</autoincrement>
+ <unsigned>true</unsigned>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>uid</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>type</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>category</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <index>
+ <name>uid_index</name>
+ <field>
+ <name>uid</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>type_index</name>
+ <field>
+ <name>type</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>category_index</name>
+ <field>
+ <name>category</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>uid_type_category_index</name>
+ <unique>true</unique>
+ <field>
+ <name>uid</name>
+ <sorting>ascending</sorting>
+ </field>
+ <field>
+ <name>type</name>
+ <sorting>ascending</sorting>
+ </field>
+ <field>
+ <name>category</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+ </table>
+
</database>
diff --git a/tests/lib/db.php b/tests/lib/db.php
index 2344f7d8ec4..5d30f6ac46c 100644
--- a/tests/lib/db.php
+++ b/tests/lib/db.php
@@ -24,6 +24,7 @@ class Test_DB extends UnitTestCase {
$this->test_prefix = $r;
$this->table1 = $this->test_prefix.'contacts_addressbooks';
$this->table2 = $this->test_prefix.'contacts_cards';
+ $this->table3 = $this->test_prefix.'vcategory';
}
public function tearDown() {
@@ -67,4 +68,29 @@ class Test_DB extends UnitTestCase {
$result = $query->execute(array('uri_3'));
$this->assertTrue($result);
}
+
+ public function testinsertIfNotExist() {
+ $categoryentries = array(
+ array('user' => 'test', 'type' => 'contact', 'category' => 'Family'),
+ array('user' => 'test', 'type' => 'contact', 'category' => 'Friends'),
+ array('user' => 'test', 'type' => 'contact', 'category' => 'Coworkers'),
+ array('user' => 'test', 'type' => 'contact', 'category' => 'Coworkers'),
+ array('user' => 'test', 'type' => 'contact', 'category' => 'School'),
+ );
+
+ foreach($categoryentries as $entry) {
+ $result = OC_DB::insertIfNotExist('*PREFIX*'.$this->table3,
+ array(
+ 'uid' => $entry['user'],
+ 'type' => $entry['type'],
+ 'category' => $entry['category'],
+ ));
+ $this->assertTrue($result);
+ }
+
+ $query = OC_DB::prepare('SELECT * FROM *PREFIX*'.$this->table3);
+ $result = $query->execute();
+ $this->assertTrue($result);
+ $this->assertEqual($result->numRows(), '4');
+ }
}