ServiceBindingSet setA = new ServiceBindingSet(A, null, 10);
sbs.add(setA);
ServiceBindingSet setB = new ServiceBindingSet(B, "localhost", 20);
sbs.add(setB);
PojoServiceBindingStore store = new PojoServiceBindingStore(sbs, set);
store.start();
Set<ServiceBindingSet> updated = new HashSet<ServiceBindingSet>(store.getServiceBindingSets());
Set<ServiceBindingMetadata> overrides = new HashSet<ServiceBindingMetadata>();
overrides.add(BA);
ServiceBindingSet newSet = new ServiceBindingSet(C, "192.168.0.10", 30, overrides);
updated.add(newSet);
ServiceBindingSet replaced = new ServiceBindingSet(B, "localhost", 50);
updated.remove(setB);
updated.add(replaced);
assertEquals(3, updated.size());
store.setServiceBindingSets(updated);
Set<ServiceBindingSet> result = store.getServiceBindingSets();
assertNotNull(result);
assertTrue("has setA", result.contains(setA));
assertTrue("has setB", result.contains(replaced));
assertTrue("has newSet", result.contains(newSet));
Set<ServiceBinding> bindings = store.getServiceBindings(C);
assertNotNull(bindings);
Map<String, ServiceBinding> byFQN = new HashMap<String, ServiceBinding>();
for (ServiceBinding binding : bindings)
{
byFQN.put(binding.getFullyQualifiedName(), binding);
}
ServiceBinding aa = byFQN.get(AA.getFullyQualifiedName());
assertNotNull(aa);
assertEquals(AA.getServiceName(), aa.getServiceName());
assertEquals(AA.getBindingName(), aa.getBindingName());
assertEquals(AA.getDescription(), aa.getDescription());
assertEquals("192.168.0.10", aa.getHostName());
assertEquals(AA.getPort() + 30, aa.getPort());
ServiceBinding ab = byFQN.get(AB.getFullyQualifiedName());
assertNotNull(aa);
assertEquals(AB.getServiceName(), ab.getServiceName());
assertEquals(AB.getBindingName(), ab.getBindingName());
assertEquals(AB.getDescription(), ab.getDescription());
assertEquals("192.168.0.10", ab.getHostName());
assertEquals(AB.getPort() + 30, ab.getPort());
ServiceBinding anull = byFQN.get(Anull.getFullyQualifiedName());
assertNotNull(anull);
assertEquals(Anull.getServiceName(), anull.getServiceName());
assertEquals(Anull.getBindingName(), anull.getBindingName());
assertEquals(Anull.getDescription(), anull.getDescription());
assertEquals("192.168.0.10", anull.getHostName());
assertEquals(Anull.getPort() + 30, anull.getPort());
ServiceBinding newOne = byFQN.get(BA.getFullyQualifiedName());
assertNotNull(newOne);
assertEquals(BA.getServiceName(), newOne.getServiceName());
assertEquals(BA.getBindingName(), newOne.getBindingName());
assertEquals(BA.getDescription(), newOne.getDescription());
assertEquals("192.168.0.10", newOne.getHostName());
assertEquals(BA.getPort() + 30, newOne.getPort());
bindings = store.getServiceBindings(B);
assertNotNull(bindings);
byFQN = new HashMap<String, ServiceBinding>();
for (ServiceBinding binding : bindings)
{
byFQN.put(binding.getFullyQualifiedName(), binding);