]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - tests/formatter/FormatterFactoryTest.php
Add and update unit test for the new system (Bookmark + Service)
[github/shaarli/Shaarli.git] / tests / formatter / FormatterFactoryTest.php
diff --git a/tests/formatter/FormatterFactoryTest.php b/tests/formatter/FormatterFactoryTest.php
new file mode 100644 (file)
index 0000000..317c0b2
--- /dev/null
@@ -0,0 +1,101 @@
+<?php
+
+namespace Shaarli\Formatter;
+
+use PHPUnit\Framework\TestCase;
+use Shaarli\Config\ConfigManager;
+
+/**
+ * Class FormatterFactoryTest
+ *
+ * @package Shaarli\Formatter
+ */
+class FormatterFactoryTest extends TestCase
+{
+    /** @var string Path of test config file */
+    protected static $testConf = 'sandbox/config';
+
+    /** @var FormatterFactory instance */
+    protected $factory;
+
+    /** @var ConfigManager instance */
+    protected $conf;
+
+    /**
+     * Initialize FormatterFactory instance
+     */
+    public function setUp()
+    {
+        copy('tests/utils/config/configJson.json.php', self::$testConf .'.json.php');
+        $this->conf = new ConfigManager(self::$testConf);
+        $this->factory = new FormatterFactory($this->conf);
+    }
+
+    /**
+     * Test creating an instance of BookmarkFormatter without any setting -> default formatter
+     */
+    public function testCreateInstanceDefault()
+    {
+        $this->assertInstanceOf(BookmarkDefaultFormatter::class, $this->factory->getFormatter());
+    }
+
+    /**
+     * Test creating an instance of BookmarkDefaultFormatter from settings
+     */
+    public function testCreateInstanceDefaultSetting()
+    {
+        $this->conf->set('formatter', 'default');
+        $this->assertInstanceOf(BookmarkDefaultFormatter::class, $this->factory->getFormatter());
+    }
+
+    /**
+     * Test creating an instance of BookmarkDefaultFormatter from parameter
+     */
+    public function testCreateInstanceDefaultParameter()
+    {
+        $this->assertInstanceOf(
+            BookmarkDefaultFormatter::class,
+            $this->factory->getFormatter('default')
+        );
+    }
+
+    /**
+     * Test creating an instance of BookmarkRawFormatter from settings
+     */
+    public function testCreateInstanceRawSetting()
+    {
+        $this->conf->set('formatter', 'raw');
+        $this->assertInstanceOf(BookmarkRawFormatter::class, $this->factory->getFormatter());
+    }
+
+    /**
+     * Test creating an instance of BookmarkRawFormatter from parameter
+     */
+    public function testCreateInstanceRawParameter()
+    {
+        $this->assertInstanceOf(
+            BookmarkRawFormatter::class,
+            $this->factory->getFormatter('raw')
+        );
+    }
+
+    /**
+     * Test creating an instance of BookmarkMarkdownFormatter from settings
+     */
+    public function testCreateInstanceMarkdownSetting()
+    {
+        $this->conf->set('formatter', 'markdown');
+        $this->assertInstanceOf(BookmarkMarkdownFormatter::class, $this->factory->getFormatter());
+    }
+
+    /**
+     * Test creating an instance of BookmarkMarkdownFormatter from parameter
+     */
+    public function testCreateInstanceMarkdownParameter()
+    {
+        $this->assertInstanceOf(
+            BookmarkMarkdownFormatter::class,
+            $this->factory->getFormatter('markdown')
+        );
+    }
+}