cloudfoundry / cf-java-client

Java Client Library for Cloud Foundry
Apache License 2.0
328 stars 318 forks source link

Re-implement V3 Service Bindings #1158

Closed radito3 closed 2 years ago

radito3 commented 2 years ago

Hi @dmikusa-pivotal , I wrote integration tests for V3 Service Bindings. Could you take another look at the changes?

dmikusa commented 2 years ago

@radito3 I ran the integration tests and am getting an error, looks like the same one, across all the tests...

[INFO] Running org.cloudfoundry.client.v3.ServiceBindingsTest
[ERROR] Tests run: 7, Failures: 7, Errors: 0, Skipped: 0, Time elapsed: 135.152 s <<< FAILURE! - in org.cloudfoundry.client.v3.ServiceBindingsTest
[ERROR] getDetails  Time elapsed: 1.003 s  <<< FAILURE!
java.lang.AssertionError: expectation "expectNext({foo=bar})" failed (expected: onNext({foo=bar}); actual: onError(org.cloudfoundry.reactor.util.JsonParsingException: Found unexpected property last_operation in payload for org.cloudfoundry.client.v3.servicebindings.ServiceBindingResource$Json))

[ERROR] deleteForManagedService  Time elapsed: 12.318 s  <<< FAILURE!
java.lang.AssertionError: expectation "expectNext(true)" failed (expected: onNext(true); actual: onError(org.cloudfoundry.reactor.util.JsonParsingException: Found unexpected property last_operation in payload for org.cloudfoundry.client.v3.servicebindings.ServiceBindingResource$Json))

[ERROR] createServiceKeyFromManagedServiceInstance  Time elapsed: 11.738 s  <<< FAILURE!
java.lang.AssertionError: expectation "expectNext(test-service-key-knfej)" failed (expected: onNext(test-service-key-knfej); actual: onComplete())

[ERROR] createAppBindingFromUserProvidedServiceInstance  Time elapsed: 0.442 s  <<< FAILURE!
java.lang.AssertionError: expectation "expectNext({test-label=test-label-value})" failed (expected: onNext({test-label=test-label-value}); actual: onError(org.cloudfoundry.reactor.util.JsonParsingException: Found unexpected property last_operation in payload for org.cloudfoundry.client.v3.servicebindings.ServiceBindingResource$Json))

[ERROR] get  Time elapsed: 0.452 s  <<< FAILURE!
java.lang.AssertionError: expectation "expectNext({test-label=test-label-value})" failed (expected: onNext({test-label=test-label-value}); actual: onError(org.cloudfoundry.reactor.util.JsonParsingException: Found unexpected property last_operation in payload for org.cloudfoundry.client.v3.servicebindings.ServiceBindingResource$Json))

[ERROR] deleteForUserProvidedService  Time elapsed: 0.456 s  <<< FAILURE!
java.lang.AssertionError: expectation "expectNext(false)" failed (expected: onNext(false); actual: onError(org.cloudfoundry.reactor.util.JsonParsingException: Found unexpected property last_operation in payload for org.cloudfoundry.client.v3.servicebindings.ServiceBindingResource$Json))

[ERROR] listForApplication  Time elapsed: 0.445 s  <<< FAILURE!
java.lang.AssertionError: expectation "expectNextCount(1)" failed (expected: count = 1; actual: counted = 0; signal: onError(org.cloudfoundry.reactor.util.JsonParsingException: Found unexpected property last_operation in payload for org.cloudfoundry.client.v3.servicebindings.ServiceBindingResource$Json))

Still looking at the PR and playing with it, but was curious why override deserialize here. Did you hit a specific issue there, was the default implementation not deserializing the payload properly?

Thanks

dmikusa commented 2 years ago

Also, from what I can tell, it looks like CAPI 1.109.0, which is what we have in Tanzu Application Server 2.11 does contain the API for service binding credentials. I would suggest marking the test as @IfCloudFoundryVersion(greaterThanOrEqualTo = CloudFoundryVersion.PCF_2_11), unless you've had issues with 2.11 or 2.12 that are corrected in 2.13. Thanks

radito3 commented 2 years ago

Hi @dmikusa-pivotal, thanks for pointing out the errors, I had 2 small issues. They are fixed now. Could you take another look? Thanks, Rangel

dmikusa commented 2 years ago

Excellent, thanks. Tests are passing, merging.