protected String getStringProperty(String key) { if (getProperty(key) != null) { return getProperty(key).toString(); } return null; }
@Override public final boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Context)) return false; Context that = (Context) o; return that.canEqual(this) && Objects.equals(platform, that.platform) && Objects.equals(properties, that.properties); }
protected void assertHeaderValuesSet(ServiceBrokerRequest actualRequest) { assertThat(actualRequest.getPlatformInstanceId()).isEqualTo(PLATFORM_INSTANCE_ID); assertThat(actualRequest.getApiInfoLocation()).isEqualTo(API_INFO_LOCATION); assertThat(actualRequest.getOriginatingIdentity()).isNotNull(); Context identity = actualRequest.getOriginatingIdentity(); assertThat(identity.getPlatform()).isEqualTo(ORIGINATING_IDENTITY_PLATFORM); assertThat(identity.getProperty(ORIGINATING_USER_KEY)).isEqualTo(ORIGINATING_USER_VALUE); assertThat(identity.getProperty(ORIGINATING_EMAIL_KEY)).isEqualTo(ORIGINATING_EMAIL_VALUE); }
protected String encodeOriginatingIdentity(Context context) { Map<String, Object> properties = context.getProperties(); String propertiesJson = JsonUtils.toJson(properties); return context.getPlatform() + " " + Base64.getEncoder().encodeToString(propertiesJson.getBytes()); }
@Test public void requestWithCloudFoundryContextIsDeserializedFromJson() { AsyncParameterizedServiceInstanceRequest request = JsonUtils.readTestDataFile("requestWithParametersAndCloudFoundryContext.json", CreateServiceInstanceRequest.class); assertThat(request.getContext().getPlatform()).isEqualTo(CLOUD_FOUNDRY_PLATFORM); assertThat(request.getContext()).isInstanceOf(CloudFoundryContext.class); CloudFoundryContext context = (CloudFoundryContext) request.getContext(); assertThat(context.getOrganizationGuid()).isEqualTo("test-organization-guid"); assertThat(context.getSpaceGuid()).isEqualTo("test-space-guid"); assertThat(context.getProperty("field1")).isEqualTo("data"); assertThat(context.getProperty("field2")).isEqualTo(2); Map<String, Object> parameters = request.getParameters(); assertThat(parameters).hasSize(3); assertThat(parameters.get("parameter1")).isEqualTo(1); assertThat(parameters.get("parameter2")).isEqualTo("foo"); assertThat(parameters.get("parameter3")).isEqualTo(true); }
protected Context parseOriginatingIdentity(String originatingIdentityString) { if (originatingIdentityString == null) { return null; } String[] parts = originatingIdentityString.split(" ", 2); if (parts.length != 2) { throw new HttpMessageNotReadableException("Expected platform and properties values in " + ORIGINATING_IDENTITY_HEADER + " header in request"); } String platform = parts[0]; String encodedProperties; try { encodedProperties = new String(Base64.decode(parts[1].getBytes())); } catch (Exception e) { throw new HttpMessageNotReadableException("Error decoding JSON properties from " + ORIGINATING_IDENTITY_HEADER + " header in request", e); } Map<String, Object> properties; try { properties = readJsonFromString(encodedProperties); } catch (IOException e) { throw new HttpMessageNotReadableException("Error parsing JSON properties from " + ORIGINATING_IDENTITY_HEADER + " header in request", e); } return new Context(platform, properties); }
@Test public void originatingIdentityWithUnknownPlatform() { Context context = controller.testOriginatingIdentity("test-platform " + encode(JSON_STRING)); assertThat(context).isInstanceOf(PlatformContext.class); assertThat(context.getPlatform()).isEqualTo("test-platform"); assertThat(context.getProperty("key1")).isEqualTo("value1"); assertThat(context.getProperty("key2")).isEqualTo("value2"); }
@Test public void requestWithKubernetesContextIsDeserializedFromJson() { AsyncParameterizedServiceInstanceRequest request = JsonUtils.readTestDataFile("requestWithEmptyParametersAndKubernetesContext.json", CreateServiceInstanceRequest.class); assertThat(request.getContext().getPlatform()).isEqualTo(KUBERNETES_PLATFORM); assertThat(request.getContext()).isInstanceOf(KubernetesContext.class); KubernetesContext context = (KubernetesContext) request.getContext(); assertThat(context.getNamespace()).isEqualTo("test-namespace"); assertThat(context.getProperty("field1")).isEqualTo("data"); assertThat(context.getProperty("field2")).isEqualTo(2); assertThat(request.getParameters()).hasSize(0); }
@Test public void requestWithUnknownContextIsDeserializedFromJson() { AsyncParameterizedServiceInstanceRequest request = JsonUtils.readTestDataFile("requestWithCustomContext.json", CreateServiceInstanceRequest.class); assertThat(request.getContext().getPlatform()).isEqualTo("test-platform"); assertThat(request.getContext().getProperty("field1")).isEqualTo("data"); assertThat(request.getContext().getProperty("field2")).isEqualTo(2); assertThat(request.getParameters()).isNull(); }
protected String getStringProperty(String key) { if (getProperty(key) != null) { return getProperty(key).toString(); } return null; }
@Override public final boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Context)) return false; Context that = (Context) o; return that.canEqual(this) && Objects.equals(platform, that.platform) && Objects.equals(properties, that.properties); }
@Test public void requestIsDeserializedFromJson() { CreateServiceInstanceBindingRequest request = JsonUtils.readTestDataFile("bindRequest.json", CreateServiceInstanceBindingRequest.class); assertThat(request.getServiceDefinitionId()).isEqualTo("test-service-id"); assertThat(request.getPlanId()).isEqualTo("test-plan-id"); assertThat(request.getAppGuid()).isEqualTo("test-app-guid"); Context context = request.getContext(); assertThat(context.getPlatform()).isEqualTo("sample-platform"); assertThat(context).isInstanceOf(Context.class); assertThat(context.getProperty("field1")).isEqualTo("data"); assertThat(context.getProperty("field2")).isEqualTo(2); assertThat(request.getBindResource().getProperty("field1")).isEqualTo("data"); assertThat(request.getBindResource().getProperty("field2")).isEqualTo(2); assertThat(request.getParameters().get("parameter1")).isEqualTo(1); assertThat(request.getParameters().get("parameter2")).isEqualTo("foo"); assertThat(request.getParameters().get("parameter3")).isEqualTo(true); }
@Test public void originatingIdentityWithCloudFoundryPlatform() { Context context = controller.testOriginatingIdentity("cloudfoundry " + encode(JSON_STRING)); assertThat(context).isInstanceOf(CloudFoundryContext.class); assertThat(context.getProperty("key1")).isEqualTo("value1"); assertThat(context.getProperty("key2")).isEqualTo("value2"); }
@Test public void originatingIdentityWithKubernetesPlatform() { Context context = controller.testOriginatingIdentity("kubernetes " + encode(JSON_STRING)); assertThat(context).isInstanceOf(KubernetesContext.class); assertThat(context.getProperty("key1")).isEqualTo("value1"); assertThat(context.getProperty("key2")).isEqualTo("value2"); }