private Contract createContract() { return new PathTemplateHeaderEnrichmentContract( new SlashEncodingContract( new Java8OptionalAwareContract( new GuavaOptionalAwareContract( new JAXRSContract())))); }
@Override protected void processMetadata(Class<?> targetType, Method method, MethodMetadata metadata) { Class<?>[] parameterTypes = method.getParameterTypes(); Annotation[][] annotations = method.getParameterAnnotations(); for (int i = 0; i < parameterTypes.length; i++) { Class<?> cls = parameterTypes[i]; for (ExpanderDef def : expanders) { if (cls.equals(def.match)) { FluentIterable<Class<?>> paramAnnotations = getAnnotations(annotations, i); configureOptionalExpanders(targetType, method, metadata, i, paramAnnotations, def.emptyExpanderClass, def.nullExpanderClass); } } } }
@Test public void testCborResponse() { GuavaOptionalComplexType value = new GuavaOptionalComplexType( com.google.common.base.Optional.of( new GuavaOptionalComplexType( com.google.common.base.Optional.absent(), com.google.common.base.Optional.absent(), Paths.get("bar"))), com.google.common.base.Optional.of("baz"), Paths.get("foo")); assertThat(service.getCborResponse(value), is(value)); }
@Test public void caseInsensitiveGetReturnsNullForNotExistingHeader() { assertThat(HeaderAccessUtils.caseInsensitiveGet(TEST_HEADERS_MAP, "invalid"), is(nullValue())); }
@Test public void testComplexType() { Java8ComplexType value = new Java8ComplexType( Optional.of( new Java8ComplexType( Optional.empty(), Optional.empty(), Paths.get("bar"))), Optional.of("baz"), Paths.get("foo")); // Hint: set breakpoint in Feign's SynchronousMethodHandler#executeAndDecode to inspect serialized parameter. assertThat(service.getJava8ComplexType(value), is(value)); } }
@Test public void testComplexType() { GuavaOptionalComplexType value = new GuavaOptionalComplexType( com.google.common.base.Optional.of( new GuavaOptionalComplexType( com.google.common.base.Optional.absent(), com.google.common.base.Optional.absent(), Paths.get("bar"))), com.google.common.base.Optional.of("baz"), Paths.get("foo")); // Hint: set breakpoint in Feign's SynchronousMethodHandler#executeAndDecode to inspect serialized parameter. assertThat(service.getGuavaComplexType(value), is(value)); }
@Test public void testCborRequest() { GuavaOptionalComplexType value = new GuavaOptionalComplexType( com.google.common.base.Optional.of( new GuavaOptionalComplexType( com.google.common.base.Optional.absent(), com.google.common.base.Optional.absent(), Paths.get("bar"))), com.google.common.base.Optional.of("baz"), Paths.get("foo")); assertThat(service.postCborRequest(value), is(value)); } }
@Override public final void run(Configuration config, final Environment env) throws Exception { env.jersey().register(ConjureJerseyFeature.INSTANCE); env.jersey().register(new JacksonMessageBodyProvider(ObjectMappers.newServerObjectMapper())); env.jersey().register(new EmptyOptionalTo204ExceptionMapper()); env.jersey().register(new TestResource()); }
@Test public void caseInsensitiveContainsShouldReturnTrueIgnoringCase() { assertThat(HeaderAccessUtils.caseInsensitiveContains(TEST_HEADERS_MAP, "hEaDeR"), is(true)); }
@Test public void testList() { assertThat(service.getNullList()).isEmpty(); }
@Test public void testOptionalString() { assertThat(service.getOptionalString(null), is(com.google.common.base.Optional.absent())); assertThat(service.getOptionalString("foo"), is(com.google.common.base.Optional.of("foo"))); }
@Test public void testCannotReturnStringWithMediaTypeJson() throws Exception { assertThatThrownBy(() -> service.getJsonString("foo")) .isInstanceOf(FeignException.class) .hasMessageStartingWith("Unrecognized token 'foo': was expecting 'null', 'true', 'false' or NaN"); }
@Test public void testMap() { assertThat(service.getNullMap()).isEmpty(); } }
@Test public void testSet() { assertThat(service.getNullSet()).isEmpty(); }
@Override public void run(ServiceConfigTestAppConfig configuration, Environment environment) throws Exception { environment.jersey().register(new Resource()); }
@Before public void before() { String endpointUri = "http://localhost:" + APP.getLocalPort(); service = JaxRsClient.create( Java8TestServer.TestService.class, AGENT, new HostMetricsRegistry(), createTestConfig(endpointUri)); }
private Contract createContract() { return new PathTemplateHeaderEnrichmentContract( new SlashEncodingContract( new Java8OptionalAwareContract( new GuavaOptionalAwareContract( new JAXRSContract())))); }
@Override protected void processMetadata(Class<?> targetType, Method method, MethodMetadata metadata) { Class<?>[] parameterTypes = method.getParameterTypes(); Annotation[][] annotations = method.getParameterAnnotations(); for (int i = 0; i < parameterTypes.length; i++) { Class<?> cls = parameterTypes[i]; for (ExpanderDef def : expanders) { if (cls.equals(def.match)) { FluentIterable<Class<?>> paramAnnotations = getAnnotations(annotations, i); configureOptionalExpanders(targetType, method, metadata, i, paramAnnotations, def.emptyExpanderClass, def.nullExpanderClass); } } } }
@Test public void caseInsensitiveGetReturnsAllExistingHeaders() { assertThat(HeaderAccessUtils.caseInsensitiveGet(TEST_HEADERS_MAP, "HeADER"), contains("value1", "value2", "value3", "value4", "value5")); } }
@Test public void caseInsensitiveContainsShouldReturnFalseForNonExistentKey() { assertThat(HeaderAccessUtils.caseInsensitiveContains(TEST_HEADERS_MAP, "invalid"), is(false)); }