@Test public void testPurgeCycles() throws Exception { Map<KbaChangeSetQualifier, KbaChangeSet> map = Maps.newHashMap(); KbaChangeSetQualifier addKey = ADD_Q_CURRENT_PLATFORM; KbaChangeSetQualifier remKey = REM_Q_CURRENT_PLATFORM; KbaBinding fooCommand = new KbaBinding("Ctrl+Alt+F", "com.google.FooCommand", Maps.<String, String>newHashMap()); KbaBinding barCommand = new KbaBinding("Ctrl+Alt+G", "com.google.BarCommand", Maps.<String, String>newHashMap()); Iterable<KbaBinding> bindingListToAdd = Lists.newArrayList(fooCommand, barCommand); Iterable<KbaBinding> bindingListToRem = Lists.newArrayList(fooCommand); KbaChangeSet changeSetToAdd = new KbaChangeSet(addKey, bindingListToAdd); KbaChangeSet changeSetToRem = new KbaChangeSet(remKey, bindingListToRem); map.put(addKey, changeSetToAdd); map.put(remKey, changeSetToRem); Assert.assertTrue(map.get(addKey).getBindingList().contains(fooCommand)); Assert.assertTrue(map.get(addKey).getBindingList().contains(barCommand)); Assert.assertTrue(map.get(remKey).getBindingList().contains(fooCommand)); Map<KbaChangeSetQualifier, KbaChangeSet> result = KbaBootstrapper.purgeCycles(map); Assert.assertTrue(result.get(addKey).getBindingList().contains(fooCommand)); Assert.assertTrue(result.get(addKey).getBindingList().contains(barCommand)); Assert.assertFalse(result.get(remKey).getBindingList().contains(fooCommand)); }