private boolean compareRobotCapabilities(RobotCapabilities r1, RobotCapabilities r2) { if (r1.getProtocolVersion() != r2.getProtocolVersion() || !r1.getCapabilitiesHash().equals(r2.getCapabilitiesHash())) { return false; } Map<EventType, Capability> map1 = r1.getCapabilitiesMap(); Map<EventType, Capability> map2 = r1.getCapabilitiesMap(); for (EventType eventType : map1.keySet()) { Capability c1 = map1.get(eventType); Capability c2 = map2.get(eventType); if (c2 == null || !compareCapability(c1, c2)) { return false; } } for (EventType eventType : map2.keySet()) { if (!map1.containsKey(eventType)) { return false; } } return true; }
private boolean compareRobotCapabilities(RobotCapabilities r1, RobotCapabilities r2) { if (r1.getProtocolVersion() != r2.getProtocolVersion() || !r1.getCapabilitiesHash().equals(r2.getCapabilitiesHash())) { return false; } Map<EventType, Capability> map1 = r1.getCapabilitiesMap(); Map<EventType, Capability> map2 = r1.getCapabilitiesMap(); for (EventType eventType : map1.keySet()) { Capability c1 = map1.get(eventType); Capability c2 = map2.get(eventType); if (c2 == null || !compareCapability(c1, c2)) { return false; } } for (EventType eventType : map2.keySet()) { if (!map1.containsKey(eventType)) { return false; } } return true; }
private static ProtoRobotCapabilities serialize(RobotCapabilities capabilities) { ProtoRobotCapabilities.Builder builder = ProtoRobotCapabilities.newBuilder(); builder.setProtocolVersion(capabilities.getProtocolVersion().getVersionString()); builder.setCapabilitiesHash(capabilities.getCapabilitiesHash()); if (capabilities.getCapabilitiesMap() != null) { for (Capability capability: capabilities.getCapabilitiesMap().values()) { builder.addCapability(serialize(capability)); } } return builder.build(); }
private DBObject capabilitiesToObject(RobotCapabilities capabilities) { if (capabilities == null) { return null; } BasicDBObject capabilitiesObj = new BasicDBObject(); for (Capability capability : capabilities.getCapabilitiesMap().values()) { BasicBSONList contexts = new BasicBSONList(); for (Context c : capability.getContexts()) { contexts.add(c.name()); } capabilitiesObj.put(capability.getEventType().name(), new BasicDBObject() .append(CAPABILITY_CONTEXTS_FIELD, contexts) .append(CAPABILITY_FILTER_FIELD, capability.getFilter())); } BasicDBObject object = new BasicDBObject() .append(CAPABILITIES_CAPABILITIES_FIELD, capabilitiesObj) .append(CAPABILITIES_HASH_FIELD, capabilities.getCapabilitiesHash()) .append(CAPABILITIES_VERSION_FIELD, capabilities.getProtocolVersion().name()); return object; }
public void testFetchCapabilities() throws Exception { when(connection.get(TEST_CAPABILITIES_ENDPOINT)).thenReturn(CAPABILITIES_XML); RobotAccountData accountData = connector.fetchCapabilities(ROBOT_ACCOUNT, ""); RobotCapabilities capabilities = accountData.getCapabilities(); assertEquals("Expected capabilities hash as specified in the xml", CAPABILITIES_HASH, capabilities.getCapabilitiesHash()); assertEquals("Expected protocol version as specified in the xml", ProtocolVersion.V2_2, capabilities.getProtocolVersion()); Map<EventType, Capability> capabilitiesMap = capabilities.getCapabilitiesMap(); assertTrue("Expected capabilities as specified in the xml", capabilitiesMap.size() == 2); assertTrue("Expected capabilities as specified in the xml", capabilitiesMap.containsKey(EventType.WAVELET_SELF_ADDED)); assertTrue("Expected capabilities as specified in the xml", capabilitiesMap.containsKey(EventType.OPERATION_ERROR)); // Only one connection should be made verify(connection).get(TEST_CAPABILITIES_ENDPOINT); } }
public void testFetchCapabilities() throws Exception { when(connection.get(TEST_CAPABILITIES_ENDPOINT)).thenReturn(CAPABILITIES_XML); RobotAccountData accountData = connector.fetchCapabilities(ROBOT_ACCOUNT, ""); RobotCapabilities capabilities = accountData.getCapabilities(); assertEquals("Expected capabilities hash as specified in the xml", CAPABILITIES_HASH, capabilities.getCapabilitiesHash()); assertEquals("Expected protocol version as specified in the xml", ProtocolVersion.V2_2, capabilities.getProtocolVersion()); Map<EventType, Capability> capabilitiesMap = capabilities.getCapabilitiesMap(); assertTrue("Expected capabilities as specified in the xml", capabilitiesMap.size() == 2); assertTrue("Expected capabilities as specified in the xml", capabilitiesMap.containsKey(EventType.WAVELET_SELF_ADDED)); assertTrue("Expected capabilities as specified in the xml", capabilitiesMap.containsKey(EventType.OPERATION_ERROR)); // Only one connection should be made verify(connection).get(TEST_CAPABILITIES_ENDPOINT); } }
if (capabilities != null && capabilitiesHash.equals(capabilities.getCapabilitiesHash())) {