@Override public PackageRevision responseMessageForLatestRevisionSince(String responseBody) { return toPackageRevision(responseBody); }
@Override public String requestMessageForLatestRevisionSince(PackageConfiguration packageConfiguration, RepositoryConfiguration repositoryConfiguration, PackageRevision previousRevision) { Map configuredValues = new LinkedHashMap(); configuredValues.put("repository-configuration", jsonResultMessageHandler.configurationToMap(repositoryConfiguration)); configuredValues.put("package-configuration", jsonResultMessageHandler.configurationToMap(packageConfiguration)); configuredValues.put("previous-revision", packageRevisionToMap(previousRevision)); return toJsonString(configuredValues); }
@Override public PackageConfiguration responseMessageForPackageConfiguration(String responseBody) { try { PackageConfiguration packageConfiguration = new PackageConfiguration(); Map<String, Map> configurations; try { configurations = parseResponseToMap(responseBody); } catch (Exception e) { throw new RuntimeException("Package configuration should be returned as a map"); } if (configurations == null || configurations.isEmpty()) { throw new RuntimeException("Empty response body"); } for (String key : configurations.keySet()) { if (isEmpty(key)) { throw new RuntimeException("Package configuration key cannot be empty"); } if (!(configurations.get(key) instanceof Map)) { throw new RuntimeException(format("Package configuration properties for key '%s' should be represented as a Map", key)); } packageConfiguration.add(toPackageMaterialProperty(key, configurations.get(key))); } return packageConfiguration; } catch (RuntimeException e) { throw new RuntimeException(format("Unable to de-serialize json response. %s", e.getMessage())); } }
@Autowired public PackageRepositoryExtension(PluginManager pluginManager) { super(pluginManager, new PluginRequestHelper(pluginManager, goSupportedVersions, PACKAGE_MATERIAL_EXTENSION), PACKAGE_MATERIAL_EXTENSION); registerHandler("1.0", new PluginSettingsJsonMessageHandler1_0()); messageHandlerMap.put("1.0", new JsonMessageHandler1_0()); }
Map map; try { map = parseResponseToMap(responseBody); } catch (Exception e) { throw new RuntimeException("Package revision should be returned as a map");
@Test public void shouldBuildRequestBodyForCheckPackageConnectionRequest() throws Exception { String requestMessage = messageHandler.requestMessageForCheckConnectionToPackage(packageConfiguration, repositoryConfiguration); assertThat(requestMessage, is("{\"repository-configuration\":{\"key-one\":{\"value\":\"value-one\"},\"key-two\":{\"value\":\"value-two\"}},\"package-configuration\":{\"key-three\":{\"value\":\"value-three\"},\"key-four\":{\"value\":\"value-four\"}}}")); }
@Test public void shouldBuildRequestBodyForLatestRevisionSinceRequest() throws Exception { Date timestamp = new SimpleDateFormat(DATE_FORMAT).parse("2011-07-13T19:43:37.100Z"); Map data = new LinkedHashMap(); data.put("dataKeyOne", "data-value-one"); data.put("dataKeyTwo", "data-value-two"); PackageRevision previouslyKnownRevision = new PackageRevision("abc.rpm", timestamp, "someuser", "comment", null, data); String requestBody = messageHandler.requestMessageForLatestRevisionSince(packageConfiguration, repositoryConfiguration, previouslyKnownRevision); String expectedValue = "{\"repository-configuration\":{\"key-one\":{\"value\":\"value-one\"},\"key-two\":{\"value\":\"value-two\"}}," + "\"package-configuration\":{\"key-three\":{\"value\":\"value-three\"},\"key-four\":{\"value\":\"value-four\"}}," + "\"previous-revision\":{\"revision\":\"abc.rpm\",\"timestamp\":\"2011-07-13T19:43:37.100Z\",\"data\":{\"dataKeyOne\":\"data-value-one\",\"dataKeyTwo\":\"data-value-two\"}}}"; assertThat(requestBody, is(expectedValue)); }
@Test public void shouldBuildRequestBodyForCheckPackageConfigurationValidRequest() throws Exception { String requestMessage = messageHandler.requestMessageForIsPackageConfigurationValid(packageConfiguration, repositoryConfiguration); assertThat(requestMessage, is("{\"repository-configuration\":{\"key-one\":{\"value\":\"value-one\"},\"key-two\":{\"value\":\"value-two\"}},\"package-configuration\":{\"key-three\":{\"value\":\"value-three\"},\"key-four\":{\"value\":\"value-four\"}}}")); }
@Test public void shouldBuildRequestBodyForCheckRepositoryConnectionRequest() throws Exception { String requestMessage = messageHandler.requestMessageForCheckConnectionToRepository(repositoryConfiguration); assertThat(requestMessage, is("{\"repository-configuration\":{\"key-one\":{\"value\":\"value-one\"},\"key-two\":{\"value\":\"value-two\"}}}")); }
@Test public void shouldBuildRequestBodyForCheckRepositoryConfigurationValidRequest() throws Exception { String requestMessage = messageHandler.requestMessageForIsRepositoryConfigurationValid(repositoryConfiguration); assertThat(requestMessage, is("{\"repository-configuration\":{\"key-one\":{\"value\":\"value-one\"},\"key-two\":{\"value\":\"value-two\"}}}")); }
@Test public void shouldBuildRequestBodyForLatestRevisionRequest() throws Exception { String requestBody = messageHandler.requestMessageForLatestRevision(packageConfiguration, repositoryConfiguration); assertThat(requestBody, is("{\"repository-configuration\":{\"key-one\":{\"value\":\"value-one\"},\"key-two\":{\"value\":\"value-two\"}},\"package-configuration\":{\"key-three\":{\"value\":\"value-three\"},\"key-four\":{\"value\":\"value-four\"}}}")); }
@Before public void setUp() throws Exception { messageHandler = new JsonMessageHandler1_0(); repositoryConfiguration = new RepositoryConfiguration(); repositoryConfiguration.add(new PackageMaterialProperty("key-one", "value-one")); repositoryConfiguration.add(new PackageMaterialProperty("key-two", "value-two")); packageConfiguration = new PackageConfiguration(); packageConfiguration.add(new PackageMaterialProperty("key-three", "value-three")); packageConfiguration.add(new PackageMaterialProperty("key-four", "value-four")); }
@Override public PackageRevision responseMessageForLatestRevision(String responseBody) { PackageRevision packageRevision = toPackageRevision(responseBody); if (packageRevision == null) { throw new RuntimeException("Empty response body"); } else return packageRevision; }
@Override public RepositoryConfiguration responseMessageForRepositoryConfiguration(String responseBody) { try { RepositoryConfiguration repositoryConfiguration = new RepositoryConfiguration(); Map<String, Map> configurations; try { configurations = parseResponseToMap(responseBody); } catch (Exception e) { throw new RuntimeException("Repository configuration should be returned as a map"); } if (configurations == null || configurations.isEmpty()) { throw new RuntimeException("Empty response body"); } for (String key : configurations.keySet()) { if (isEmpty(key)) { throw new RuntimeException("Repository configuration key cannot be empty"); } if (!(configurations.get(key) instanceof Map)) { throw new RuntimeException(format("Repository configuration properties for key '%s' should be represented as a Map", key)); } repositoryConfiguration.add(toPackageMaterialProperty(key, configurations.get(key))); } return repositoryConfiguration; } catch (Exception e) { throw new RuntimeException(format("Unable to de-serialize json response. %s", e.getMessage())); } }
private String errorMessageForPackageRevision(String message) { try { messageHandler.toPackageRevision(message); fail("should have thrown exception"); } catch (Exception e) { return e.getMessage(); } return null; }