--- /dev/null
+<?php
+/**
+ * A generic factory for the various Kolab_Storage classes.
+ *
+ * PHP version 5
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @author Gunnar Wrobel <wrobel@pardus.de>
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+
+/**
+ * A generic factory for the various Kolab_Storage classes.
+ *
+ * Copyright 2004-2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @author Gunnar Wrobel <wrobel@pardus.de>
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+class Horde_Kolab_Storage_Factory
+{
+ /**
+ * Create the storage handler.
+ *
+ * @return Horde_Kolab_Storage The storage handler.
+ */
+ public function create(Horde_Kolab_Storage_Driver $driver)
+ {
+ return new Horde_Kolab_Storage_Base($driver);
+ }
+
+}
\ No newline at end of file
<active>yes</active>
</lead>
<date>2010-12-14</date>
- <time>09:14:53</time>
+ <time>10:46:22</time>
<version>
<release>0.4.0</release>
<api>0.1.0</api>
<file name="Data.php" role="php" />
<file name="Driver.php" role="php" />
<file name="Exception.php" role="php" />
+ <file name="Factory.php" role="php" />
<file name="Folder.php" role="php" />
<file name="Translation.php" role="php">
<tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
</dir> <!-- /test/Horde/Kolab/Storage/Unit/Driver -->
<file name="BaseTest.php" role="test" />
<file name="CliTest.php" role="test" />
+ <file name="FactoryTest.php" role="test" />
</dir> <!-- /test/Horde/Kolab/Storage/Unit -->
<file name="AclTest.php" role="test" />
<file name="AllTests.php" role="test" />
<min>1.4.0b1</min>
</pearinstaller>
<package>
- <name>Net_IMAP</name>
- <channel>pear.php.net</channel>
- <min>1.1.0beta2</min>
- </package>
- <package>
<name>Mail_mimeDecode</name>
<channel>pear.php.net</channel>
</package>
<channel>pear.horde.org</channel>
</package>
<package>
- <name>Kolab_Server</name>
- <channel>pear.horde.org</channel>
- </package>
- <package>
- <name>Auth</name>
- <channel>pear.horde.org</channel>
- <min>0.1.1</min>
- </package>
- <package>
<name>Cache</name>
<channel>pear.horde.org</channel>
</package>
<package>
- <name>Group</name>
- <channel>pear.horde.org</channel>
- </package>
- <package>
<name>History</name>
<channel>pear.horde.org</channel>
</package>
<channel>pear.horde.org</channel>
</package>
<package>
- <name>Nls</name>
- <channel>pear.horde.org</channel>
- </package>
- <package>
<name>Translation</name>
<channel>pear.horde.org</channel>
</package>
<channel>pear.horde.org</channel>
</package>
</required>
+ <optional>
+ <package>
+ <name>Net_IMAP</name>
+ <channel>pear.php.net</channel>
+ <min>1.1.0beta2</min>
+ </package>
+ <package>
+ <name>Imap_Client</name>
+ <channel>pear.horde.org</channel>
+ </package>
+ <extension>
+ <name>imap</name>
+ </extension>
+ </optional>
</dependencies>
<phprelease>
<filelist>
<install as="Horde/Kolab/Storage/Data.php" name="lib/Horde/Kolab/Storage/Data.php" />
<install as="Horde/Kolab/Storage/Driver.php" name="lib/Horde/Kolab/Storage/Driver.php" />
<install as="Horde/Kolab/Storage/Exception.php" name="lib/Horde/Kolab/Storage/Exception.php" />
+ <install as="Horde/Kolab/Storage/Factory.php" name="lib/Horde/Kolab/Storage/Factory.php" />
<install as="Horde/Kolab/Storage/Folder.php" name="lib/Horde/Kolab/Storage/Folder.php" />
<install as="Horde/Kolab/Storage/Translation.php" name="lib/Horde/Kolab/Storage/Translation.php" />
<install as="Horde/Kolab/Storage/Driver/Base.php" name="lib/Horde/Kolab/Storage/Driver/Base.php" />
<install as="Horde/Kolab/Storage/Server/DriverTest.php" name="test/Horde/Kolab/Storage/Server/DriverTest.php" />
<install as="Horde/Kolab/Storage/Unit/BaseTest.php" name="test/Horde/Kolab/Storage/Unit/BaseTest.php" />
<install as="Horde/Kolab/Storage/Unit/CliTest.php" name="test/Horde/Kolab/Storage/Unit/CliTest.php" />
+ <install as="Horde/Kolab/Storage/Unit/FactoryTest.php" name="test/Horde/Kolab/Storage/Unit/FactoryTest.php" />
<install as="Horde/Kolab/Storage/Unit/Cli/ModuleTest.php" name="test/Horde/Kolab/Storage/Unit/Cli/ModuleTest.php" />
<install as="Horde/Kolab/Storage/Unit/Cli/OptionsTest.php" name="test/Horde/Kolab/Storage/Unit/Cli/OptionsTest.php" />
<install as="Horde/Kolab/Storage/Unit/Driver/CclientTest.php" name="test/Horde/Kolab/Storage/Unit/Driver/CclientTest.php" />
--- /dev/null
+<?php
+/**
+ * Test the factory.
+ *
+ * PHP version 5
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @subpackage UnitTests
+ * @author Gunnar Wrobel <wrobel@pardus.de>
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+
+/**
+ * Prepare the test setup.
+ */
+require_once dirname(__FILE__) . '/../Autoload.php';
+
+/**
+ * Test the factory.
+ *
+ * Copyright 2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @subpackage UnitTests
+ * @author Gunnar Wrobel <wrobel@pardus.de>
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+class Horde_Kolab_Storage_Unit_FactoryTest
+extends Horde_Kolab_Storage_TestCase
+{
+ public function testConstruction()
+ {
+ $factory = new Horde_Kolab_Storage_Factory();
+ $this->assertType(
+ 'Horde_Kolab_Storage_Base',
+ $factory->create(new Horde_Kolab_Storage_Driver_Mock())
+ );
+ }
+}