@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)); }
@Test public void testCombo() { Iterable<EclBinding> sysBs = Lists.newArrayList( sysBinding("key0", "cid0"), sysBinding("key1", "cid1"), sysBinding("key5", "cid1"), sysBinding("key4", "cid4", CURRENT_PLATFORM)); Iterable<EclBinding> userBs = Lists.newArrayList( remBinding("key1"), remBinding("key4"), usrBinding("key2", "cid2"), usrBinding("key2", "cid2"), // Should be uniquified in the process usrBinding("key3", "cid3")); Map<KbaChangeSetQualifier, KbaChangeSet> systemBindings = KbaBootstrapper.buildSystemBindingsMap(sysBs); Map<KbaChangeSetQualifier, KbaChangeSet> userBindings = KbaBootstrapper.buildUserBindingsMap( CURRENT_PLATFORM, systemBindings, userBs, new MechanicLog(new EmptyLog())); KbaChangeSet actualSysBindings = systemBindings.get(ADD_Q_NULL_PLATFORM); Assert.assertEquals(3, actualSysBindings.getBindingList().size()); KbaChangeSet actualSysBindingsCurrentPlatform = systemBindings.get(ADD_Q_CURRENT_PLATFORM); Assert.assertEquals(1, actualSysBindingsCurrentPlatform.getBindingList().size()); KbaChangeSet actualUserAddBindings = userBindings.get(ADD_Q_NULL_PLATFORM); Assert.assertEquals(2, actualUserAddBindings.getBindingList().size()); KbaChangeSet actualUserRemBindings = userBindings.get(REM_Q_NULL_PLATFORM); Assert.assertEquals(2, actualUserRemBindings.getBindingList().size()); Set<KbaBinding> actualRemoved = Sets.newHashSet(actualUserRemBindings.getBindingList()); Set<KbaBinding> expectedRemoved = Sets.newHashSet( new KbaBinding("key1", "cid1", Maps.<String, String>newHashMap()), new KbaBinding("key4", "cid4", Maps.<String, String>newHashMap())); Assert.assertEquals(expectedRemoved, actualRemoved); Assert.assertEquals(Action.REMOVE, actualUserRemBindings.getAction()); }