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