DemoPlugin implements VisuwallPlugin<DemoConnection> { @Override public SoftwareId getSoftwareId(URL url, Map<String, String> properties) throws SoftwareNotFoundException { if (url == null || !DEMO_VISUWALL_CI.equals(url.toString())) { throw new SoftwareNotFoundException(getName() + " is not compatible with url : " + url); } SoftwareId softwareId = new SoftwareId(); softwareId.setName("demo"); softwareId.setCompatible(true); softwareId.setVersion("1.0"); softwareId.setWarnings("This is a demo plugin"); return softwareId; }  @Override DemoConnection getConnection(URL url, Map<String, String> properties); @Override Map<String, String> getPropertiesWithDefaultValue(); @Override Class<DemoConnection> getConnectionClass(); @Override float getVersion(); @Override String getName(); @Override SoftwareId getSoftwareId(URL url, Map<String, String> properties);  }
@Test(expected = SoftwareNotFoundException.class) public void should_get_null_for_null_url() throws SoftwareNotFoundException { assertNull(plugin.getSoftwareId(null, properties)); }
@Test(expected = SoftwareNotFoundException.class) public void should_get_null_for_invalid_url() throws Exception { assertNull(plugin.getSoftwareId(new URL("http: }