spec/kpm/unit/plugins_manager_spec.rb in kpm-0.1.1 vs spec/kpm/unit/plugins_manager_spec.rb in kpm-0.1.2
- old
+ new
@@ -12,58 +12,123 @@
@plugin_dir = Pathname.new(@plugins_dir).join('ruby').join('killbill-stripe')
FileUtils.mkdir_p(@plugin_dir)
FileUtils.mkdir_p(@plugin_dir.join('1.0.0'))
FileUtils.mkdir_p(@plugin_dir.join('2.0.0'))
- File.exists?(@plugin_dir.join('ACTIVE')).should be_false
+ File.exists?(@plugin_dir.join('SET_DEFAULT')).should be_false
end
after(:each) do
FileUtils.remove_entry_secure @plugins_dir
end
+ it 'creates a plugin identifier entry with no coordinate' do
+ # Verifies file gets created if does not exist
+ identifiers = @manager.add_plugin_identifier_key('foo', 'foo_name', 'type', nil)
+ identifiers.size.should == 1
+ identifiers['foo']['plugin_name'].should == 'foo_name'
+ end
- it 'it creates a plugin identifiers file and add entries' do
+ it 'creates a plugin identifier entry with coordinates' do
# Verifies file gets created if does not exist
- identifiers = @manager.update_plugin_identifier('foo', 'foo_name')
+ identifiers = @manager.add_plugin_identifier_key('bar', 'bar_name', 'type', ['group', 'artifact', 'packaging', nil, 'version'])
identifiers.size.should == 1
- identifiers['foo'].should == 'foo_name'
+ identifiers['bar']['plugin_name'].should == 'bar_name'
+ identifiers['bar']['group_id'].should == 'group'
+ identifiers['bar']['artifact_id'].should == 'artifact'
+ identifiers['bar']['packaging'].should == 'packaging'
+ identifiers['bar']['classifier'].should == nil
+ identifiers['bar']['version'].should == 'version'
+ end
+
+ it 'creates plugin identifier with multiple entries' do
+ # Verifies file gets created if does not exist
+ identifiers = @manager.add_plugin_identifier_key('foo', 'foo_name', 'type', nil)
+ identifiers.size.should == 1
+ identifiers['foo']['plugin_name'].should == 'foo_name'
+
# Verify file was created from previous entry (prev value was read)
- identifiers = @manager.update_plugin_identifier('bar', 'bar_name')
+ identifiers = @manager.add_plugin_identifier_key('bar', 'bar_name', 'type', nil)
identifiers.size.should == 2
- identifiers['foo'].should == 'foo_name'
- identifiers['bar'].should == 'bar_name'
+ identifiers['foo']['plugin_name'].should == 'foo_name'
+ identifiers['bar']['plugin_name'].should == 'bar_name'
# Verify file was created from previous entry (prev value was read)
- identifiers = @manager.update_plugin_identifier('zoe', 'zoe_name')
+ identifiers = @manager.add_plugin_identifier_key('zoe', 'zoe_name', 'type', nil)
identifiers.size.should == 3
- identifiers['bar'].should == 'bar_name'
- identifiers['foo'].should == 'foo_name'
- identifiers['zoe'].should == 'zoe_name'
+ identifiers['bar']['plugin_name'].should == 'bar_name'
+ identifiers['foo']['plugin_name'].should == 'foo_name'
+ identifiers['zoe']['plugin_name'].should == 'zoe_name'
end
+ it 'creates plugin identifiers with duplicate entries' do
+ # Verifies file gets created if does not exist
+ identifiers = @manager.add_plugin_identifier_key('kewl', 'kewl_name', 'type', nil)
+ identifiers.size.should == 1
+ identifiers['kewl']['plugin_name'].should == 'kewl_name'
+ # Add with a different plugin_name
+ identifiers = @manager.add_plugin_identifier_key('kewl', 'kewl_name2', 'type', nil)
+ identifiers.size.should == 1
+ identifiers['kewl']['plugin_name'].should == 'kewl_name'
+ end
+
+
+ it 'creates plugin identifiers and remove entry' do
+ # Verifies file gets created if does not exist
+ identifiers = @manager.add_plugin_identifier_key('lol', 'lol_name', 'type', nil)
+ identifiers.size.should == 1
+ identifiers['lol']['plugin_name'].should == 'lol_name'
+
+ # Remove wrong entry, nothing happens
+ identifiers = @manager.remove_plugin_identifier_key('lol2')
+ identifiers.size.should == 1
+ identifiers['lol']['plugin_name'].should == 'lol_name'
+
+ # Remove correct entry
+ identifiers = @manager.remove_plugin_identifier_key('lol')
+ identifiers.size.should == 0
+
+ # Add same entry again
+ identifiers = @manager.add_plugin_identifier_key('lol', 'lol_name', 'type', nil)
+ identifiers.size.should == 1
+ identifiers['lol']['plugin_name'].should == 'lol_name'
+ end
+
+ it 'creates plugin identifiers and validate entry' do
+ # Verifies file gets created if does not exist
+ identifiers = @manager.add_plugin_identifier_key('yoyo', 'yoyo_name', 'type', ['group', 'artifact', 'packaging', nil, 'version'])
+ identifiers.size.should == 1
+ identifiers['yoyo']['plugin_name'].should == 'yoyo_name'
+
+ @manager.validate_plugin_identifier_key('yoyo', ['group', 'artifact', 'packaging', nil, 'version']).should == true
+
+ # Negative validation
+ @manager.validate_plugin_identifier_key('yoyo', ['group1', 'artifact', 'packaging', nil, 'version']).should == false
+ end
+
+
it 'sets a path as active' do
@manager.set_active(@plugin_dir.join('1.0.0'))
- File.exists?(@plugin_dir.join('ACTIVE')).should be_true
- File.readlink(@plugin_dir.join('ACTIVE')).should == @plugin_dir.join('1.0.0').to_s
+ File.exists?(@plugin_dir.join('SET_DEFAULT')).should be_true
+ File.readlink(@plugin_dir.join('SET_DEFAULT')).should == @plugin_dir.join('1.0.0').to_s
@manager.set_active(@plugin_dir.join('2.0.0'))
- File.exists?(@plugin_dir.join('ACTIVE')).should be_true
- File.readlink(@plugin_dir.join('ACTIVE')).should == @plugin_dir.join('2.0.0').to_s
+ File.exists?(@plugin_dir.join('SET_DEFAULT')).should be_true
+ File.readlink(@plugin_dir.join('SET_DEFAULT')).should == @plugin_dir.join('2.0.0').to_s
end
it 'sets a plugin version as active' do
@manager.set_active('killbill-stripe', '2.0.0')
- File.exists?(@plugin_dir.join('ACTIVE')).should be_true
- File.readlink(@plugin_dir.join('ACTIVE')).should == @plugin_dir.join('2.0.0').to_s
+ File.exists?(@plugin_dir.join('SET_DEFAULT')).should be_true
+ File.readlink(@plugin_dir.join('SET_DEFAULT')).should == @plugin_dir.join('2.0.0').to_s
@manager.set_active('killbill-stripe', '1.0.0')
- File.exists?(@plugin_dir.join('ACTIVE')).should be_true
- File.readlink(@plugin_dir.join('ACTIVE')).should == @plugin_dir.join('1.0.0').to_s
+ File.exists?(@plugin_dir.join('SET_DEFAULT')).should be_true
+ File.readlink(@plugin_dir.join('SET_DEFAULT')).should == @plugin_dir.join('1.0.0').to_s
end
it 'uninstalls a plugin via a path' do
@manager.uninstall(@plugin_dir.join('1.0.0'))
check_state('1.0.0', false, true)
@@ -114,10 +179,10 @@
@manager.guess_plugin_name('killbill-stripe').should == 'killbill-stripe'
end
private
- def check_state(version, has_restart, has_stop)
+ def check_state(version, has_restart, has_disabled)
File.exists?(@plugin_dir.join(version).join('tmp').join('restart.txt')).should == has_restart
- File.exists?(@plugin_dir.join(version).join('tmp').join('stop.txt')).should == has_stop
+ File.exists?(@plugin_dir.join(version).join('tmp').join('disabled.txt')).should == has_disabled
end
end