]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - tests/utils/ReferenceHistory.php
API: Get History endpoint
[github/shaarli/Shaarli.git] / tests / utils / ReferenceHistory.php
diff --git a/tests/utils/ReferenceHistory.php b/tests/utils/ReferenceHistory.php
new file mode 100644 (file)
index 0000000..2028477
--- /dev/null
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * Populates a reference history
+ */
+class ReferenceHistory
+{
+    private $count;
+
+    private $history = [];
+
+    /**
+     * Populates the test DB with reference data
+     */
+    public function __construct()
+    {
+        $this->addEntry(
+            History::CREATED,
+            DateTime::createFromFormat('Ymd_His', '20170101_121212'),
+            123
+        );
+
+        $this->addEntry(
+            History::CREATED,
+            DateTime::createFromFormat('Ymd_His', '20170201_121214'),
+            124
+        );
+
+        $this->addEntry(
+            History::UPDATED,
+            DateTime::createFromFormat('Ymd_His', '20170301_121214'),
+            123
+        );
+
+        $this->addEntry(
+            History::SETTINGS,
+            DateTime::createFromFormat('Ymd_His', '20170302_121215')
+        );
+
+        $this->addEntry(
+            History::DELETED,
+            DateTime::createFromFormat('Ymd_His', '20170303_121216'),
+            124
+        );
+    }
+
+    /**
+     * Adds a new history entry
+     *
+     * @param string   $event    Event identifier
+     * @param DateTime $datetime creation date
+     * @param int      $id       optional: related link ID
+     */
+    protected function addEntry($event, $datetime, $id = null)
+    {
+        $link = [
+            'event' => $event,
+            'datetime' => $datetime,
+            'id' => $id,
+        ];
+        $this->history[] = $link;
+        $this->count++;
+    }
+
+    /**
+     * Writes data to the datastore
+     *
+     * @param string $filename write history content to.
+     */
+    public function write($filename)
+    {
+        FileUtils::writeFlatDB($filename, $this->history);
+    }
+
+    /**
+     * Returns the number of links in the reference data
+     */
+    public function count()
+    {
+        return $this->count;
+    }
+}