public function testCreateDataSourceApi() { $key = $this->faker->word; $value = $this->faker->word; $name = $this->faker->word; $id = $this->faker->word; $attr = new KeyValuePair($key, $value); $dataSource = new DataSourceSpecifier(DataSourceType::POP3(), $name, [$attr]); $this->api->createDataSource($id, $dataSource); $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:zimbraAdmin">' . '<env:Body>' . '<urn1:CreateDataSourceRequest id="' . $id . '">' . '<urn1:dataSource type="' . DataSourceType::POP3() . '" name="' . $name . '">' . '<urn1:a n="' . $key . '">' . $value . '</urn1:a>' . '</urn1:dataSource>' . '</urn1:CreateDataSourceRequest>' . '</env:Body>' . '</env:Envelope>'; $this->assertXmlStringEqualsXmlString($xml, (string) $req); }
public function testDataSourceSpecifier() { $name = $this->faker->word; $key = $this->faker->word; $value = $this->faker->word; $ds = new DataSourceSpecifier(DataSourceType::IMAP(), $name); $this->assertTrue($ds->getType()->is('imap')); $this->assertSame($name, $ds->getName()); $attr = new KeyValuePair($key, $value); $ds->setType(DataSourceType::POP3())->setName($name)->addAttr($attr); $this->assertTrue($ds->getType()->is('pop3')); $this->assertSame($name, $ds->getName()); $xml = '<?xml version="1.0"?>' . "\n" . '<dataSource type="' . DataSourceType::POP3() . '" name="' . $name . '">' . '<a n="' . $key . '">' . $value . '</a>' . '</dataSource>'; $this->assertXmlStringEqualsXmlString($xml, (string) $ds); $array = ['dataSource' => ['type' => DataSourceType::POP3()->value(), 'name' => $name, 'a' => [['n' => $key, '_content' => $value]]]]; $this->assertEquals($array, $ds->toArray()); }
public function testDataSourceType() { $values = array('pop3', 'imap', 'caldav', 'contacts', 'yab', 'rss', 'cal', 'gal', 'xsync', 'tagmap'); foreach ($values as $value) { $this->assertTrue(\Zimbra\Enum\DataSourceType::has($value)); } }
public function testCreateDataSource() { $key = self::randomName(); $value = self::randomName(); $name = self::randomName(); $id = self::randomName(); $attr = new \Zimbra\Struct\KeyValuePair($key, $value); $dataSource = new \Zimbra\Admin\Struct\DataSourceSpecifier(DataSourceType::POP3(), $name, [$attr]); $req = new \Zimbra\Admin\Request\CreateDataSource($id, $dataSource); $this->assertInstanceOf('Zimbra\\Admin\\Request\\Base', $req); $this->assertSame($id, $req->getId()); $this->assertSame($dataSource, $req->getDataSource()); $req->setId($id)->setDataSource($dataSource); $this->assertSame($id, $req->getId()); $this->assertSame($dataSource, $req->getDataSource()); $xml = '<?xml version="1.0"?>' . "\n" . '<CreateDataSourceRequest id="' . $id . '">' . '<dataSource type="' . DataSourceType::POP3() . '" name="' . $name . '">' . '<a n="' . $key . '">' . $value . '</a>' . '</dataSource>' . '</CreateDataSourceRequest>'; $this->assertXmlStringEqualsXmlString($xml, (string) $req); $array = ['CreateDataSourceRequest' => ['_jsns' => 'urn:zimbraAdmin', 'id' => $id, 'dataSource' => ['type' => DataSourceType::POP3(), 'name' => $name, 'a' => [['n' => $key, '_content' => $value]]]]]; $this->assertEquals($array, $req->toArray()); }