This is an automated email from the ASF dual-hosted git repository. ningjiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-saga.git
commit d300e17a6adc9df463d3b49a447818eed208e1b0 Author: KomachiSion <263976...@qq.com> AuthorDate: Tue Aug 21 13:56:19 2018 +0800 SCB-855 Support JDK7 in saga-format test --- .../saga/format/JacksonFromJsonFormatTest.java | 80 ++++++++++++++++------ .../saga/format/JacksonRestOperationTest.java | 11 ++- .../saga/format/JsonRestSagaRequestTest.java | 8 ++- .../saga/format/SagaEventFormatTest.java | 9 ++- 4 files changed, 79 insertions(+), 29 deletions(-) diff --git a/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonFromJsonFormatTest.java b/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonFromJsonFormatTest.java index bbf7510..8214cc1 100644 --- a/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonFromJsonFormatTest.java +++ b/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonFromJsonFormatTest.java @@ -18,7 +18,6 @@ package org.apache.servicecomb.saga.format; import static com.seanyinx.github.unit.scaffolding.Randomness.uniquify; -import static java.util.Collections.emptyMap; import static java.util.Collections.singletonMap; import static org.hamcrest.Matchers.contains; import static org.hamcrest.core.Is.is; @@ -27,12 +26,7 @@ import static org.junit.Assert.assertThat; import static org.mockito.Mockito.when; import java.io.IOException; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; +import java.util.*; import org.apache.servicecomb.saga.core.Operation; import org.apache.servicecomb.saga.core.SagaException; @@ -158,6 +152,41 @@ public class JacksonFromJsonFormatTest { private final TransportFactory transportFactory = Mockito.mock(TransportFactory.class); private final FromJsonFormat<SagaDefinition> format = new JacksonFromJsonFormat(transportFactory); + private final Function<SagaRequest, String> getRequestId = new Function<SagaRequest, String>() { + @Override + public String apply(SagaRequest sagaRequest) { + return sagaRequest.id(); + } + }; + + private final Function<SagaRequest, String> getRequestServiceName = new Function<SagaRequest, String>() { + @Override + public String apply(SagaRequest sagaRequest) { + return sagaRequest.serviceName(); + } + }; + + private final Function<SagaRequest, String> getRequestType = new Function<SagaRequest, String>() { + @Override + public String apply(SagaRequest sagaRequest) { + return sagaRequest.type(); + } + }; + + private final Function<SagaRequest, Integer> getCompensationRetries = new Function<SagaRequest, Integer>() { + @Override + public Integer apply(SagaRequest sagaRequest) { + return sagaRequest.compensation().retries(); + } + }; + + private final Function<SagaRequest, String> getFallbackType = new Function<SagaRequest, String>() { + @Override + public String apply(SagaRequest sagaRequest) { + return sagaRequest.fallback().type(); + } + }; + @Before public void setUp() throws Exception { when(transportFactory.restTransport()).thenReturn(restTransport); @@ -166,23 +195,24 @@ public class JacksonFromJsonFormatTest { .thenReturn(response11); when(restTransport.with("aaa", "/rest/as", "delete", singletonMap("query", singletonMap("bar", "as")))) .thenReturn(response12); - when(restTransport.with("aaa", "/rest/as", "put", emptyMap())) + when(restTransport.with("aaa", "/rest/as", "put", Collections.<String, Map<String, String>>emptyMap())) .thenReturn(response13); when(restTransport - .with("bbb", "/rest/bs", "post", mapOf("query", singletonMap("foo", "bs"), "json", singletonMap("body", "{ \"bar\": \"bs\" }")))) + .with("bbb", "/rest/bs", "post", + mapOf("query", singletonMap("foo", "bs"), "json", singletonMap("body", "{ \"bar\": \"bs\" }")))) .thenReturn(response21); - when(restTransport.with("bbb", "/rest/bs", "delete", emptyMap())) + when(restTransport.with("bbb", "/rest/bs", "delete", Collections.<String, Map<String, String>>emptyMap())) .thenReturn(response22); - when(restTransport.with("bbb", "/rest/bs", "put", emptyMap())) + when(restTransport.with("bbb", "/rest/bs", "put", Collections.<String, Map<String, String>>emptyMap())) .thenReturn(response23); when(restTransport .with("ccc", "/rest/cs", "post", mapOf("query", singletonMap("foo", "cs"), "form", singletonMap("bar", "cs")))) .thenReturn(response31); - when(restTransport.with("ccc", "/rest/cs", "delete", emptyMap())) + when(restTransport.with("ccc", "/rest/cs", "delete", Collections.<String, Map<String, String>>emptyMap())) .thenReturn(response32); - when(restTransport.with("ccc", "/rest/cs", "put", emptyMap())) + when(restTransport.with("ccc", "/rest/cs", "put", Collections.<String, Map<String, String>>emptyMap())) .thenReturn(response33); } @@ -190,12 +220,12 @@ public class JacksonFromJsonFormatTest { public void addTransportToDeserializedRequests() throws IOException { SagaRequest[] sagaRequests = format.fromJson(requests).requests(); - assertThat(collect(sagaRequests, SagaRequest::id), contains("request-aaa", "request-bbb", "request-ccc")); - assertThat(collect(sagaRequests, SagaRequest::serviceName), contains("aaa", "bbb", "ccc")); - assertThat(collect(sagaRequests, SagaRequest::type), Matchers + assertThat(collect(sagaRequests, getRequestId), contains("request-aaa", "request-bbb", "request-ccc")); + assertThat(collect(sagaRequests, getRequestServiceName), contains("aaa", "bbb", "ccc")); + assertThat(collect(sagaRequests, getRequestType), Matchers .contains(Operation.TYPE_REST, Operation.TYPE_REST, Operation.TYPE_REST)); - assertThat(collect(sagaRequests, (request) -> request.compensation().retries()), contains(3, 4, 5)); - assertThat(collect(sagaRequests, (request) -> request.fallback().type()), Matchers + assertThat(collect(sagaRequests, getCompensationRetries), contains(3, 4, 5)); + assertThat(collect(sagaRequests, getFallbackType), Matchers .contains(Operation.TYPE_REST, Operation.TYPE_REST, Operation.TYPE_REST)); SagaResponse response = sagaRequests[0].transaction().send("aaa"); @@ -226,7 +256,7 @@ public class JacksonFromJsonFormatTest { response = sagaRequests[2].fallback().send("ccc"); assertThat(response, is(response33)); - assertArrayEquals(new String[]{"request-aaa", "request-bbb"}, sagaRequests[2].parents()); + assertArrayEquals(new String[] {"request-aaa", "request-bbb"}, sagaRequests[2].parents()); } @Test @@ -242,9 +272,11 @@ public class JacksonFromJsonFormatTest { } private <T> Collection<T> collect(SagaRequest[] requests, Function<SagaRequest, T> mapper) { - return Arrays.stream(requests) - .map(mapper) - .collect(Collectors.toList()); + List<T> result = new LinkedList<T>(); + for (SagaRequest request : requests) { + result.add(mapper.apply(request)); + } + return result; } private Map<String, Map<String, String>> mapOf( @@ -258,4 +290,8 @@ public class JacksonFromJsonFormatTest { map.put(key2, value2); return map; } + + private interface Function<T, R> { + R apply(T t); + } } diff --git a/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonRestOperationTest.java b/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonRestOperationTest.java index dc3274e..9241289 100644 --- a/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonRestOperationTest.java +++ b/saga-format/src/test/java/org/apache/servicecomb/saga/format/JacksonRestOperationTest.java @@ -18,18 +18,19 @@ package org.apache.servicecomb.saga.format; import static com.seanyinx.github.unit.scaffolding.Randomness.uniquify; -import static java.util.Collections.emptyMap; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.apache.servicecomb.saga.core.Operation; import org.apache.servicecomb.saga.core.SagaResponse; import org.apache.servicecomb.saga.transports.RestTransport; +import org.apache.servicecomb.saga.transports.TransportFactory; import org.hamcrest.core.Is; import org.junit.Before; import org.junit.Test; @@ -44,11 +45,13 @@ public class JacksonRestOperationTest { private final Map<String, Map<String, String>> params = new HashMap<>(); private final RestTransport transport = Mockito.mock(RestTransport.class); + private final TransportFactory transportFactory = Mockito.mock(TransportFactory.class); private final JacksonRestOperation restOperation = new JacksonRestOperation(path, method, params); @Before public void setUp() throws Exception { - restOperation.with(() -> transport); + when(transportFactory.restTransport()).thenReturn(transport); + restOperation.with(transportFactory); } @Test @@ -62,7 +65,9 @@ public class JacksonRestOperationTest { assertThat(response, Is.is(SagaResponse.EMPTY_RESPONSE)); Map<String, Map<String, String>> updatedParams = argumentCaptor.getValue(); - assertThat(updatedParams.getOrDefault("form", emptyMap()).get("response"), Is.is(Operation.SUCCESSFUL_SAGA_RESPONSE.body())); + assertThat(null == updatedParams.get("form") ? Collections.<String, String>emptyMap().get("response") + : updatedParams.get("form").get("response") + , Is.is(Operation.SUCCESSFUL_SAGA_RESPONSE.body())); assertThat(params.isEmpty(), is(true)); } } diff --git a/saga-format/src/test/java/org/apache/servicecomb/saga/format/JsonRestSagaRequestTest.java b/saga-format/src/test/java/org/apache/servicecomb/saga/format/JsonRestSagaRequestTest.java index c727ccb..4ef870c 100644 --- a/saga-format/src/test/java/org/apache/servicecomb/saga/format/JsonRestSagaRequestTest.java +++ b/saga-format/src/test/java/org/apache/servicecomb/saga/format/JsonRestSagaRequestTest.java @@ -29,6 +29,8 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import java.util.Map; + import org.apache.servicecomb.saga.transports.TransportFactory; import org.junit.Test; import org.mockito.Mockito; @@ -74,7 +76,11 @@ public class JsonRestSagaRequestTest { request.fallback().send(uniquify("blah")); - verify(restTransport, never()).with(anyString(), anyString(), anyString(), anyMap()); + verify(restTransport, never()).with(anyString(), anyString(), anyString(), anyStringMap()); + } + + private Map<String, Map<String, String>> anyStringMap() { + return anyMap(); } private JsonRestSagaRequest newSagaRequest( diff --git a/saga-format/src/test/java/org/apache/servicecomb/saga/format/SagaEventFormatTest.java b/saga-format/src/test/java/org/apache/servicecomb/saga/format/SagaEventFormatTest.java index 9bad69c..70bc4b8 100644 --- a/saga-format/src/test/java/org/apache/servicecomb/saga/format/SagaEventFormatTest.java +++ b/saga-format/src/test/java/org/apache/servicecomb/saga/format/SagaEventFormatTest.java @@ -28,6 +28,9 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import java.util.Collections; +import java.util.Map; + import org.apache.servicecomb.saga.core.JacksonToJsonFormat; import org.apache.servicecomb.saga.core.SagaRequest; import org.apache.servicecomb.saga.core.SagaRequestImpl; @@ -65,7 +68,7 @@ public class SagaEventFormatTest { TYPE_REST, new JacksonRestTransaction("/rest/xxx", "POST", singletonMap("query", singletonMap("foo", "xxx"))), new JacksonRestCompensation("/rest/xxx", "DELETE", singletonMap("query", singletonMap("bar", "xxx"))), - new JacksonRestFallback(TYPE_REST, "/rest/xxx", "PUT", emptyMap()) + new JacksonRestFallback(TYPE_REST, "/rest/xxx", "PUT", Collections.<String, Map<String, String>>emptyMap()) ); private final RestTransport restTransport = Mockito.mock(RestTransport.class); @@ -140,7 +143,7 @@ public class SagaEventFormatTest { assertThat(((TransactionCompensatedEvent) sagaEvent).response(), eqToResponse(response)); } - private static Matcher<SagaRequest> eqToRequest(SagaRequest expected) { + private static Matcher<SagaRequest> eqToRequest(final SagaRequest expected) { return new TypeSafeMatcher<SagaRequest>() { @Override protected boolean matchesSafely(SagaRequest request) { @@ -162,7 +165,7 @@ public class SagaEventFormatTest { } - private static Matcher<SagaResponse> eqToResponse(SagaResponse expected) { + private static Matcher<SagaResponse> eqToResponse(final SagaResponse expected) { return new TypeSafeMatcher<SagaResponse>() { @Override protected boolean matchesSafely(SagaResponse response) {