public function testModifyContactSpec() { $id = mt_rand(1, 10); $name = $this->faker->word; $value = $this->faker->word; $aid = $this->faker->uuid; $part = $this->faker->word; $op = $this->faker->randomElement(['+', '-', 'reset']); $tn = $this->faker->word; $a = new ModifyContactAttr($name, $value, $aid, $id, $part, $op); $m = new ModifyContactGroupMember(MemberType::CONTACT(), $value, $op); $cn = new ModifyContactSpec($id, $tn, [$a], [$m]); $this->assertSame(array($a), $cn->getAttrs()->all()); $this->assertSame(array($m), $cn->getMembers()->all()); $this->assertSame($id, $cn->getId()); $this->assertSame($tn, $cn->getTagNames()); $cn->addAttr($a)->addMember($m)->setId($id)->setTagNames($tn); $this->assertSame(array($a, $a), $cn->getAttrs()->all()); $this->assertSame(array($m, $m), $cn->getMembers()->all()); $this->assertSame($id, $cn->getId()); $this->assertSame($tn, $cn->getTagNames()); $cn = new ModifyContactSpec($id, $tn, [$a], [$m]); $xml = '<?xml version="1.0"?>' . "\n" . '<cn id="' . $id . '" tn="' . $tn . '">' . '<a n="' . $name . '" aid="' . $aid . '" id="' . $id . '" part="' . $part . '" op="' . $op . '">' . $value . '</a>' . '<m type="' . MemberType::CONTACT() . '" value="' . $value . '" op="' . $op . '" />' . '</cn>'; $this->assertXmlStringEqualsXmlString($xml, (string) $cn); $array = array('cn' => array('id' => $id, 'tn' => $tn, 'a' => array(array('n' => $name, '_content' => $value, 'aid' => $aid, 'id' => $id, 'part' => $part, 'op' => $op)), 'm' => array(array('type' => MemberType::CONTACT()->value(), 'value' => $value, 'op' => $op)))); $this->assertEquals($array, $cn->toArray()); }
public function testModifyContactGroupMember() { $value = $this->faker->word; $op = $this->faker->randomElement(['+', '-', 'reset']); $m = new ModifyContactGroupMember(MemberType::CONTACT(), $value, $op); $this->assertSame('C', $m->getType()->value()); $this->assertSame($value, $m->getValue()); $this->assertSame($op, $m->getOperation()); $m->setType(MemberType::CONTACT())->setValue($value)->setOperation($op); $this->assertSame('C', $m->getType()->value()); $this->assertSame($value, $m->getValue()); $this->assertSame($op, $m->getOperation()); $xml = '<?xml version="1.0"?>' . "\n" . '<m type="' . MemberType::CONTACT() . '" value="' . $value . '" op="' . $op . '" />'; $this->assertXmlStringEqualsXmlString($xml, (string) $m); $array = array('m' => array('type' => MemberType::CONTACT()->value(), 'value' => $value, 'op' => $op)); $this->assertEquals($array, $m->toArray()); }
public function testModifyContactApi() { $id = mt_rand(1, 10); $name = $this->faker->word; $value = $this->faker->word; $aid = $this->faker->uuid; $part = $this->faker->word; $op = $this->faker->randomElement(['+', '-', 'reset']); $tn = $this->faker->word; $a = new ModifyContactAttr($name, $value, $aid, $id, $part, $op); $m = new ModifyContactGroupMember(MemberType::CONTACT(), $value, $op); $cn = new ModifyContactSpec($id, $tn, [$a], [$m]); $this->api->modifyContact($cn, true, true); $client = $this->api->getClient(); $req = $client->lastRequest(); $xml = '<?xml version="1.0"?>' . "\n" . '<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:urn="urn:zimbra" xmlns:urn1="urn:zimbraMail">' . '<env:Body>' . '<urn1:ModifyContactRequest replace="true" verbose="true">' . '<urn1:cn id="' . $id . '" tn="' . $tn . '">' . '<urn1:a n="' . $name . '" aid="' . $aid . '" id="' . $id . '" part="' . $part . '" op="' . $op . '">' . $value . '</urn1:a>' . '<urn1:m type="' . MemberType::CONTACT() . '" value="' . $value . '" op="' . $op . '" />' . '</urn1:cn>' . '</urn1:ModifyContactRequest>' . '</env:Body>' . '</env:Envelope>'; $this->assertXmlStringEqualsXmlString($xml, (string) $req); }