From dfa4e81e668ab8537bab14af9a6540b74b889174 Mon Sep 17 00:00:00 2001
From: dyszczo <krzysztof.dyszczyk@gmail.com>
Date: Mon, 30 Sep 2019 12:10:22 +0200
Subject: [PATCH] integration storage test

---
 src/Storage/WordpressFilterStorage.php        |  2 +-
 .../Storage/Test_WordpressFilterStorage.php   | 23 +++++++++++++++++++
 tests/integration/bootstrap.php               |  1 -
 3 files changed, 24 insertions(+), 2 deletions(-)
 create mode 100644 tests/integration/Storage/Test_WordpressFilterStorage.php

diff --git a/src/Storage/WordpressFilterStorage.php b/src/Storage/WordpressFilterStorage.php
index d8c564a..5ceae2d 100644
--- a/src/Storage/WordpressFilterStorage.php
+++ b/src/Storage/WordpressFilterStorage.php
@@ -17,7 +17,7 @@ class WordpressFilterStorage implements PluginStorage {
 	 * @param AbstractPlugin $object
 	 */
 	public function add_to_storage( $class, $object ) {
-		add_filter( self::STORAGE_FILTER_NAME, function ( $plugins ) use ( $class, $object ) {
+		add_filter( self::STORAGE_FILTER_NAME, static function ( $plugins ) use ( $class, $object ) {
 			if ( isset( $plugins[ $class ] ) ) {
 				throw new Exception\ClassAlreadyExists( "Class {$class} already exists" );
 			}
diff --git a/tests/integration/Storage/Test_WordpressFilterStorage.php b/tests/integration/Storage/Test_WordpressFilterStorage.php
new file mode 100644
index 0000000..7ab9062
--- /dev/null
+++ b/tests/integration/Storage/Test_WordpressFilterStorage.php
@@ -0,0 +1,23 @@
+<?php
+
+use WPDesk\Plugin\Flow\Initialization\Simple\SimpleStrategy;
+use WPDesk\PluginBuilder\Storage\Exception\ClassNotExists;
+use WPDesk\PluginBuilder\Storage\WordpressFilterStorage;
+
+class Test_WordpressFilterStorage extends WP_UnitTestCase {
+	public function test_can_read_and_write() {
+		$storage = new WordpressFilterStorage();
+
+		$storage->add_to_storage( Test_WordpressFilterStorage::class, $this );
+		$this->assertInstanceOf( Test_WordpressFilterStorage::class,
+			$storage->get_from_storage( Test_WordpressFilterStorage::class ),
+			'Returned instance should be the same as saved' );
+	}
+
+	public function test_empty_storage_is_empty() {
+		$storage = new WordpressFilterStorage();
+
+		$this->expectException( ClassNotExists::class );
+		$storage->get_from_storage( Test_WordpressFilterStorage::class );
+	}
+}
diff --git a/tests/integration/bootstrap.php b/tests/integration/bootstrap.php
index d6574ba..a33b9bb 100644
--- a/tests/integration/bootstrap.php
+++ b/tests/integration/bootstrap.php
@@ -18,7 +18,6 @@ if ( getenv( 'PLUGIN_PATH' ) !== false ) {
 require_once( getenv( 'WP_DEVELOP_DIR' ) . '/tests/phpunit/includes/functions.php' );
 
 tests_add_filter( 'muplugins_loaded', function () {
-	$plugins_to_active[] = 'hello.php';
 	update_option( 'active_plugins', $plugins_to_active );
 }, 100 );
 
-- 
GitLab