### Question:
StreamingServerProvider implements ModifiableServerProvider<StreamingServer> { @Override public void addServer(StreamingServer server) { String url = server.getURL(); ThreeTuple<String, String, Integer> protoHostPort = UrlUtilities.getProtocolHostPort(url, 80); String key = createServerKey(protoHostPort.getSecondObject(), protoHostPort.getThirdObject().intValue()); myServers.put(key, server); notifyServerAdded(server); }  @Override void addServer(StreamingServer server); @Override void addServerChangedListener(ServerChangedListener<StreamingServer> listener); @Override void clearServers(); @Override StreamingServer getServer(String host, String protocol, int port); @Override StreamingServer getServer(URL url); @Override void removeServer(StreamingServer server); @Override void removeServerChangedListener(ServerChangedListener<StreamingServer> listener);  }### Answer:
@Test public void testAddServer() throws MalformedURLException { EasyMockSupport support = new EasyMockSupport(); StreamingServer server = createServer(support); ServerChangedListener<StreamingServer> listener = createListener(support, server); support.replayAll(); StreamingServerProvider provider = new StreamingServerProvider(); provider.addServerChangedListener(listener); provider.addServer(server); assertEquals(server, provider.getServer(new URL(ourUrl))); provider.removeServer(server); assertNull(provider.getServer(new URL(ourUrl))); provider.removeServer(server); support.verifyAll(); }