Test handling of the name suffix and the phone number handling.
authorGunnar Wrobel <p@rdus.de>
Sat, 11 Apr 2009 07:26:07 +0000 (09:26 +0200)
committerGunnar Wrobel <p@rdus.de>
Sat, 11 Apr 2009 07:26:07 +0000 (09:26 +0200)
framework/Kolab_Server/test/Horde/Kolab/Server/PersonTest.php

index 675383d..db3c77d 100644 (file)
@@ -80,6 +80,14 @@ class Horde_Kolab_Server_PersonTest extends Horde_Kolab_Test_Server
             Horde_Kolab_Server_Object_Person::ATTRIBUTE_SN           => 'Kolab_Server_PersonTest_cncn',
             Horde_Kolab_Server_Object_Person::ATTRIBUTE_USERPASSWORD => 'Kolab_Server_PersonTest_cncn',
         ),
+        /* Person with name suffix*/
+        array(
+            'type' => 'Horde_Kolab_Server_Object_Person',
+            Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN           => 'Kolab_Server_PersonTest_123',
+            Horde_Kolab_Server_Object_Person::ATTRIBUTE_SN           => 'Kolab_Server_PersonTest_123',
+            Horde_Kolab_Server_Object_Person::ATTRIBUTE_SNSUFFIX     => 'Kolab_Server_PersonTest_suffix',
+            Horde_Kolab_Server_Object_Person::ATTRIBUTE_USERPASSWORD => 'Kolab_Server_PersonTest_123',
+        ),
     );
 
     /**
@@ -240,4 +248,124 @@ class Horde_Kolab_Server_PersonTest extends Horde_Kolab_Test_Server
         $this->assertNoError($cn_result);
         $this->assertFalse($server->uidForCn($this->objects[5][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN]));
     }
+
+    /**
+     * Test a person with a name suffix.
+     *
+     * @dataProvider provideServers
+     *
+     * @return NULL
+     */
+    public function testHandlePersonWithSuffix($server)
+    {
+        $result = $server->add($this->objects[6]);
+        $this->assertNoError($result);
+
+        $cn_result = $server->uidForCn($this->objects[6][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN]);
+        $this->assertNoError($cn_result);
+        $person = $server->fetch($cn_result);
+        $this->assertEquals($this->objects[6][Horde_Kolab_Server_Object_Person::ATTRIBUTE_SN],
+                           $person->get(Horde_Kolab_Server_Object_Person::ATTRIBUTE_SN));
+        $this->assertEquals($this->objects[6][Horde_Kolab_Server_Object_Person::ATTRIBUTE_SNSUFFIX],
+                           $person->get(Horde_Kolab_Server_Object_Person::ATTRIBUTE_SNSUFFIX));
+
+        $person->save(array(Horde_Kolab_Server_Object_Person::ATTRIBUTE_SN => 'Kolab_Server_PersonTest_123$123',
+                            Horde_Kolab_Server_Object_Person::ATTRIBUTE_SNSUFFIX => 'Kolab_Server_PersonTest_123$123'));
+
+        $cn_result = $server->uidForCn($this->objects[6][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN]);
+        $this->assertNoError($cn_result);
+        $person = $server->fetch($cn_result);
+        $this->assertEquals('Kolab_Server_PersonTest_123$123',
+                           $person->get(Horde_Kolab_Server_Object_Person::ATTRIBUTE_SN));
+        $this->assertEquals('Kolab_Server_PersonTest_123$123',
+                           $person->get(Horde_Kolab_Server_Object_Person::ATTRIBUTE_SNSUFFIX));
+
+        $person->save(array(Horde_Kolab_Server_Object_Person::ATTRIBUTE_SN => 'Kolab_Server_PersonTest_123$456',
+                            Horde_Kolab_Server_Object_Person::ATTRIBUTE_SNSUFFIX => ''));
+
+        $cn_result = $server->uidForCn($this->objects[6][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN]);
+        $this->assertNoError($cn_result);
+        $person = $server->fetch($cn_result);
+        $this->assertEquals('Kolab_Server_PersonTest_123$456',
+                           $person->get(Horde_Kolab_Server_Object_Person::ATTRIBUTE_SN));
+        $this->assertEquals('',
+                           $person->get(Horde_Kolab_Server_Object_Person::ATTRIBUTE_SNSUFFIX));
+
+        try {
+            $person->save(array(Horde_Kolab_Server_Object_Person::ATTRIBUTE_SN => '',
+                                Horde_Kolab_Server_Object_Person::ATTRIBUTE_SNSUFFIX => 'test'));
+        } catch (Horde_Kolab_Server_Object_Exception $e) {
+            $this->assertError($e);
+        }
+
+        $result = $server->delete($cn_result);
+        $this->assertNoError($result);
+        $cn_result = $server->uidForCn($this->objects[6][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN]);
+        $this->assertNoError($cn_result);
+        $this->assertFalse($server->uidForCn($this->objects[6][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN]));
+    }
+
+    /**
+     * Test handling a phone number.
+     *
+     * @dataProvider provideServers
+     *
+     * @return NULL
+     */
+    public function testHandlingAPhoneNumaber($server)
+    {
+        $result = $server->add($this->objects[6]);
+        $this->assertNoError($result);
+
+        $cn = $this->objects[6][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN];
+
+        $cn_result = $server->uidForCn($cn);
+        $this->assertNoError($cn_result);
+
+        $person = $server->fetch($cn_result);
+        $this->assertNoError($person);
+
+        $this->assertEquals($person->get(Horde_Kolab_Server_Object_Person::ATTRIBUTE_TELNO),
+                            '');
+
+        $person->save(array(Horde_Kolab_Server_Object_Person::ATTRIBUTE_TELNO => '123456789'));
+
+        $cn_result = $server->uidForCn($cn);
+        $this->assertNoError($cn_result);
+
+        $person = $server->fetch($cn_result);
+        $this->assertNoError($person);
+
+        $this->assertEquals($person->get(Horde_Kolab_Server_Object_Person::ATTRIBUTE_TELNO),
+                            '123456789');
+
+        $person->save(array(Horde_Kolab_Server_Object_Person::ATTRIBUTE_TELNO => '1234567890'));
+
+        $cn_result = $server->uidForCn($cn);
+        $this->assertNoError($cn_result);
+
+        $person = $server->fetch($cn_result);
+        $this->assertNoError($person);
+
+        $this->assertEquals($person->get(Horde_Kolab_Server_Object_Person::ATTRIBUTE_TELNO),
+                            '1234567890');
+
+
+        $person->save(array(Horde_Kolab_Server_Object_Person::ATTRIBUTE_TELNO => ''));
+
+        $cn_result = $server->uidForCn($cn);
+        $this->assertNoError($cn_result);
+
+        $person = $server->fetch($cn_result);
+        $this->assertNoError($person);
+
+        $this->assertEquals($person->get(Horde_Kolab_Server_Object_Person::ATTRIBUTE_TELNO),
+                            '');
+
+        $result = $server->delete($cn_result);
+        $this->assertNoError($result);
+        $cn_result = $server->uidForCn($this->objects[6][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN]);
+        $this->assertNoError($cn_result);
+        $this->assertFalse($server->uidForCn($this->objects[6][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN]));
+    }
 }