예제 #1
0
 public function testSetCalendarItemInfo()
 {
     $mp = new \Zimbra\Mail\Struct\MimePartAttachSpec('mid', 'part', true);
     $msg = new \Zimbra\Mail\Struct\MsgAttachSpec('id', false);
     $cn = new \Zimbra\Mail\Struct\ContactAttachSpec('id', false);
     $doc = new \Zimbra\Mail\Struct\DocAttachSpec('path', 'id', 10, true);
     $info = new \Zimbra\Mail\Struct\MimePartInfo(array(), null, 'ct', 'content', 'ci');
     $standard = new \Zimbra\Struct\TzOnsetInfo(12, 2, 3, 4);
     $daylight = new \Zimbra\Struct\TzOnsetInfo(4, 3, 2, 10);
     $header = new \Zimbra\Mail\Struct\Header('name', 'value');
     $attach = new \Zimbra\Mail\Struct\AttachmentsInfo($mp, $msg, $cn, $doc, 'aid');
     $mp = new \Zimbra\Mail\Struct\MimePartInfo(array($info), $attach, 'ct', 'content', 'ci');
     $inv = new \Zimbra\Mail\Struct\InvitationInfo('method', 10, true);
     $e = new \Zimbra\Mail\Struct\EmailAddrInfo('a', 't', 'p');
     $tz = new \Zimbra\Mail\Struct\CalTZInfo('id', 10, 10, $standard, $daylight, 'stdname', 'dayname');
     $m = new \Zimbra\Mail\Struct\Msg('content', array($header), $mp, $attach, $inv, array($e), array($tz), 'fr', 'aid', 'origid', 'rt', 'idnt', 'su', 'irt', 'l', 'f');
     $item = new \Zimbra\Mail\Struct\SetCalendarItemInfo($m, ParticipationStatus::NE());
     $this->assertSame($m, $item->m());
     $this->assertTrue($item->ptst()->is('NE'));
     $item->m($m)->ptst(ParticipationStatus::NE());
     $this->assertSame($m, $item->m());
     $this->assertTrue($item->ptst()->is('NE'));
     $xml = '<?xml version="1.0"?>' . "\n" . '<item ptst="NE">' . '<m aid="aid" origid="origid" rt="rt" idnt="idnt" su="su" irt="irt" l="l" f="f">' . '<content>content</content>' . '<mp ct="ct" content="content" ci="ci">' . '<attach aid="aid">' . '<mp optional="true" mid="mid" part="part" />' . '<m optional="false" id="id" />' . '<cn optional="false" id="id" />' . '<doc optional="true" path="path" id="id" ver="10" />' . '</attach>' . '<mp ct="ct" content="content" ci="ci" />' . '</mp>' . '<attach aid="aid">' . '<mp optional="true" mid="mid" part="part" />' . '<m optional="false" id="id" />' . '<cn optional="false" id="id" />' . '<doc optional="true" path="path" id="id" ver="10" />' . '</attach>' . '<inv method="method" compNum="10" rsvp="true" />' . '<fr>fr</fr>' . '<header name="name">value</header>' . '<e a="a" t="t" p="p" />' . '<tz id="id" stdoff="10" dayoff="10" stdname="stdname" dayname="dayname">' . '<standard mon="12" hour="2" min="3" sec="4" />' . '<daylight mon="4" hour="3" min="2" sec="10" />' . '</tz>' . '</m>' . '</item>';
     $this->assertXmlStringEqualsXmlString($xml, (string) $item);
     $array = array('item' => array('ptst' => 'NE', 'm' => array('aid' => 'aid', 'origid' => 'origid', 'rt' => 'rt', 'idnt' => 'idnt', 'su' => 'su', 'irt' => 'irt', 'l' => 'l', 'f' => 'f', 'content' => 'content', 'header' => array(array('name' => 'name', '_content' => 'value')), 'mp' => array('ct' => 'ct', 'content' => 'content', 'ci' => 'ci', 'mp' => array(array('ct' => 'ct', 'content' => 'content', 'ci' => 'ci')), 'attach' => array('aid' => 'aid', 'mp' => array('mid' => 'mid', 'part' => 'part', 'optional' => true), 'm' => array('id' => 'id', 'optional' => false), 'cn' => array('id' => 'id', 'optional' => false), 'doc' => array('path' => 'path', 'id' => 'id', 'ver' => 10, 'optional' => true))), 'attach' => array('aid' => 'aid', 'mp' => array('mid' => 'mid', 'part' => 'part', 'optional' => true), 'm' => array('id' => 'id', 'optional' => false), 'cn' => array('id' => 'id', 'optional' => false), 'doc' => array('path' => 'path', 'id' => 'id', 'ver' => 10, 'optional' => true)), 'inv' => array('method' => 'method', 'compNum' => 10, 'rsvp' => true), 'e' => array(array('a' => 'a', 't' => 't', 'p' => 'p')), 'tz' => array(array('id' => 'id', 'stdoff' => 10, 'dayoff' => 10, 'stdname' => 'stdname', 'dayname' => 'dayname', 'standard' => array('mon' => 12, 'hour' => 2, 'min' => 3, 'sec' => 4), 'daylight' => array('mon' => 4, 'hour' => 3, 'min' => 2, 'sec' => 10))), 'fr' => 'fr')));
     $this->assertEquals($array, $item->toArray());
 }
예제 #2
0
 public function testSetTask()
 {
     $m = $this->getMsg();
     $default = new \Zimbra\Mail\Struct\SetCalendarItemInfo($m, ParticipationStatus::NE());
     $except = new \Zimbra\Mail\Struct\SetCalendarItemInfo();
     $cancel = new \Zimbra\Mail\Struct\SetCalendarItemInfo();
     $reply = new \Zimbra\Mail\Struct\CalReply('at', 10, 10, 10, '991231', 'sentBy', ParticipationStatus::NE(), 'tz', '991231000000');
     $replies = new \Zimbra\Mail\Struct\Replies(array($reply));
     $this->_api->setTask($default, array($except), array($cancel), $replies, 'f', 't', 'tn', 'l', true, 10);
     $client = $this->_api->client();
     $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:SetTaskRequest f="f" t="t" tn="tn" l="l" noNextAlarm="true" nextAlarm="10">' . '<urn1:default ptst="NE">' . '<urn1:m aid="aid" origid="origid" rt="rt" idnt="idnt" su="su" irt="irt" l="l" f="f">' . '<urn1:content>content</urn1:content>' . '<urn1:mp ct="ct" content="content" ci="ci">' . '<urn1:attach aid="aid">' . '<urn1:mp optional="true" mid="mid" part="part" />' . '<urn1:m optional="false" id="id" />' . '<urn1:cn optional="false" id="id" />' . '<urn1:doc optional="true" path="path" id="id" ver="10" />' . '</urn1:attach>' . '<urn1:mp ct="ct" content="content" ci="ci" />' . '</urn1:mp>' . '<urn1:attach aid="aid">' . '<urn1:mp optional="true" mid="mid" part="part" />' . '<urn1:m optional="false" id="id" />' . '<urn1:cn optional="false" id="id" />' . '<urn1:doc optional="true" path="path" id="id" ver="10" />' . '</urn1:attach>' . '<urn1:inv method="method" compNum="10" rsvp="true" />' . '<urn1:fr>fr</urn1:fr>' . '<urn1:header name="name">value</urn1:header>' . '<urn1:e a="a" t="t" p="p" />' . '<urn1:tz id="id" stdoff="10" dayoff="10" stdname="stdname" dayname="dayname">' . '<urn1:standard mon="12" hour="2" min="3" sec="4" />' . '<urn1:daylight mon="4" hour="3" min="2" sec="10" />' . '</urn1:tz>' . '</urn1:m>' . '</urn1:default>' . '<urn1:replies>' . '<urn1:reply at="at" seq="10" d="10" sentBy="sentBy" ptst="NE" rangeType="10" recurId="991231" tz="tz" ridZ="991231000000" />' . '</urn1:replies>' . '<urn1:except />' . '<urn1:cancel />' . '</urn1:SetTaskRequest>' . '</env:Body>' . '</env:Envelope>';
     $this->assertXmlStringEqualsXmlString($xml, (string) $req);
 }
예제 #3
0
 public function testSetAppointment()
 {
     $m = $this->getMsg();
     $default = new \Zimbra\Mail\Struct\SetCalendarItemInfo($m, ParticipationStatus::NE());
     $except = new \Zimbra\Mail\Struct\SetCalendarItemInfo();
     $cancel = new \Zimbra\Mail\Struct\SetCalendarItemInfo();
     $reply = new \Zimbra\Mail\Struct\CalReply('at', 10, 10, 10, '991231', 'sentBy', ParticipationStatus::NE(), 'tz', '991231000000');
     $replies = new \Zimbra\Mail\Struct\Replies(array($reply));
     $req = new \Zimbra\Mail\Request\SetAppointment($default, array($except), array($cancel), $replies, 'f', 't', 'tn', 'l', true, 10);
     $this->assertInstanceOf('Zimbra\\Mail\\Request\\Base', $req);
     $this->assertSame($default, $req->default_());
     $this->assertSame(array($except), $req->except()->all());
     $this->assertSame(array($cancel), $req->cancel()->all());
     $this->assertSame($replies, $req->replies());
     $this->assertSame('f', $req->f());
     $this->assertSame('t', $req->t());
     $this->assertSame('tn', $req->tn());
     $this->assertSame('l', $req->l());
     $this->assertTrue($req->noNextAlarm());
     $this->assertSame(10, $req->nextAlarm());
     $req->default_($default)->addExcept($except)->addCancel($cancel)->replies($replies)->f('f')->t('t')->tn('tn')->l('l')->noNextAlarm(true)->nextAlarm(10);
     $this->assertSame($default, $req->default_());
     $this->assertSame(array($except, $except), $req->except()->all());
     $this->assertSame(array($cancel, $cancel), $req->cancel()->all());
     $this->assertSame($replies, $req->replies());
     $this->assertSame('f', $req->f());
     $this->assertSame('t', $req->t());
     $this->assertSame('tn', $req->tn());
     $this->assertSame('l', $req->l());
     $this->assertTrue($req->noNextAlarm());
     $this->assertSame(10, $req->nextAlarm());
     $xml = '<?xml version="1.0"?>' . "\n" . '<SetAppointmentRequest f="f" t="t" tn="tn" l="l" noNextAlarm="true" nextAlarm="10">' . '<default ptst="NE">' . '<m aid="aid" origid="origid" rt="rt" idnt="idnt" su="su" irt="irt" l="l" f="f">' . '<content>content</content>' . '<mp ct="ct" content="content" ci="ci">' . '<attach aid="aid">' . '<mp optional="true" mid="mid" part="part" />' . '<m optional="false" id="id" />' . '<cn optional="false" id="id" />' . '<doc optional="true" path="path" id="id" ver="10" />' . '</attach>' . '<mp ct="ct" content="content" ci="ci" />' . '</mp>' . '<attach aid="aid">' . '<mp optional="true" mid="mid" part="part" />' . '<m optional="false" id="id" />' . '<cn optional="false" id="id" />' . '<doc optional="true" path="path" id="id" ver="10" />' . '</attach>' . '<inv method="method" compNum="10" rsvp="true" />' . '<fr>fr</fr>' . '<header name="name">value</header>' . '<e a="a" t="t" p="p" />' . '<tz id="id" stdoff="10" dayoff="10" stdname="stdname" dayname="dayname">' . '<standard mon="12" hour="2" min="3" sec="4" />' . '<daylight mon="4" hour="3" min="2" sec="10" />' . '</tz>' . '</m>' . '</default>' . '<replies>' . '<reply at="at" seq="10" d="10" sentBy="sentBy" ptst="NE" rangeType="10" recurId="991231" tz="tz" ridZ="991231000000" />' . '</replies>' . '<except /><except />' . '<cancel /><cancel />' . '</SetAppointmentRequest>';
     $this->assertXmlStringEqualsXmlString($xml, (string) $req);
     $array = array('SetAppointmentRequest' => array('_jsns' => 'urn:zimbraMail', 'f' => 'f', 't' => 't', 'tn' => 'tn', 'l' => 'l', 'noNextAlarm' => true, 'nextAlarm' => 10, 'default' => array('ptst' => 'NE', 'm' => array('aid' => 'aid', 'origid' => 'origid', 'rt' => 'rt', 'idnt' => 'idnt', 'su' => 'su', 'irt' => 'irt', 'l' => 'l', 'f' => 'f', 'content' => 'content', 'header' => array(array('name' => 'name', '_content' => 'value')), 'mp' => array('ct' => 'ct', 'content' => 'content', 'ci' => 'ci', 'mp' => array(array('ct' => 'ct', 'content' => 'content', 'ci' => 'ci')), 'attach' => array('aid' => 'aid', 'mp' => array('mid' => 'mid', 'part' => 'part', 'optional' => true), 'm' => array('id' => 'id', 'optional' => false), 'cn' => array('id' => 'id', 'optional' => false), 'doc' => array('path' => 'path', 'id' => 'id', 'ver' => 10, 'optional' => true))), 'attach' => array('aid' => 'aid', 'mp' => array('mid' => 'mid', 'part' => 'part', 'optional' => true), 'm' => array('id' => 'id', 'optional' => false), 'cn' => array('id' => 'id', 'optional' => false), 'doc' => array('path' => 'path', 'id' => 'id', 'ver' => 10, 'optional' => true)), 'inv' => array('method' => 'method', 'compNum' => 10, 'rsvp' => true), 'e' => array(array('a' => 'a', 't' => 't', 'p' => 'p')), 'tz' => array(array('id' => 'id', 'stdoff' => 10, 'dayoff' => 10, 'stdname' => 'stdname', 'dayname' => 'dayname', 'standard' => array('mon' => 12, 'hour' => 2, 'min' => 3, 'sec' => 4), 'daylight' => array('mon' => 4, 'hour' => 3, 'min' => 2, 'sec' => 10))), 'fr' => 'fr')), 'except' => array(array(), array()), 'cancel' => array(array(), array()), 'replies' => array('reply' => array(array('at' => 'at', 'seq' => 10, 'd' => 10, 'sentBy' => 'sentBy', 'ptst' => 'NE', 'rangeType' => 10, 'recurId' => '991231', 'tz' => 'tz', 'ridZ' => '991231000000')))));
     $this->assertEquals($array, $req->toArray());
 }