16 changed files with 2378 additions and 2 deletions
@ -0,0 +1,67 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2018 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.boot.autoconfigure.webservices.client; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import org.springframework.beans.factory.ObjectProvider; |
||||||
|
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; |
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; |
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; |
||||||
|
import org.springframework.boot.webservices.client.WebServiceTemplateBuilder; |
||||||
|
import org.springframework.boot.webservices.client.WebServiceTemplateCustomizer; |
||||||
|
import org.springframework.context.annotation.Bean; |
||||||
|
import org.springframework.context.annotation.Configuration; |
||||||
|
import org.springframework.core.annotation.AnnotationAwareOrderComparator; |
||||||
|
import org.springframework.oxm.Marshaller; |
||||||
|
import org.springframework.oxm.Unmarshaller; |
||||||
|
import org.springframework.util.CollectionUtils; |
||||||
|
import org.springframework.ws.client.core.WebServiceTemplate; |
||||||
|
|
||||||
|
/** |
||||||
|
* {@link EnableAutoConfiguration Auto-configuration} for {@link WebServiceTemplate}. |
||||||
|
* |
||||||
|
* @author Dmytro Nosan |
||||||
|
*/ |
||||||
|
@Configuration |
||||||
|
@ConditionalOnClass({ WebServiceTemplateBuilder.class, WebServiceTemplate.class, |
||||||
|
Unmarshaller.class, Marshaller.class }) |
||||||
|
public class WebServiceTemplateAutoConfiguration { |
||||||
|
|
||||||
|
private final ObjectProvider<List<WebServiceTemplateCustomizer>> webServiceTemplateCustomizers; |
||||||
|
|
||||||
|
public WebServiceTemplateAutoConfiguration( |
||||||
|
ObjectProvider<List<WebServiceTemplateCustomizer>> webServiceTemplateCustomizers) { |
||||||
|
this.webServiceTemplateCustomizers = webServiceTemplateCustomizers; |
||||||
|
} |
||||||
|
|
||||||
|
@Bean |
||||||
|
@ConditionalOnMissingBean |
||||||
|
public WebServiceTemplateBuilder webServiceTemplateBuilder() { |
||||||
|
WebServiceTemplateBuilder builder = new WebServiceTemplateBuilder(); |
||||||
|
List<WebServiceTemplateCustomizer> customizers = this.webServiceTemplateCustomizers |
||||||
|
.getIfAvailable(); |
||||||
|
if (!CollectionUtils.isEmpty(customizers)) { |
||||||
|
customizers = new ArrayList<>(customizers); |
||||||
|
AnnotationAwareOrderComparator.sort(customizers); |
||||||
|
builder = builder.setCustomizers(customizers); |
||||||
|
} |
||||||
|
return builder; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2018 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
/** |
||||||
|
* Auto-configuration for Spring Web Services Clients. |
||||||
|
*/ |
||||||
|
package org.springframework.boot.autoconfigure.webservices.client; |
||||||
@ -0,0 +1,150 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2018 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.boot.autoconfigure.webservices.client; |
||||||
|
|
||||||
|
import org.junit.After; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import org.springframework.boot.webservices.client.WebServiceTemplateBuilder; |
||||||
|
import org.springframework.boot.webservices.client.WebServiceTemplateCustomizer; |
||||||
|
import org.springframework.context.annotation.AnnotationConfigApplicationContext; |
||||||
|
import org.springframework.context.annotation.Bean; |
||||||
|
import org.springframework.context.annotation.Configuration; |
||||||
|
import org.springframework.oxm.jaxb.Jaxb2Marshaller; |
||||||
|
import org.springframework.ws.client.core.WebServiceTemplate; |
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat; |
||||||
|
|
||||||
|
/** |
||||||
|
* Tests for {@link WebServiceTemplateAutoConfiguration |
||||||
|
* WebServiceTemplateAutoConfiguration}. |
||||||
|
* |
||||||
|
* @author Dmytro Nosan |
||||||
|
*/ |
||||||
|
public class WebServiceTemplateAutoConfigurationTests { |
||||||
|
|
||||||
|
private AnnotationConfigApplicationContext context; |
||||||
|
|
||||||
|
@After |
||||||
|
public void close() { |
||||||
|
if (this.context != null) { |
||||||
|
this.context.close(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void webServiceTemplateShouldNotHaveMarshallerAndUnmarshaller() { |
||||||
|
load(WebServiceTemplateConfig.class); |
||||||
|
WebServiceTemplate webServiceTemplate = this.context |
||||||
|
.getBean(WebServiceTemplate.class); |
||||||
|
assertThat(webServiceTemplate.getUnmarshaller()).isNull(); |
||||||
|
assertThat(webServiceTemplate.getMarshaller()).isNull(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void webServiceTemplateShouldUserCustomBuilder() { |
||||||
|
load(CustomWebServiceTemplateBuilderConfig.class, WebServiceTemplateConfig.class); |
||||||
|
WebServiceTemplate webServiceTemplate = this.context |
||||||
|
.getBean(WebServiceTemplate.class); |
||||||
|
assertThat(webServiceTemplate.getMarshaller()).isNotNull(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void webServiceTemplateShouldApplyCustomizer() { |
||||||
|
load(WebServiceTemplateCustomizerConfig.class, WebServiceTemplateConfig.class); |
||||||
|
WebServiceTemplate webServiceTemplate = this.context |
||||||
|
.getBean(WebServiceTemplate.class); |
||||||
|
assertThat(webServiceTemplate.getUnmarshaller()).isNotNull(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void builderShouldBeFreshForEachUse() { |
||||||
|
load(DirtyWebServiceTemplateConfig.class); |
||||||
|
} |
||||||
|
|
||||||
|
private void load(Class<?>... config) { |
||||||
|
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); |
||||||
|
ctx.register(config); |
||||||
|
ctx.register(WebServiceTemplateAutoConfiguration.class); |
||||||
|
ctx.refresh(); |
||||||
|
this.context = ctx; |
||||||
|
} |
||||||
|
|
||||||
|
@Configuration |
||||||
|
static class WebServiceTemplateConfig { |
||||||
|
|
||||||
|
@Bean |
||||||
|
public WebServiceTemplate webServiceTemplate(WebServiceTemplateBuilder builder) { |
||||||
|
return builder.build(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Configuration |
||||||
|
static class DirtyWebServiceTemplateConfig { |
||||||
|
|
||||||
|
@Bean |
||||||
|
public WebServiceTemplate webServiceTemplateOne( |
||||||
|
WebServiceTemplateBuilder builder) { |
||||||
|
try { |
||||||
|
return builder.build(); |
||||||
|
} |
||||||
|
finally { |
||||||
|
breakBuilderOnNextCall(builder); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Bean |
||||||
|
public WebServiceTemplate webServiceTemplateTwo( |
||||||
|
WebServiceTemplateBuilder builder) { |
||||||
|
try { |
||||||
|
return builder.build(); |
||||||
|
} |
||||||
|
finally { |
||||||
|
breakBuilderOnNextCall(builder); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private void breakBuilderOnNextCall(WebServiceTemplateBuilder builder) { |
||||||
|
builder.addCustomizers((webServiceTemplate) -> { |
||||||
|
throw new IllegalStateException(); |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Configuration |
||||||
|
static class CustomWebServiceTemplateBuilderConfig { |
||||||
|
|
||||||
|
@Bean |
||||||
|
public WebServiceTemplateBuilder webServiceTemplateBuilder() { |
||||||
|
return new WebServiceTemplateBuilder().setMarshaller(new Jaxb2Marshaller()); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Configuration |
||||||
|
static class WebServiceTemplateCustomizerConfig { |
||||||
|
|
||||||
|
@Bean |
||||||
|
public WebServiceTemplateCustomizer webServiceTemplateCustomizer() { |
||||||
|
return (ws) -> ws.setUnmarshaller(new Jaxb2Marshaller()); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,34 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2018 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.boot.webservices.client; |
||||||
|
|
||||||
|
import org.springframework.ws.client.core.WebServiceTemplate; |
||||||
|
|
||||||
|
/** |
||||||
|
* Callback interface that can be used to customize a {@link WebServiceTemplate}. |
||||||
|
* |
||||||
|
* @author Dmytro Nosan |
||||||
|
*/ |
||||||
|
public interface WebServiceTemplateCustomizer { |
||||||
|
|
||||||
|
/** |
||||||
|
* Callback to customize a {@link WebServiceTemplate} instance. |
||||||
|
* @param webServiceTemplate the template to customize |
||||||
|
*/ |
||||||
|
void customize(WebServiceTemplate webServiceTemplate); |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2018 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
/** |
||||||
|
* Web Services client utilities. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.boot.webservices.client; |
||||||
@ -0,0 +1,93 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2018 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.boot.webservices.client; |
||||||
|
|
||||||
|
import org.junit.Rule; |
||||||
|
import org.junit.Test; |
||||||
|
import org.junit.rules.ExpectedException; |
||||||
|
import org.mockito.Mockito; |
||||||
|
|
||||||
|
import org.springframework.http.client.ClientHttpRequestFactory; |
||||||
|
import org.springframework.ws.transport.WebServiceMessageSender; |
||||||
|
import org.springframework.ws.transport.http.ClientHttpRequestMessageSender; |
||||||
|
|
||||||
|
/** |
||||||
|
* Tests for |
||||||
|
* {@link org.springframework.boot.webservices.client.WebServiceTemplateBuilder}. |
||||||
|
* |
||||||
|
* @author Dmytro Nosan |
||||||
|
*/ |
||||||
|
public class WebServiceTemplateBuilderCustomsMessageSenderTests { |
||||||
|
|
||||||
|
@Rule |
||||||
|
public ExpectedException thrown = ExpectedException.none(); |
||||||
|
|
||||||
|
private WebServiceTemplateBuilder builder = new WebServiceTemplateBuilder(); |
||||||
|
|
||||||
|
@Test |
||||||
|
public void unknownSenderReadTimeout() { |
||||||
|
this.thrown.expect(IllegalStateException.class); |
||||||
|
this.thrown.expectMessage("with 'readTimeout'. Please use a custom customizer."); |
||||||
|
this.thrown.expectMessage("There is no way to customize"); |
||||||
|
|
||||||
|
this.builder.setReadTimeout(3000).setWebServiceMessageSender( |
||||||
|
() -> Mockito.mock(WebServiceMessageSender.class)).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void unknownSenderConnectionTimeout() { |
||||||
|
this.thrown.expect(IllegalStateException.class); |
||||||
|
this.thrown.expectMessage( |
||||||
|
"with 'connectionTimeout'. Please use a custom customizer."); |
||||||
|
this.thrown.expectMessage("There is no way to customize"); |
||||||
|
|
||||||
|
this.builder.setConnectionTimeout(3000).setWebServiceMessageSender( |
||||||
|
() -> Mockito.mock(WebServiceMessageSender.class)).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void unknownRequestFactoryReadTimeout() { |
||||||
|
this.thrown.expect(IllegalStateException.class); |
||||||
|
this.thrown.expectMessage("with 'readTimeout'. Please use a custom customizer."); |
||||||
|
this.thrown.expectMessage("There is no way to customize"); |
||||||
|
|
||||||
|
this.builder.setReadTimeout(3000) |
||||||
|
.setWebServiceMessageSender(() -> new ClientHttpRequestMessageSender( |
||||||
|
Mockito.mock(ClientHttpRequestFactory.class))) |
||||||
|
.build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void unknownRequestFactoryConnectionTimeout() { |
||||||
|
this.thrown.expect(IllegalStateException.class); |
||||||
|
this.thrown.expectMessage( |
||||||
|
"with 'connectionTimeout'. Please use a custom customizer."); |
||||||
|
this.thrown.expectMessage("There is no way to customize"); |
||||||
|
|
||||||
|
this.builder.setConnectionTimeout(3000) |
||||||
|
.setWebServiceMessageSender(() -> new ClientHttpRequestMessageSender( |
||||||
|
Mockito.mock(ClientHttpRequestFactory.class))) |
||||||
|
.build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void shouldBuildWithoutTimeouts() { |
||||||
|
this.builder.setWebServiceMessageSender( |
||||||
|
() -> Mockito.mock(WebServiceMessageSender.class)).build(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,55 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2018 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.boot.webservices.client; |
||||||
|
|
||||||
|
import org.apache.http.client.config.RequestConfig; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import org.springframework.http.client.BufferingClientHttpRequestFactory; |
||||||
|
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; |
||||||
|
import org.springframework.test.util.ReflectionTestUtils; |
||||||
|
import org.springframework.ws.transport.http.ClientHttpRequestMessageSender; |
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat; |
||||||
|
|
||||||
|
/** |
||||||
|
* Tests for {@link WebServiceTemplateBuilder}. |
||||||
|
* |
||||||
|
* @author Dmytro Nosan |
||||||
|
*/ |
||||||
|
public class WebServiceTemplateBuilderHttpComponentsClientHttpRequestFactoryTests { |
||||||
|
|
||||||
|
private WebServiceTemplateBuilder builder = new WebServiceTemplateBuilder(); |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setTimeout() { |
||||||
|
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(); |
||||||
|
ClientHttpRequestMessageSender sender = new ClientHttpRequestMessageSender( |
||||||
|
new BufferingClientHttpRequestFactory(factory)); |
||||||
|
|
||||||
|
this.builder.setConnectionTimeout(5000).setReadTimeout(2000) |
||||||
|
.setWebServiceMessageSender(() -> sender).build(); |
||||||
|
|
||||||
|
RequestConfig requestConfig = (RequestConfig) ReflectionTestUtils |
||||||
|
.getField(factory, "requestConfig"); |
||||||
|
assertThat(requestConfig).isNotNull(); |
||||||
|
assertThat(requestConfig.getConnectTimeout()).isEqualTo(5000); |
||||||
|
assertThat(requestConfig.getSocketTimeout()).isEqualTo(2000); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,67 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2018 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.boot.webservices.client; |
||||||
|
|
||||||
|
import org.apache.http.client.HttpClient; |
||||||
|
import org.apache.http.params.HttpConnectionParams; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import org.springframework.ws.client.core.WebServiceTemplate; |
||||||
|
import org.springframework.ws.transport.http.HttpComponentsMessageSender; |
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat; |
||||||
|
|
||||||
|
/** |
||||||
|
* Tests for |
||||||
|
* {@link org.springframework.boot.webservices.client.WebServiceTemplateBuilder}. This |
||||||
|
* test class check that builder will create HttpComponents by default if apache client is |
||||||
|
* present in the classpath. |
||||||
|
* |
||||||
|
* @author Dmytro Nosan |
||||||
|
*/ |
||||||
|
@SuppressWarnings("deprecation") |
||||||
|
public class WebServiceTemplateBuilderHttpComponentsMessageSenderTests { |
||||||
|
|
||||||
|
private WebServiceTemplateBuilder builder = new WebServiceTemplateBuilder(); |
||||||
|
|
||||||
|
@Test |
||||||
|
public void build() { |
||||||
|
WebServiceTemplate webServiceTemplate = new WebServiceTemplateBuilder().build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()).hasSize(1); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()[0]) |
||||||
|
.isInstanceOf(HttpComponentsMessageSender.class); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setTimeout() { |
||||||
|
HttpComponentsMessageSender sender = new HttpComponentsMessageSender(); |
||||||
|
HttpClient httpClient = sender.getHttpClient(); |
||||||
|
|
||||||
|
this.builder.setConnectionTimeout(5000).setReadTimeout(2000) |
||||||
|
.setWebServiceMessageSender(() -> sender).build(); |
||||||
|
|
||||||
|
assertThat(HttpConnectionParams.getConnectionTimeout(httpClient.getParams())) |
||||||
|
.isEqualTo(5000); |
||||||
|
assertThat(HttpConnectionParams.getSoTimeout(httpClient.getParams())) |
||||||
|
.isEqualTo(2000); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,70 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2018 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.boot.webservices.client; |
||||||
|
|
||||||
|
import java.time.Duration; |
||||||
|
|
||||||
|
import org.junit.Test; |
||||||
|
import org.junit.runner.RunWith; |
||||||
|
|
||||||
|
import org.springframework.boot.testsupport.runner.classpath.ClassPathExclusions; |
||||||
|
import org.springframework.boot.testsupport.runner.classpath.ModifiedClassPathRunner; |
||||||
|
import org.springframework.test.util.ReflectionTestUtils; |
||||||
|
import org.springframework.ws.client.core.WebServiceTemplate; |
||||||
|
import org.springframework.ws.transport.http.HttpUrlConnectionMessageSender; |
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat; |
||||||
|
|
||||||
|
/** |
||||||
|
* Tests for {@link WebServiceTemplateBuilder}. This test class check that builder will |
||||||
|
* create HttpUrlConnectionMessageSender If Ok-http and Apache client are not present in |
||||||
|
* the classpath. |
||||||
|
* |
||||||
|
* @author Dmytro Nosan |
||||||
|
*/ |
||||||
|
@RunWith(ModifiedClassPathRunner.class) |
||||||
|
@ClassPathExclusions({ "httpclient-*.jar", "okhttp-*.jar" }) |
||||||
|
public class WebServiceTemplateBuilderHttpUrlConnectionMessageSenderTests { |
||||||
|
|
||||||
|
private WebServiceTemplateBuilder builder = new WebServiceTemplateBuilder(); |
||||||
|
|
||||||
|
@Test |
||||||
|
public void build() { |
||||||
|
WebServiceTemplate webServiceTemplate = this.builder.build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()).hasSize(1); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()[0]) |
||||||
|
.isInstanceOf(HttpUrlConnectionMessageSender.class); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setTimeout() { |
||||||
|
HttpUrlConnectionMessageSender sender = new HttpUrlConnectionMessageSender(); |
||||||
|
|
||||||
|
this.builder.setConnectionTimeout(5000).setReadTimeout(2000) |
||||||
|
.setWebServiceMessageSender(() -> sender).build(); |
||||||
|
|
||||||
|
assertThat(ReflectionTestUtils.getField(sender, "connectionTimeout")) |
||||||
|
.isEqualTo(Duration.ofMillis(5000)); |
||||||
|
assertThat(ReflectionTestUtils.getField(sender, "readTimeout")) |
||||||
|
.isEqualTo(Duration.ofMillis(2000)); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,82 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2018 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.boot.webservices.client; |
||||||
|
|
||||||
|
import okhttp3.OkHttpClient; |
||||||
|
import org.junit.Test; |
||||||
|
import org.junit.runner.RunWith; |
||||||
|
|
||||||
|
import org.springframework.boot.testsupport.runner.classpath.ClassPathExclusions; |
||||||
|
import org.springframework.boot.testsupport.runner.classpath.ModifiedClassPathRunner; |
||||||
|
import org.springframework.http.client.BufferingClientHttpRequestFactory; |
||||||
|
import org.springframework.http.client.OkHttp3ClientHttpRequestFactory; |
||||||
|
import org.springframework.test.util.ReflectionTestUtils; |
||||||
|
import org.springframework.ws.client.core.WebServiceTemplate; |
||||||
|
import org.springframework.ws.transport.http.ClientHttpRequestMessageSender; |
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat; |
||||||
|
|
||||||
|
/** |
||||||
|
* Tests for {@link WebServiceTemplateBuilder}. This test class check that builder will |
||||||
|
* create ClientHttpRequestMessageSender (OkHttp3ClientHttpRequestFactory) if apache |
||||||
|
* client is not present in the classpath |
||||||
|
* |
||||||
|
* @author Dmytro Nosan |
||||||
|
*/ |
||||||
|
@RunWith(ModifiedClassPathRunner.class) |
||||||
|
@ClassPathExclusions("httpclient-*.jar") |
||||||
|
public class WebServiceTemplateBuilderOkHttp3ClientHttpRequestFactoryTests { |
||||||
|
|
||||||
|
private WebServiceTemplateBuilder builder = new WebServiceTemplateBuilder(); |
||||||
|
|
||||||
|
@Test |
||||||
|
public void build() { |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder.build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()).hasSize(1); |
||||||
|
assertThat(webServiceTemplate.getMessageSenders()[0]) |
||||||
|
.isInstanceOf(ClientHttpRequestMessageSender.class); |
||||||
|
|
||||||
|
ClientHttpRequestMessageSender sender = (ClientHttpRequestMessageSender) webServiceTemplate |
||||||
|
.getMessageSenders()[0]; |
||||||
|
|
||||||
|
assertThat(sender.getRequestFactory()) |
||||||
|
.isInstanceOf(OkHttp3ClientHttpRequestFactory.class); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setTimeout() { |
||||||
|
OkHttp3ClientHttpRequestFactory factory = new OkHttp3ClientHttpRequestFactory(); |
||||||
|
ClientHttpRequestMessageSender sender = new ClientHttpRequestMessageSender( |
||||||
|
new BufferingClientHttpRequestFactory(factory)); |
||||||
|
|
||||||
|
this.builder.setConnectionTimeout(5000).setReadTimeout(2000) |
||||||
|
.setWebServiceMessageSender(() -> sender).build(); |
||||||
|
|
||||||
|
OkHttpClient client = (OkHttpClient) ReflectionTestUtils.getField(factory, |
||||||
|
"client"); |
||||||
|
|
||||||
|
assertThat(client).isNotNull(); |
||||||
|
|
||||||
|
assertThat(client.connectTimeoutMillis()).isEqualTo(5000); |
||||||
|
assertThat(client.readTimeoutMillis()).isEqualTo(2000); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,52 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2018 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.boot.webservices.client; |
||||||
|
|
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import org.springframework.http.client.BufferingClientHttpRequestFactory; |
||||||
|
import org.springframework.http.client.SimpleClientHttpRequestFactory; |
||||||
|
import org.springframework.test.util.ReflectionTestUtils; |
||||||
|
import org.springframework.ws.transport.http.ClientHttpRequestMessageSender; |
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat; |
||||||
|
|
||||||
|
/** |
||||||
|
* Tests for {@link WebServiceTemplateBuilder}. |
||||||
|
* |
||||||
|
* @author Dmytro Nosan |
||||||
|
*/ |
||||||
|
public class WebServiceTemplateBuilderSimpleClientHttpRequestFactoryTests { |
||||||
|
|
||||||
|
private WebServiceTemplateBuilder builder = new WebServiceTemplateBuilder(); |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setTimeout() { |
||||||
|
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); |
||||||
|
ClientHttpRequestMessageSender sender = new ClientHttpRequestMessageSender( |
||||||
|
new BufferingClientHttpRequestFactory(factory)); |
||||||
|
|
||||||
|
this.builder.setConnectionTimeout(5000).setReadTimeout(2000) |
||||||
|
.setWebServiceMessageSender(() -> sender).build(); |
||||||
|
|
||||||
|
assertThat(ReflectionTestUtils.getField(factory, "connectTimeout")) |
||||||
|
.isEqualTo(5000); |
||||||
|
assertThat(ReflectionTestUtils.getField(factory, "readTimeout")).isEqualTo(2000); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,520 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2018 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.boot.webservices.client; |
||||||
|
|
||||||
|
import java.net.URI; |
||||||
|
import java.util.Collection; |
||||||
|
import java.util.Collections; |
||||||
|
import java.util.function.Supplier; |
||||||
|
|
||||||
|
import javax.xml.transform.TransformerFactory; |
||||||
|
import javax.xml.transform.sax.SAXTransformerFactory; |
||||||
|
|
||||||
|
import org.junit.Test; |
||||||
|
import org.mockito.Mockito; |
||||||
|
|
||||||
|
import org.springframework.oxm.jaxb.Jaxb2Marshaller; |
||||||
|
import org.springframework.ws.client.core.FaultMessageResolver; |
||||||
|
import org.springframework.ws.client.core.WebServiceTemplate; |
||||||
|
import org.springframework.ws.client.support.interceptor.ClientInterceptor; |
||||||
|
import org.springframework.ws.soap.client.core.SoapFaultMessageResolver; |
||||||
|
import org.springframework.ws.soap.saaj.SaajSoapMessageFactory; |
||||||
|
import org.springframework.ws.transport.WebServiceMessageSender; |
||||||
|
import org.springframework.ws.transport.http.ClientHttpRequestMessageSender; |
||||||
|
import org.springframework.ws.transport.http.HttpUrlConnectionMessageSender; |
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat; |
||||||
|
|
||||||
|
/** |
||||||
|
* Tests for {@link WebServiceTemplateBuilder}. |
||||||
|
* |
||||||
|
* @author Dmytro Nosan |
||||||
|
*/ |
||||||
|
public class WebServiceTemplateBuilderTests { |
||||||
|
|
||||||
|
private WebServiceTemplateBuilder builder = new WebServiceTemplateBuilder(); |
||||||
|
|
||||||
|
@Test |
||||||
|
public void addInterceptors() { |
||||||
|
ClientInterceptor f1 = Mockito.mock(ClientInterceptor.class); |
||||||
|
ClientInterceptor f2 = Mockito.mock(ClientInterceptor.class); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder.addInterceptors(f1) |
||||||
|
.addInterceptors(f2).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getInterceptors()).containsExactlyInAnyOrder(f1, |
||||||
|
f2); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void addInterceptorsCollection() { |
||||||
|
ClientInterceptor f1 = Mockito.mock(ClientInterceptor.class); |
||||||
|
ClientInterceptor f2 = Mockito.mock(ClientInterceptor.class); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.addInterceptors(Collections.singletonList(f1)) |
||||||
|
.addInterceptors(Collections.singleton(f2)).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getInterceptors()).containsExactlyInAnyOrder(f1, |
||||||
|
f2); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setInterceptors() { |
||||||
|
ClientInterceptor f1 = Mockito.mock(ClientInterceptor.class); |
||||||
|
ClientInterceptor f2 = Mockito.mock(ClientInterceptor.class); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder.setInterceptors(f1) |
||||||
|
.setInterceptors(f2).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getInterceptors()).doesNotContain(f1).contains(f2); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setInterceptorsCollection() { |
||||||
|
ClientInterceptor f1 = Mockito.mock(ClientInterceptor.class); |
||||||
|
ClientInterceptor f2 = Mockito.mock(ClientInterceptor.class); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setInterceptors(Collections.singletonList(f1)) |
||||||
|
.setInterceptors(Collections.singleton(f2)).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getInterceptors()).doesNotContain(f1).contains(f2); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void addCustomizers() { |
||||||
|
Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller(); |
||||||
|
WebServiceTemplateCustomizer customizer = (ws) -> ws |
||||||
|
.setMarshaller(jaxb2Marshaller); |
||||||
|
WebServiceTemplateCustomizer customizer1 = (ws) -> ws |
||||||
|
.setUnmarshaller(jaxb2Marshaller); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder.addCustomizers(customizer) |
||||||
|
.addCustomizers(customizer1).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMarshaller()).isEqualTo(jaxb2Marshaller); |
||||||
|
assertThat(webServiceTemplate.getUnmarshaller()).isEqualTo(jaxb2Marshaller); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void addCustomizersCollection() { |
||||||
|
Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller(); |
||||||
|
WebServiceTemplateCustomizer customizer = (ws) -> ws |
||||||
|
.setMarshaller(jaxb2Marshaller); |
||||||
|
WebServiceTemplateCustomizer customizer1 = (ws) -> ws |
||||||
|
.setUnmarshaller(jaxb2Marshaller); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.addCustomizers(Collections.singleton(customizer)) |
||||||
|
.addCustomizers(Collections.singletonList(customizer1)).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMarshaller()).isEqualTo(jaxb2Marshaller); |
||||||
|
assertThat(webServiceTemplate.getUnmarshaller()).isEqualTo(jaxb2Marshaller); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setCustomizers() { |
||||||
|
Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller(); |
||||||
|
WebServiceTemplateCustomizer customizer = (ws) -> ws |
||||||
|
.setMarshaller(jaxb2Marshaller); |
||||||
|
WebServiceTemplateCustomizer customizer1 = (ws) -> ws |
||||||
|
.setUnmarshaller(jaxb2Marshaller); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder.setCustomizers(customizer) |
||||||
|
.setCustomizers(customizer1).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMarshaller()).isNull(); |
||||||
|
assertThat(webServiceTemplate.getUnmarshaller()).isEqualTo(jaxb2Marshaller); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setCustomizersCollection() { |
||||||
|
Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller(); |
||||||
|
WebServiceTemplateCustomizer customizer = (ws) -> ws |
||||||
|
.setMarshaller(jaxb2Marshaller); |
||||||
|
WebServiceTemplateCustomizer customizer1 = (ws) -> ws |
||||||
|
.setUnmarshaller(jaxb2Marshaller); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setCustomizers(Collections.singleton(customizer)) |
||||||
|
.setCustomizers(Collections.singletonList(customizer1)).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMarshaller()).isNull(); |
||||||
|
assertThat(webServiceTemplate.getUnmarshaller()).isEqualTo(jaxb2Marshaller); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void addWebServiceMessageSenders() { |
||||||
|
WebServiceMessageSender sender = Mockito.mock(WebServiceMessageSender.class); |
||||||
|
WebServiceMessageSender sender1 = Mockito.mock(WebServiceMessageSender.class); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.addWebServiceMessageSenders(Collections.singleton(() -> sender)) |
||||||
|
.addWebServiceMessageSenders(Collections.singletonList(() -> sender1)) |
||||||
|
.build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()) |
||||||
|
.containsExactlyInAnyOrder(sender, sender1); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setWebServiceMessageSenders() { |
||||||
|
WebServiceMessageSender sender = Mockito.mock(WebServiceMessageSender.class); |
||||||
|
WebServiceMessageSender sender1 = Mockito.mock(WebServiceMessageSender.class); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setWebServiceMessageSenders(Collections.singleton(() -> sender)) |
||||||
|
.setWebServiceMessageSenders(Collections.singletonList(() -> sender1)) |
||||||
|
.build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()).doesNotContain(sender) |
||||||
|
.contains(sender1); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void addWebServiceMessageSenderClass() { |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.addWebServiceMessageSender(ClientHttpRequestMessageSender.class) |
||||||
|
.addWebServiceMessageSender(HttpUrlConnectionMessageSender.class).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()).hasSize(2); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()[0]) |
||||||
|
.isInstanceOf(ClientHttpRequestMessageSender.class); |
||||||
|
assertThat(webServiceTemplate.getMessageSenders()[1]) |
||||||
|
.isInstanceOf(HttpUrlConnectionMessageSender.class); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setWebServiceMessageSenderClass() { |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setWebServiceMessageSender(ClientHttpRequestMessageSender.class) |
||||||
|
.setWebServiceMessageSender(HttpUrlConnectionMessageSender.class).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()).hasSize(1); |
||||||
|
assertThat(webServiceTemplate.getMessageSenders()[0]) |
||||||
|
.isInstanceOf(HttpUrlConnectionMessageSender.class); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void addWebServiceMessageSender() { |
||||||
|
WebServiceMessageSender sender = Mockito.mock(WebServiceMessageSender.class); |
||||||
|
WebServiceMessageSender sender1 = Mockito.mock(WebServiceMessageSender.class); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.addWebServiceMessageSender(() -> sender) |
||||||
|
.addWebServiceMessageSender(() -> sender1).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()) |
||||||
|
.containsExactlyInAnyOrder(sender, sender1); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setWebServiceMessageSender() { |
||||||
|
WebServiceMessageSender sender = Mockito.mock(WebServiceMessageSender.class); |
||||||
|
WebServiceMessageSender sender1 = Mockito.mock(WebServiceMessageSender.class); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setWebServiceMessageSender(() -> sender) |
||||||
|
.setWebServiceMessageSender(() -> sender1).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()).doesNotContain(sender) |
||||||
|
.contains(sender1); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setCheckConnectionForFault() { |
||||||
|
MockWebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setCheckConnectionForFault(false).build(MockWebServiceTemplate.class); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.isCheckConnectionForFault()).isFalse(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setCheckConnectionForError() { |
||||||
|
|
||||||
|
MockWebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setCheckConnectionForError(false).build(MockWebServiceTemplate.class); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.isCheckConnectionForError()).isFalse(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setTransformerFactoryClass() { |
||||||
|
MockWebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setTransformerFactoryClass(SAXTransformerFactory.class) |
||||||
|
.build(MockWebServiceTemplate.class); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getTransformerFactoryClass()) |
||||||
|
.isEqualTo(SAXTransformerFactory.class); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setWebServiceMessageFactory() { |
||||||
|
|
||||||
|
SaajSoapMessageFactory messageFactory = new SaajSoapMessageFactory(); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setWebServiceMessageFactory(messageFactory).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageFactory()).isEqualTo(messageFactory); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setMarshaller() { |
||||||
|
Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller(); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setMarshaller(jaxb2Marshaller).build(); |
||||||
|
assertThat(webServiceTemplate.getMarshaller()).isEqualTo(jaxb2Marshaller); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setUnmarshaller() { |
||||||
|
Jaxb2Marshaller jaxb2Unmarshaller = new Jaxb2Marshaller(); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setUnmarshaller(jaxb2Unmarshaller).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getUnmarshaller()).isEqualTo(jaxb2Unmarshaller); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setFaultMessageResolver() { |
||||||
|
|
||||||
|
FaultMessageResolver faultMessageResolver = new SoapFaultMessageResolver(); |
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setFaultMessageResolver(faultMessageResolver).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getFaultMessageResolver()) |
||||||
|
.isEqualTo(faultMessageResolver); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setDefaultUri() { |
||||||
|
URI uri = URI.create("http://localhost:8080"); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder.setDefaultUri(uri.toString()) |
||||||
|
.build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getDestinationProvider().getDestination()) |
||||||
|
.isEqualTo(uri); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void setDestinationProvider() { |
||||||
|
URI uri = URI.create("http://localhost:8080"); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = this.builder |
||||||
|
.setDestinationProvider(() -> uri).build(); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getDestinationProvider().getDestination()) |
||||||
|
.isEqualTo(uri); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void shouldNotOverrideDefaultSender() { |
||||||
|
WebServiceMessageSender sender = Mockito.mock(WebServiceMessageSender.class); |
||||||
|
WebServiceTemplate webServiceTemplate = new WebServiceTemplate(); |
||||||
|
webServiceTemplate.setMessageSender(sender); |
||||||
|
|
||||||
|
this.builder.detectWebServiceMessageSender(false).configure(webServiceTemplate); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getMessageSenders()).hasSize(1).contains(sender); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void addInterceptorsToExistingWebServiceTemplate() { |
||||||
|
ClientInterceptor f1 = Mockito.mock(ClientInterceptor.class); |
||||||
|
ClientInterceptor f2 = Mockito.mock(ClientInterceptor.class); |
||||||
|
|
||||||
|
WebServiceTemplate webServiceTemplate = new WebServiceTemplate(); |
||||||
|
webServiceTemplate.setInterceptors(new ClientInterceptor[] { f1 }); |
||||||
|
|
||||||
|
this.builder.addInterceptors(f2).configure(webServiceTemplate); |
||||||
|
|
||||||
|
assertThat(webServiceTemplate.getInterceptors()).containsExactlyInAnyOrder(f2, |
||||||
|
f1); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setInterceptorsArrayNull() { |
||||||
|
this.builder.setInterceptors((ClientInterceptor[]) null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setInterceptorsCollectionNull() { |
||||||
|
this.builder.setInterceptors((Collection<? extends ClientInterceptor>) null) |
||||||
|
.build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void addInterceptorsArrayNull() { |
||||||
|
this.builder.addInterceptors((ClientInterceptor[]) null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void addInterceptorsCollectionNull() { |
||||||
|
this.builder.addInterceptors((Collection<? extends ClientInterceptor>) null) |
||||||
|
.build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setCustomizersArrayNull() { |
||||||
|
this.builder.setCustomizers((WebServiceTemplateCustomizer[]) null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setCustomizersCollectionNull() { |
||||||
|
this.builder |
||||||
|
.setCustomizers((Collection<? extends WebServiceTemplateCustomizer>) null) |
||||||
|
.build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void addCustomizersArrayNull() { |
||||||
|
this.builder |
||||||
|
.addCustomizers((Collection<? extends WebServiceTemplateCustomizer>) null) |
||||||
|
.build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void addCustomizersCollectionNull() { |
||||||
|
this.builder |
||||||
|
.addCustomizers((Collection<? extends WebServiceTemplateCustomizer>) null) |
||||||
|
.build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setWebServiceMessageSendersNull() { |
||||||
|
this.builder.setWebServiceMessageSenders(null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void addWebServiceMessageSendersNull() { |
||||||
|
this.builder.addWebServiceMessageSenders(null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setWebServiceMessageSenderClassNull() { |
||||||
|
this.builder.setWebServiceMessageSender( |
||||||
|
(Class<? extends WebServiceMessageSender>) null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void addWebServiceMessageSenderClassNull() { |
||||||
|
this.builder.addWebServiceMessageSender( |
||||||
|
(Class<? extends WebServiceMessageSender>) null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setWebServiceMessageSenderSupplierNull() { |
||||||
|
this.builder.setWebServiceMessageSender( |
||||||
|
(Supplier<? extends WebServiceMessageSender>) null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void addWebServiceMessageSenderSupplierNull() { |
||||||
|
this.builder.addWebServiceMessageSender( |
||||||
|
(Supplier<? extends WebServiceMessageSender>) null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setWebServiceMessageFactoryNull() { |
||||||
|
this.builder.setWebServiceMessageFactory(null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setUnmarshallerNull() { |
||||||
|
this.builder.setUnmarshaller(null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setMarshallerNull() { |
||||||
|
this.builder.setMarshaller(null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setTransformerFactoryClassNull() { |
||||||
|
this.builder.setTransformerFactoryClass(null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setDefaultUriNull() { |
||||||
|
this.builder.setDefaultUri(null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = IllegalArgumentException.class) |
||||||
|
public void setDestinationProviderNull() { |
||||||
|
this.builder.setDestinationProvider(null).build(); |
||||||
|
} |
||||||
|
|
||||||
|
private static class MockWebServiceTemplate extends WebServiceTemplate { |
||||||
|
|
||||||
|
private boolean checkConnectionForError; |
||||||
|
|
||||||
|
private boolean checkConnectionForFault; |
||||||
|
|
||||||
|
private Class<? extends TransformerFactory> transformerFactoryClass; |
||||||
|
|
||||||
|
boolean isCheckConnectionForError() { |
||||||
|
return this.checkConnectionForError; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCheckConnectionForError(boolean checkConnectionForError) { |
||||||
|
this.checkConnectionForError = checkConnectionForError; |
||||||
|
} |
||||||
|
|
||||||
|
boolean isCheckConnectionForFault() { |
||||||
|
return this.checkConnectionForFault; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setCheckConnectionForFault(boolean checkConnectionForFault) { |
||||||
|
this.checkConnectionForFault = checkConnectionForFault; |
||||||
|
} |
||||||
|
|
||||||
|
Class<? extends TransformerFactory> getTransformerFactoryClass() { |
||||||
|
return this.transformerFactoryClass; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setTransformerFactoryClass( |
||||||
|
Class<? extends TransformerFactory> transformerFactoryClass) { |
||||||
|
this.transformerFactoryClass = transformerFactoryClass; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue