test_class.declarator: genericSoftwareClient
test_class.modifier: @Mock
test_class.original_string: @Mock
      GenericSoftwareClient genericSoftwareClient;
test_class.type: GenericSoftwareClient
test_class.var_name: genericSoftwareClient
test_class.declarator: plugin
test_class.original_string: TeamCityPlugin plugin;
test_class.type: TeamCityPlugin
test_class.var_name: plugin
test_class.declarator: teamcityUrl
test_class.modifier: static
test_class.original_string: static URL teamcityUrl;
test_class.type: URL
test_class.var_name: teamcityUrl
test_class.declarator: properties = new HashMap<>()
test_class.modifier: private
test_class.original_string: private Map<String, String> properties = new HashMap<>();
test_class.type: Map<String, String>
test_class.var_name: properties
test_class.file: component/core/src/test/java/fr/norad/visuwall/plugin/teamcity/TeamCityPluginTest.java
test_class.identifier: TeamCityPluginTest
test_case.body: @Test(expected = SoftwareNotFoundException.class)
      public void should_throw_exception_when_software_is_not_compatible() throws Exception {
          Throwable notFound = new ResourceNotFoundException("not found");
          when(genericSoftwareClient.resource(anyString(), any(Class.class))).thenThrow(notFound);
  
          plugin.getSoftwareId(teamcityUrl, properties);
      }
test_case.class_method_signature: TeamCityPluginTest.should_throw_exception_when_software_is_not_compatible()
test_case.full_signature: @Test(expected = SoftwareNotFoundException.class) public void should_throw_exception_when_software_is_not_compatible()
test_case.identifier: should_throw_exception_when_software_is_not_compatible
test_case.invocations: thenThrow when resource anyString any getSoftwareId
test_case.modifiers: @Test(expected = SoftwareNotFoundException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void should_throw_exception_when_software_is_not_compatible()
focal_class.file: component/core/src/main/java/fr/norad/visuwall/plugin/teamcity/TeamCityPlugin.java
focal_class.identifier: TeamCityPlugin
focal_class.interfaces: implements VisuwallPlugin<TeamCityConnection>
focal_class.class_method_signature: TeamCityPlugin.getConnection(URL url, Map<String, String> properties)
focal_class.full_signature: @Override public TeamCityConnection getConnection(URL url, Map<String, String> properties)
focal_class.identifier: getConnection
focal_class.modifiers: @Override public
focal_class.parameters: (URL url, Map<String, String> properties)
focal_class.return: TeamCityConnection
focal_class.signature: TeamCityConnection getConnection(URL url, Map<String, String> properties)
focal_class.class_method_signature: TeamCityPlugin.getConnectionClass()
focal_class.full_signature: @Override public Class<TeamCityConnection> getConnectionClass()
focal_class.identifier: getConnectionClass
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Class<TeamCityConnection>
focal_class.signature: Class<TeamCityConnection> getConnectionClass()
focal_class.class_method_signature: TeamCityPlugin.getName()
focal_class.full_signature: @Override public String getName()
focal_class.identifier: getName
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getName()
focal_class.class_method_signature: TeamCityPlugin.getVersion()
focal_class.full_signature: @Override public float getVersion()
focal_class.identifier: getVersion
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: float
focal_class.signature: float getVersion()
focal_class.class_method_signature: TeamCityPlugin.getSoftwareId(URL url, Map<String, String> properties)
focal_class.full_signature: @Override public SoftwareId getSoftwareId(URL url, Map<String, String> properties)
focal_class.identifier: getSoftwareId
focal_class.modifiers: @Override public
focal_class.parameters: (URL url, Map<String, String> properties)
focal_class.return: SoftwareId
focal_class.signature: SoftwareId getSoftwareId(URL url, Map<String, String> properties)
focal_class.class_method_signature: TeamCityPlugin.createSoftwareId(TeamCityServer teamCityServer)
focal_class.full_signature: private SoftwareId createSoftwareId(TeamCityServer teamCityServer)
focal_class.identifier: createSoftwareId
focal_class.modifiers: private
focal_class.parameters: (TeamCityServer teamCityServer)
focal_class.return: SoftwareId
focal_class.signature: SoftwareId createSoftwareId(TeamCityServer teamCityServer)
focal_class.class_method_signature: TeamCityPlugin.getVersion(TeamCityServer server)
focal_class.full_signature: private String getVersion(TeamCityServer server)
focal_class.identifier: getVersion
focal_class.modifiers: private
focal_class.parameters: (TeamCityServer server)
focal_class.return: String
focal_class.signature: String getVersion(TeamCityServer server)
focal_class.class_method_signature: TeamCityPlugin.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_class.class_method_signature: TeamCityPlugin.getPropertiesWithDefaultValue()
focal_class.full_signature: @Override public Map<String, String> getPropertiesWithDefaultValue()
focal_class.identifier: getPropertiesWithDefaultValue
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Map<String, String>
focal_class.signature: Map<String, String> getPropertiesWithDefaultValue()
focal_method.body: @Override
      public SoftwareId getSoftwareId(URL url, Map<String, String> properties) throws SoftwareNotFoundException {
          Preconditions.checkNotNull(url, "url is mandatory");
          try {
              GenericSoftwareClient genericSoftwareClient = new GenericSoftwareClient("guest", "");
              if (properties.get("login") != null) {
                  genericSoftwareClient = new GenericSoftwareClient(properties.get("login"), properties.get("password"));
              }
              TeamCityServer teamCityServer = genericSoftwareClient.resource(url + "/app/rest/server", TeamCityServer.class);
              return createSoftwareId(teamCityServer);
          } catch (ResourceNotFoundException e) {
              throw new SoftwareNotFoundException("Url " + url + " is not compatible with TeamCity", e);
          }
      }
focal_method.class_method_signature: TeamCityPlugin.getSoftwareId(URL url, Map<String, String> properties)
focal_method.full_signature: @Override public SoftwareId getSoftwareId(URL url, Map<String, String> properties)
focal_method.identifier: getSoftwareId
focal_method.invocations: checkNotNull get get get resource createSoftwareId
focal_method.modifiers: @Override public
focal_method.parameters: (URL url, Map<String, String> properties)
focal_method.return: SoftwareId
focal_method.signature: SoftwareId getSoftwareId(URL url, Map<String, String> properties)