diff --git a/test/plugin/test_storage.rb b/test/plugin/test_storage.rb
index d99f4d3b53..cf62bd0d6e 100644
--- a/test/plugin/test_storage.rb
+++ b/test/plugin/test_storage.rb
@@ -1,7 +1,9 @@
 require_relative '../helper'
 require 'fluent/plugin/storage'
+require 'fluent/plugin/base'
 
-DummyPlugin = Struct.new(:system_config, :plugin_id, :plugin_id_configured?)
+class DummyPlugin < Fluent::Plugin::Base
+end
 
 class BareStorage < Fluent::Plugin::Storage
   Fluent::Plugin.register_storage('bare', self)
@@ -46,17 +48,21 @@ def terminate
 class StorageTest < Test::Unit::TestCase
   sub_test_case 'BareStorage' do
     setup do
-      plugin = DummyPlugin.new({}, '0', true)
+      plugin = DummyPlugin.new
       @s = BareStorage.new
-      @s.configure(config_element(), plugin)
+      @s.configure(config_element())
+      @s.owner = plugin
     end
 
     test 'is configured with plugin information and system config' do
-      plugin = DummyPlugin.new({'key' => 'value'}, '1', true)
+      plugin = DummyPlugin.new
+      plugin.system_config_override({'process_name' => 'mytest'})
+      plugin.configure(config_element('ROOT', '', {'@id' => '1'}))
       s = BareStorage.new
-      s.configure(config_element(), plugin)
+      s.configure(config_element())
+      s.owner = plugin
 
-      assert_equal({'key' => 'value'}, s.instance_eval{ @_system_config })
+      assert_equal 'mytest', s.owner.system_config.process_name
       assert_equal '1', s.instance_eval{ @_plugin_id }
       assert_equal true, s.instance_eval{ @_plugin_id_configured }
     end
@@ -95,30 +101,22 @@ class StorageTest < Test::Unit::TestCase
         @s.update('key'){ |v| v + '2' }
       end
     end
-
-    test 'close does nothing, terminate initialize internal values' do
-      assert_nothing_raised{ @s.close }
-      assert_equal({},   @s.instance_eval{ @_system_config })
-      assert_equal '0',  @s.instance_eval{ @_plugin_id }
-      assert_equal true, @s.instance_eval{ @_plugin_id_configured }
-
-      assert_nothing_raised{ @s.terminate }
-      assert_nil @s.instance_eval{ @_system_config }
-      assert_nil @s.instance_eval{ @_plugin_id }
-      assert_nil @s.instance_eval{ @_plugin_id_configured }
-    end
   end
 
   sub_test_case 'ExampleStorage' do
     setup do
-      plugin = DummyPlugin.new({}, '0', true)
+      plugin = DummyPlugin.new
+      plugin.configure(config_element('ROOT', '', {'@id' => '1'}))
       @s = ExampleStorage.new
-      @s.configure(config_element(), plugin)
+      @s.configure(config_element())
+      @s.owner = plugin
     end
 
     test 'load/save works well as plugin internal state operations' do
-      plugin = DummyPlugin.new({}, '0', true)
+      plugin = DummyPlugin.new
+      plugin.configure(config_element('ROOT', '', {'@id' => '0'}))
       s = ExampleStorage.new
+      s.owner = plugin
 
       assert_nothing_raised{ s.load }
       assert s.data