Here are the examples of the java api org.springframework.core.ParameterizedTypeReference taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
440 Examples
19
View Source File : RestTemplateController.java
License : Apache License 2.0
Project Creator : zuihou
License : Apache License 2.0
Project Creator : zuihou
@GetMapping("/get")
public R<Order> get(@RequestParam("key") String key) {
Map<String, Object> map = new HashMap<>(16);
map.put("key", key);
// map.put("ldt", LocalDateTime.now());
// map.put("date", DateUtils.formatAsDateTime(new Date()));
String url = "http://lamp-demo-server/restTemplate/get?key={key}";
// String url = "http://lamp-demo-server/restTemplate/get?key={key}&date={date}&ldt={ldt}";
// R<Order> r = restTemplate.getForObject(url, R.clreplaced, map);
// HttpEnreplacedy httpEnreplacedy = new HttpEnreplacedy(map);
ParameterizedTypeReference<R<Order>> ptr = new ParameterizedTypeReference<R<Order>>() {
};
ResponseEnreplacedy<R<Order>> exchange = restTemplate.exchange(url, HttpMethod.GET, null, ptr, map);
return exchange.getBody();
}
19
View Source File : ByteDanceV1OperationControllerTest.java
License : MIT License
Project Creator : yydzxz
License : MIT License
Project Creator : yydzxz
@DisplayName("查询「抖音直播组件」能力申请状态")
@Test
void liveApplicationStatus() {
ParameterizedTypeReference<ByteDanceOpenDemoResponse<OperationLiveApplicationStatusResponse>> typeRef = new ParameterizedTypeReference<ByteDanceOpenDemoResponse<OperationLiveApplicationStatusResponse>>() {
};
ResponseEnreplacedy<ByteDanceOpenDemoResponse<OperationLiveApplicationStatusResponse>> responseEnreplacedy = restTemplate.exchange("http://127.0.0.1:" + port + "/bytedance/v1/miniprogram/operation/live_application_status?appid=" + testAppInfoProperties.getAppid(), HttpMethod.GET, null, typeRef);
OperationLiveApplicationStatusResponse response = responseEnreplacedy.getBody().getData();
replacedertThat(response.getErrno()).isEqualTo(0);
replacedertThat(response.getData().getStatus()).isNotNull();
replacedertThat(response.getData().getStatus()).isBetween(0, 6);
// 「抖音直播组件」申请状态对应的原因
// 如果状态是0(默认值)、1(可申请)、3(申请中)、4(申请通过),则 reason 为空字符串
if (response.getData().getStatus() == 0 || response.getData().getStatus() == 1 || response.getData().getStatus() == 3 || response.getData().getStatus() == 4) {
replacedertThat(response.getData().getReason()).isBlank();
} else {
replacedertThat(response.getData().getReason()).isNotBlank();
}
}
19
View Source File : ByteDanceV1InfoControllerTest.java
License : MIT License
Project Creator : yydzxz
License : MIT License
Project Creator : yydzxz
@DisplayName("小程序名称检测-名字太长")
@Test
void checkAppName4() {
String appName = "aaaaaaaaaaaaaaaaaaaaa";
ParameterizedTypeReference<ByteDanceOpenDemoResponse<AppCheckAppNameResponse>> typeRef = new ParameterizedTypeReference<ByteDanceOpenDemoResponse<AppCheckAppNameResponse>>() {
};
ResponseEnreplacedy<ByteDanceOpenDemoResponse<AppCheckAppNameResponse>> responseEnreplacedy = restTemplate.exchange("http://127.0.0.1:" + port + "/bytedance/v1/miniprogram/check_app_name?appid=" + testAppInfoProperties.getAppid() + "&app_name=" + appName, HttpMethod.GET, null, typeRef);
AppCheckAppNameResponse response = responseEnreplacedy.getBody().getData();
replacedertThat(response.getErrno()).isEqualTo(21001);
}
19
View Source File : ByteDanceV1InfoControllerTest.java
License : MIT License
Project Creator : yydzxz
License : MIT License
Project Creator : yydzxz
@DisplayName("小程序名称检测-名字有特殊字符")
@Test
void checkAppName2() {
String appName = "%^&*(";
ParameterizedTypeReference<ByteDanceOpenDemoResponse<AppCheckAppNameResponse>> typeRef = new ParameterizedTypeReference<ByteDanceOpenDemoResponse<AppCheckAppNameResponse>>() {
};
ResponseEnreplacedy<ByteDanceOpenDemoResponse<AppCheckAppNameResponse>> responseEnreplacedy = restTemplate.exchange("http://127.0.0.1:" + port + "/bytedance/v1/miniprogram/check_app_name?appid=" + testAppInfoProperties.getAppid() + "&app_name=" + appName, HttpMethod.GET, null, typeRef);
AppCheckAppNameResponse response = responseEnreplacedy.getBody().getData();
replacedertThat(response.getErrno()).isEqualTo(21001);
}
19
View Source File : ByteDanceV1InfoControllerTest.java
License : MIT License
Project Creator : yydzxz
License : MIT License
Project Creator : yydzxz
@DisplayName("查询信用分分值")
@Test
void creditScore() {
ParameterizedTypeReference<ByteDanceOpenDemoResponse<AppCreditScoreResponse>> typeRef = new ParameterizedTypeReference<ByteDanceOpenDemoResponse<AppCreditScoreResponse>>() {
};
ResponseEnreplacedy<ByteDanceOpenDemoResponse<AppCreditScoreResponse>> responseEnreplacedy = restTemplate.exchange("http://127.0.0.1:" + port + "/bytedance/v1/miniprogram/credit_score?appid=" + testAppInfoProperties.getAppid(), HttpMethod.GET, null, typeRef);
AppCreditScoreResponse response = responseEnreplacedy.getBody().getData();
replacedertThat(response.getErrno()).isEqualTo(0);
replacedertThat(response.getData().getCreditScore()).isNotNull();
}
19
View Source File : ByteDanceV1InfoControllerTest.java
License : MIT License
Project Creator : yydzxz
License : MIT License
Project Creator : yydzxz
@DisplayName("小程序名称检测-名字正常")
@Test
void checkAppName() {
String appName = "我的杂货铺";
ParameterizedTypeReference<ByteDanceOpenDemoResponse<AppCheckAppNameResponse>> typeRef = new ParameterizedTypeReference<ByteDanceOpenDemoResponse<AppCheckAppNameResponse>>() {
};
ResponseEnreplacedy<ByteDanceOpenDemoResponse<AppCheckAppNameResponse>> responseEnreplacedy = restTemplate.exchange("http://127.0.0.1:" + port + "/bytedance/v1/miniprogram/check_app_name?appid=" + testAppInfoProperties.getAppid() + "&app_name=" + appName, HttpMethod.GET, null, typeRef);
AppCheckAppNameResponse response = responseEnreplacedy.getBody().getData();
replacedertThat(response.getErrno()).isEqualTo(0);
}
19
View Source File : ByteDanceV1InfoControllerTest.java
License : MIT License
Project Creator : yydzxz
License : MIT License
Project Creator : yydzxz
@DisplayName("小程序名称检测-名字太短")
@Test
void checkAppName3() {
String appName = "aaa";
ParameterizedTypeReference<ByteDanceOpenDemoResponse<AppCheckAppNameResponse>> typeRef = new ParameterizedTypeReference<ByteDanceOpenDemoResponse<AppCheckAppNameResponse>>() {
};
ResponseEnreplacedy<ByteDanceOpenDemoResponse<AppCheckAppNameResponse>> responseEnreplacedy = restTemplate.exchange("http://127.0.0.1:" + port + "/bytedance/v1/miniprogram/check_app_name?appid=" + testAppInfoProperties.getAppid() + "&app_name=" + appName, HttpMethod.GET, null, typeRef);
AppCheckAppNameResponse response = responseEnreplacedy.getBody().getData();
replacedertThat(response.getErrno()).isEqualTo(21001);
}
19
View Source File : ReactiveCloudFoundrySecurityService.java
License : Apache License 2.0
Project Creator : yuanmabiji
License : Apache License 2.0
Project Creator : yuanmabiji
/**
* Reactive Cloud Foundry security service to handle REST calls to the cloud controller
* and UAA.
*
* @author Madhura Bhave
*/
clreplaced ReactiveCloudFoundrySecurityService {
private static final ParameterizedTypeReference<Map<String, Object>> STRING_OBJECT_MAP = new ParameterizedTypeReference<Map<String, Object>>() {
};
private final WebClient webClient;
private final String cloudControllerUrl;
private Mono<String> uaaUrl;
ReactiveCloudFoundrySecurityService(WebClient.Builder webClientBuilder, String cloudControllerUrl, boolean skipSslValidation) {
replacedert.notNull(webClientBuilder, "Webclient must not be null");
replacedert.notNull(cloudControllerUrl, "CloudControllerUrl must not be null");
if (skipSslValidation) {
webClientBuilder.clientConnector(buildTrustAllSslConnector());
}
this.webClient = webClientBuilder.build();
this.cloudControllerUrl = cloudControllerUrl;
}
protected ReactorClientHttpConnector buildTrustAllSslConnector() {
HttpClient client = HttpClient.create().secure((sslContextSpec) -> sslContextSpec.sslContext(createSslContext()));
return new ReactorClientHttpConnector(client);
}
private SslContextBuilder createSslContext() {
return SslContextBuilder.forClient().sslProvider(SslProvider.JDK).trustManager(InsecureTrustManagerFactory.INSTANCE);
}
/**
* Return a Mono of the access level that should be granted to the given token.
* @param token the token
* @param applicationId the cloud foundry application ID
* @return a Mono of the access level that should be granted
* @throws CloudFoundryAuthorizationException if the token is not authorized
*/
public Mono<AccessLevel> getAccessLevel(String token, String applicationId) throws CloudFoundryAuthorizationException {
String uri = getPermissionsUri(applicationId);
return this.webClient.get().uri(uri).header("Authorization", "bearer " + token).retrieve().bodyToMono(Map.clreplaced).map(this::getAccessLevel).onErrorMap(this::mapError);
}
private Throwable mapError(Throwable throwable) {
if (throwable instanceof WebClientResponseException) {
HttpStatus statusCode = ((WebClientResponseException) throwable).getStatusCode();
if (statusCode.equals(HttpStatus.FORBIDDEN)) {
return new CloudFoundryAuthorizationException(Reason.ACCESS_DENIED, "Access denied");
}
if (statusCode.is4xxClientError()) {
return new CloudFoundryAuthorizationException(Reason.INVALID_TOKEN, "Invalid token", throwable);
}
}
return new CloudFoundryAuthorizationException(Reason.SERVICE_UNAVAILABLE, "Cloud controller not reachable");
}
private AccessLevel getAccessLevel(Map<?, ?> body) {
if (Boolean.TRUE.equals(body.get("read_sensitive_data"))) {
return AccessLevel.FULL;
}
return AccessLevel.RESTRICTED;
}
private String getPermissionsUri(String applicationId) {
return this.cloudControllerUrl + "/v2/apps/" + applicationId + "/permissions";
}
/**
* Return a Mono of all token keys known by the UAA.
* @return a Mono of token keys
*/
public Mono<Map<String, String>> fetchTokenKeys() {
return getUaaUrl().flatMap(this::fetchTokenKeys);
}
private Mono<? extends Map<String, String>> fetchTokenKeys(String url) {
RequestHeadersSpec<?> uri = this.webClient.get().uri(url + "/token_keys");
return uri.retrieve().bodyToMono(STRING_OBJECT_MAP).map(this::extractTokenKeys).onErrorMap(((ex) -> new CloudFoundryAuthorizationException(Reason.SERVICE_UNAVAILABLE, ex.getMessage())));
}
private Map<String, String> extractTokenKeys(Map<String, Object> response) {
Map<String, String> tokenKeys = new HashMap<>();
for (Object key : (List<?>) response.get("keys")) {
Map<?, ?> tokenKey = (Map<?, ?>) key;
tokenKeys.put((String) tokenKey.get("kid"), (String) tokenKey.get("value"));
}
return tokenKeys;
}
/**
* Return a Mono of URL of the UAA.
* @return the UAA url Mono
*/
public Mono<String> getUaaUrl() {
this.uaaUrl = this.webClient.get().uri(this.cloudControllerUrl + "/info").retrieve().bodyToMono(Map.clreplaced).map((response) -> (String) response.get("token_endpoint")).cache().onErrorMap((ex) -> new CloudFoundryAuthorizationException(Reason.SERVICE_UNAVAILABLE, "Unable to fetch token keys from UAA."));
return this.uaaUrl;
}
}
19
View Source File : PushServerClient.java
License : Apache License 2.0
Project Creator : wultra
License : Apache License 2.0
Project Creator : wultra
/**
* Get a list of users in paged format from specific campaign
*
* @param campaignId Identifier of campaign.
* @param page Page number.
* @param size Size of elements per page.
* @return Page of users specified with params.
* @throws PushServerClientException In case of network, response / JSON processing, or other IO error.
*/
public PagedResponse<ListOfUsersFromCampaignResponse> getListOfUsersFromCampaign(Long campaignId, int page, int size) throws PushServerClientException {
try {
String campaignIdSanitized = URLEncoder.encode(String.valueOf(campaignId), "UTF-8");
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.put("page", Collections.singletonList(Integer.valueOf(page).toString()));
params.put("size", Collections.singletonList(Integer.valueOf(size).toString()));
ParameterizedTypeReference<PagedResponse<ListOfUsersFromCampaignResponse>> typeReference = new ParameterizedTypeReference<PagedResponse<ListOfUsersFromCampaignResponse>>() {
};
logger.info("Calling push server to get users from the campaign, campaign ID: {} - start", campaignId);
final PagedResponse<ListOfUsersFromCampaignResponse> result = getImpl("/push/campaign/" + campaignIdSanitized + "/user/list", params, typeReference);
logger.info("Calling push server to get users from the campaign, campaign ID: {} - finish", campaignId);
return result;
} catch (UnsupportedEncodingException e) {
throw new PushServerClientException(new Error("PUSH_SERVER_CLIENT_ERROR", e.getMessage()));
}
}
19
View Source File : RequestMappingMessageConversionIntegrationTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
/**
* {@code @RequestMapping} integration tests focusing on serialization and
* deserialization of the request and response body.
*
* @author Rossen Stoyanchev
* @author Sebastien Deleuze
*/
public clreplaced RequestMappingMessageConversionIntegrationTests extends AbstractRequestMappingIntegrationTests {
private static final ParameterizedTypeReference<List<Person>> PERSON_LIST = new ParameterizedTypeReference<List<Person>>() {
};
private static final MediaType JSON = MediaType.APPLICATION_JSON;
@Override
protected ApplicationContext initApplicationContext() {
AnnotationConfigApplicationContext wac = new AnnotationConfigApplicationContext();
wac.register(WebConfig.clreplaced);
wac.refresh();
return wac;
}
@Test
public void byteBufferResponseBodyWithPublisher() throws Exception {
Person expected = new Person("Robert");
replacedertEquals(expected, performGet("/raw-response/publisher", JSON, Person.clreplaced).getBody());
}
@Test
public void byteBufferResponseBodyWithFlux() throws Exception {
String expected = "Hello!";
replacedertEquals(expected, performGet("/raw-response/flux", new HttpHeaders(), String.clreplaced).getBody());
}
@Test
public void byteBufferResponseBodyWithMono() throws Exception {
String expected = "Hello!";
ResponseEnreplacedy<String> responseEnreplacedy = performGet("/raw-response/mono", new HttpHeaders(), String.clreplaced);
replacedertEquals(6, responseEnreplacedy.getHeaders().getContentLength());
replacedertEquals(expected, responseEnreplacedy.getBody());
}
@Test
public void byteBufferResponseBodyWithObservable() throws Exception {
String expected = "Hello!";
replacedertEquals(expected, performGet("/raw-response/observable", new HttpHeaders(), String.clreplaced).getBody());
}
@Test
public void byteBufferResponseBodyWithRxJava2Observable() throws Exception {
String expected = "Hello!";
replacedertEquals(expected, performGet("/raw-response/rxjava2-observable", new HttpHeaders(), String.clreplaced).getBody());
}
@Test
public void byteBufferResponseBodyWithFlowable() throws Exception {
String expected = "Hello!";
replacedertEquals(expected, performGet("/raw-response/flowable", new HttpHeaders(), String.clreplaced).getBody());
}
@Test
public void personResponseBody() throws Exception {
Person expected = new Person("Robert");
ResponseEnreplacedy<Person> responseEnreplacedy = performGet("/person-response/person", JSON, Person.clreplaced);
replacedertEquals(17, responseEnreplacedy.getHeaders().getContentLength());
replacedertEquals(expected, responseEnreplacedy.getBody());
}
@Test
public void personResponseBodyWithCompletableFuture() throws Exception {
Person expected = new Person("Robert");
ResponseEnreplacedy<Person> responseEnreplacedy = performGet("/person-response/completable-future", JSON, Person.clreplaced);
replacedertEquals(17, responseEnreplacedy.getHeaders().getContentLength());
replacedertEquals(expected, responseEnreplacedy.getBody());
}
@Test
public void personResponseBodyWithMono() throws Exception {
Person expected = new Person("Robert");
ResponseEnreplacedy<Person> responseEnreplacedy = performGet("/person-response/mono", JSON, Person.clreplaced);
replacedertEquals(17, responseEnreplacedy.getHeaders().getContentLength());
replacedertEquals(expected, responseEnreplacedy.getBody());
}
// SPR-17506
@Test
public void personResponseBodyWithEmptyMono() throws Exception {
ResponseEnreplacedy<Person> responseEnreplacedy = performGet("/person-response/mono-empty", JSON, Person.clreplaced);
replacedertEquals(0, responseEnreplacedy.getHeaders().getContentLength());
replacedertNull(responseEnreplacedy.getBody());
// As we're on the same connection, the 2nd request proves server response handling
// did complete after the 1st request..
responseEnreplacedy = performGet("/person-response/mono-empty", JSON, Person.clreplaced);
replacedertEquals(0, responseEnreplacedy.getHeaders().getContentLength());
replacedertNull(responseEnreplacedy.getBody());
}
@Test
public void personResponseBodyWithMonoDeclaredAsObject() throws Exception {
Person expected = new Person("Robert");
ResponseEnreplacedy<Person> enreplacedy = performGet("/person-response/mono-declared-as-object", JSON, Person.clreplaced);
replacedertEquals(17, enreplacedy.getHeaders().getContentLength());
replacedertEquals(expected, enreplacedy.getBody());
}
@Test
public void personResponseBodyWithSingle() throws Exception {
Person expected = new Person("Robert");
ResponseEnreplacedy<Person> enreplacedy = performGet("/person-response/single", JSON, Person.clreplaced);
replacedertEquals(17, enreplacedy.getHeaders().getContentLength());
replacedertEquals(expected, enreplacedy.getBody());
}
@Test
public void personResponseBodyWithMonoResponseEnreplacedy() throws Exception {
Person expected = new Person("Robert");
ResponseEnreplacedy<Person> enreplacedy = performGet("/person-response/mono-response-enreplacedy", JSON, Person.clreplaced);
replacedertEquals(17, enreplacedy.getHeaders().getContentLength());
replacedertEquals(expected, enreplacedy.getBody());
}
// SPR-16172
@Test
public void personResponseBodyWithMonoResponseEnreplacedyXml() throws Exception {
String url = "/person-response/mono-response-enreplacedy-xml";
ResponseEnreplacedy<String> enreplacedy = performGet(url, new HttpHeaders(), String.clreplaced);
String actual = enreplacedy.getBody();
replacedertEquals(91, enreplacedy.getHeaders().getContentLength());
replacedertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + "<person><name>Robert</name></person>", actual);
}
@Test
public void personResponseBodyWithList() throws Exception {
List<?> expected = asList(new Person("Robert"), new Person("Marie"));
ResponseEnreplacedy<List<Person>> enreplacedy = performGet("/person-response/list", JSON, PERSON_LIST);
replacedertEquals(36, enreplacedy.getHeaders().getContentLength());
replacedertEquals(expected, enreplacedy.getBody());
}
@Test
public void personResponseBodyWithPublisher() throws Exception {
List<?> expected = asList(new Person("Robert"), new Person("Marie"));
ResponseEnreplacedy<List<Person>> enreplacedy = performGet("/person-response/publisher", JSON, PERSON_LIST);
replacedertEquals(-1, enreplacedy.getHeaders().getContentLength());
replacedertEquals(expected, enreplacedy.getBody());
}
@Test
public void personResponseBodyWithFlux() throws Exception {
List<?> expected = asList(new Person("Robert"), new Person("Marie"));
replacedertEquals(expected, performGet("/person-response/flux", JSON, PERSON_LIST).getBody());
}
@Test
public void personResponseBodyWithObservable() throws Exception {
List<?> expected = asList(new Person("Robert"), new Person("Marie"));
replacedertEquals(expected, performGet("/person-response/observable", JSON, PERSON_LIST).getBody());
}
@Test
public void resource() throws Exception {
ResponseEnreplacedy<byte[]> response = performGet("/resource", new HttpHeaders(), byte[].clreplaced);
replacedertEquals(HttpStatus.OK, response.getStatusCode());
replacedertTrue(response.hasBody());
replacedertEquals(951, response.getHeaders().getContentLength());
replacedertEquals(951, response.getBody().length);
replacedertEquals(new MediaType("image", "png"), response.getHeaders().getContentType());
}
@Test
public void personTransform() throws Exception {
replacedertEquals(new Person("ROBERT"), performPost("/person-transform/person", JSON, new Person("Robert"), JSON, Person.clreplaced).getBody());
}
@Test
public void personTransformWithCompletableFuture() throws Exception {
replacedertEquals(new Person("ROBERT"), performPost("/person-transform/completable-future", JSON, new Person("Robert"), JSON, Person.clreplaced).getBody());
}
@Test
public void personTransformWithMono() throws Exception {
replacedertEquals(new Person("ROBERT"), performPost("/person-transform/mono", JSON, new Person("Robert"), JSON, Person.clreplaced).getBody());
}
// SPR-16759
@Test
public void personTransformWithMonoAndXml() throws Exception {
replacedertEquals(new Person("ROBERT"), performPost("/person-transform/mono", MediaType.APPLICATION_XML, new Person("Robert"), MediaType.APPLICATION_XML, Person.clreplaced).getBody());
}
@Test
public void personTransformWithSingle() throws Exception {
replacedertEquals(new Person("ROBERT"), performPost("/person-transform/single", JSON, new Person("Robert"), JSON, Person.clreplaced).getBody());
}
@Test
public void personTransformWithRxJava2Single() throws Exception {
replacedertEquals(new Person("ROBERT"), performPost("/person-transform/rxjava2-single", JSON, new Person("Robert"), JSON, Person.clreplaced).getBody());
}
@Test
public void personTransformWithRxJava2Maybe() throws Exception {
replacedertEquals(new Person("ROBERT"), performPost("/person-transform/rxjava2-maybe", JSON, new Person("Robert"), JSON, Person.clreplaced).getBody());
}
@Test
public void personTransformWithPublisher() throws Exception {
List<?> req = asList(new Person("Robert"), new Person("Marie"));
List<?> res = asList(new Person("ROBERT"), new Person("MARIE"));
replacedertEquals(res, performPost("/person-transform/publisher", JSON, req, JSON, PERSON_LIST).getBody());
}
@Test
public void personTransformWithFlux() throws Exception {
List<?> req = asList(new Person("Robert"), new Person("Marie"));
List<?> res = asList(new Person("ROBERT"), new Person("MARIE"));
replacedertEquals(res, performPost("/person-transform/flux", JSON, req, JSON, PERSON_LIST).getBody());
}
@Test
public void personTransformWithObservable() throws Exception {
List<?> req = asList(new Person("Robert"), new Person("Marie"));
List<?> res = asList(new Person("ROBERT"), new Person("MARIE"));
replacedertEquals(res, performPost("/person-transform/observable", JSON, req, JSON, PERSON_LIST).getBody());
}
@Test
public void personTransformWithRxJava2Observable() throws Exception {
List<?> req = asList(new Person("Robert"), new Person("Marie"));
List<?> res = asList(new Person("ROBERT"), new Person("MARIE"));
replacedertEquals(res, performPost("/person-transform/rxjava2-observable", JSON, req, JSON, PERSON_LIST).getBody());
}
@Test
public void personTransformWithFlowable() throws Exception {
List<?> req = asList(new Person("Robert"), new Person("Marie"));
List<?> res = asList(new Person("ROBERT"), new Person("MARIE"));
replacedertEquals(res, performPost("/person-transform/flowable", JSON, req, JSON, PERSON_LIST).getBody());
}
@Test
public void personCreateWithPublisherJson() throws Exception {
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/publisher", JSON, asList(new Person("Robert"), new Person("Marie")), null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, enreplacedy.getStatusCode());
replacedertEquals(2, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Test
public void personCreateWithPublisherXml() throws Exception {
People people = new People(new Person("Robert"), new Person("Marie"));
ResponseEnreplacedy<Void> response = performPost("/person-create/publisher", APPLICATION_XML, people, null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, response.getStatusCode());
replacedertEquals(2, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Test
public void personCreateWithMono() throws Exception {
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/mono", JSON, new Person("Robert"), null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, enreplacedy.getStatusCode());
replacedertEquals(1, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Test
public void personCreateWithSingle() throws Exception {
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/single", JSON, new Person("Robert"), null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, enreplacedy.getStatusCode());
replacedertEquals(1, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Test
public void personCreateWithRxJava2Single() throws Exception {
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/rxjava2-single", JSON, new Person("Robert"), null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, enreplacedy.getStatusCode());
replacedertEquals(1, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Test
public void personCreateWithFluxJson() throws Exception {
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/flux", JSON, asList(new Person("Robert"), new Person("Marie")), null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, enreplacedy.getStatusCode());
replacedertEquals(2, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Test
public void personCreateWithFluxXml() throws Exception {
People people = new People(new Person("Robert"), new Person("Marie"));
ResponseEnreplacedy<Void> response = performPost("/person-create/flux", APPLICATION_XML, people, null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, response.getStatusCode());
replacedertEquals(2, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Test
public void personCreateWithObservableJson() throws Exception {
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/observable", JSON, asList(new Person("Robert"), new Person("Marie")), null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, enreplacedy.getStatusCode());
replacedertEquals(2, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Test
public void personCreateWithRxJava2ObservableJson() throws Exception {
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/rxjava2-observable", JSON, asList(new Person("Robert"), new Person("Marie")), null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, enreplacedy.getStatusCode());
replacedertEquals(2, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Test
public void personCreateWithObservableXml() throws Exception {
People people = new People(new Person("Robert"), new Person("Marie"));
ResponseEnreplacedy<Void> response = performPost("/person-create/observable", APPLICATION_XML, people, null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, response.getStatusCode());
replacedertEquals(2, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Test
public void personCreateWithRxJava2ObservableXml() throws Exception {
People people = new People(new Person("Robert"), new Person("Marie"));
String url = "/person-create/rxjava2-observable";
ResponseEnreplacedy<Void> response = performPost(url, APPLICATION_XML, people, null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, response.getStatusCode());
replacedertEquals(2, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Test
public void personCreateWithFlowableJson() throws Exception {
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/flowable", JSON, asList(new Person("Robert"), new Person("Marie")), null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, enreplacedy.getStatusCode());
replacedertEquals(2, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Test
public void personCreateWithFlowableXml() throws Exception {
People people = new People(new Person("Robert"), new Person("Marie"));
ResponseEnreplacedy<Void> response = performPost("/person-create/flowable", APPLICATION_XML, people, null, Void.clreplaced);
replacedertEquals(HttpStatus.OK, response.getStatusCode());
replacedertEquals(2, getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size());
}
@Configuration
@EnableWebFlux
@ComponentScan(resourcePattern = "**/RequestMappingMessageConversionIntegrationTests$*.clreplaced")
@SuppressWarnings({ "unused", "WeakerAccess" })
static clreplaced WebConfig {
}
@RestController
@RequestMapping("/raw-response")
@SuppressWarnings("unused")
private static clreplaced RawResponseBodyController {
@GetMapping("/publisher")
public Publisher<ByteBuffer> getPublisher() {
DataBufferFactory dataBufferFactory = new DefaultDataBufferFactory();
Jackson2JsonEncoder encoder = new Jackson2JsonEncoder();
return encoder.encode(Mono.just(new Person("Robert")), dataBufferFactory, ResolvableType.forClreplaced(Person.clreplaced), JSON, Collections.emptyMap()).map(DataBuffer::asByteBuffer);
}
@GetMapping("/flux")
public Flux<ByteBuffer> getFlux() {
return Flux.just(ByteBuffer.wrap("Hello!".getBytes()));
}
@GetMapping("/mono")
public Mono<ByteBuffer> getMonoString() {
return Mono.just(ByteBuffer.wrap("Hello!".getBytes()));
}
@GetMapping("/observable")
public Observable<ByteBuffer> getObservable() {
return Observable.just(ByteBuffer.wrap("Hello!".getBytes()));
}
@GetMapping("/rxjava2-observable")
public io.reactivex.Observable<ByteBuffer> getRxJava2Observable() {
return io.reactivex.Observable.just(ByteBuffer.wrap("Hello!".getBytes()));
}
@GetMapping("/flowable")
public Flowable<ByteBuffer> getFlowable() {
return Flowable.just(ByteBuffer.wrap("Hello!".getBytes()));
}
}
@RestController
@RequestMapping("/person-response")
@SuppressWarnings("unused")
private static clreplaced PersonResponseBodyController {
@GetMapping("/person")
public Person getPerson() {
return new Person("Robert");
}
@GetMapping("/completable-future")
public CompletableFuture<Person> getCompletableFuture() {
return CompletableFuture.completedFuture(new Person("Robert"));
}
@GetMapping("/mono")
public Mono<Person> getMono() {
return Mono.just(new Person("Robert"));
}
@GetMapping("/mono-empty")
public Mono<Person> getMonoEmpty() {
return Mono.empty();
}
@GetMapping("/mono-declared-as-object")
public Object getMonoDeclaredAsObject() {
return Mono.just(new Person("Robert"));
}
@GetMapping("/single")
public Single<Person> getSingle() {
return Single.just(new Person("Robert"));
}
@GetMapping("/mono-response-enreplacedy")
public ResponseEnreplacedy<Mono<Person>> getMonoResponseEnreplacedy() {
Mono<Person> body = Mono.just(new Person("Robert"));
return ResponseEnreplacedy.ok(body);
}
@GetMapping("/mono-response-enreplacedy-xml")
public ResponseEnreplacedy<Mono<Person>> getMonoResponseEnreplacedyXml() {
Mono<Person> body = Mono.just(new Person("Robert"));
return ResponseEnreplacedy.ok().contentType(MediaType.APPLICATION_XML).body(body);
}
@GetMapping("/list")
public List<Person> getList() {
return asList(new Person("Robert"), new Person("Marie"));
}
@GetMapping("/publisher")
public Publisher<Person> getPublisher() {
return Flux.just(new Person("Robert"), new Person("Marie"));
}
@GetMapping("/flux")
public Flux<Person> getFlux() {
return Flux.just(new Person("Robert"), new Person("Marie"));
}
@GetMapping("/observable")
public Observable<Person> getObservable() {
return Observable.just(new Person("Robert"), new Person("Marie"));
}
}
@RestController
@SuppressWarnings("unused")
private static clreplaced ResourceController {
@GetMapping("/resource")
public Resource resource() {
return new ClreplacedPathResource("spring.png", ZeroCopyIntegrationTests.clreplaced);
}
}
@RestController
@RequestMapping("/person-transform")
@SuppressWarnings("unused")
private static clreplaced PersonTransformationController {
@PostMapping("/person")
public Person transformPerson(@RequestBody Person person) {
return new Person(person.getName().toUpperCase());
}
@PostMapping("/completable-future")
public CompletableFuture<Person> transformCompletableFuture(@RequestBody CompletableFuture<Person> personFuture) {
return personFuture.thenApply(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/mono")
public Mono<Person> transformMono(@RequestBody Mono<Person> personFuture) {
return personFuture.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/single")
public Single<Person> transformSingle(@RequestBody Single<Person> personFuture) {
return personFuture.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/rxjava2-single")
public io.reactivex.Single<Person> transformRxJava2Single(@RequestBody io.reactivex.Single<Person> personFuture) {
return personFuture.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/rxjava2-maybe")
public Maybe<Person> transformRxJava2Maybe(@RequestBody Maybe<Person> personFuture) {
return personFuture.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/publisher")
public Publisher<Person> transformPublisher(@RequestBody Publisher<Person> persons) {
return Flux.from(persons).map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/flux")
public Flux<Person> transformFlux(@RequestBody Flux<Person> persons) {
return persons.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/observable")
public Observable<Person> transformObservable(@RequestBody Observable<Person> persons) {
return persons.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/rxjava2-observable")
public io.reactivex.Observable<Person> transformObservable(@RequestBody io.reactivex.Observable<Person> persons) {
return persons.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/flowable")
public Flowable<Person> transformFlowable(@RequestBody Flowable<Person> persons) {
return persons.map(person -> new Person(person.getName().toUpperCase()));
}
}
@RestController
@RequestMapping("/person-create")
@SuppressWarnings("unused")
private static clreplaced PersonCreateController {
final List<Person> persons = new ArrayList<>();
@PostMapping("/publisher")
public Publisher<Void> createWithPublisher(@RequestBody Publisher<Person> publisher) {
return Flux.from(publisher).doOnNext(persons::add).then();
}
@PostMapping("/mono")
public Mono<Void> createWithMono(@RequestBody Mono<Person> mono) {
return mono.doOnNext(persons::add).then();
}
@PostMapping("/single")
public Completable createWithSingle(@RequestBody Single<Person> single) {
return single.map(persons::add).toCompletable();
}
@PostMapping("/rxjava2-single")
@SuppressWarnings("deprecation")
public io.reactivex.Completable createWithRxJava2Single(@RequestBody io.reactivex.Single<Person> single) {
return single.map(persons::add).toCompletable();
}
@PostMapping("/flux")
public Mono<Void> createWithFlux(@RequestBody Flux<Person> flux) {
return flux.doOnNext(persons::add).then();
}
@PostMapping("/observable")
public Observable<Void> createWithObservable(@RequestBody Observable<Person> observable) {
return observable.toList().doOnNext(persons::addAll).flatMap(doreplacedent -> Observable.empty());
}
@PostMapping("/rxjava2-observable")
@SuppressWarnings("deprecation")
public io.reactivex.Completable createWithRxJava2Observable(@RequestBody io.reactivex.Observable<Person> observable) {
return observable.toList().doOnSuccess(persons::addAll).toCompletable();
}
@PostMapping("/flowable")
@SuppressWarnings("deprecation")
public io.reactivex.Completable createWithFlowable(@RequestBody Flowable<Person> flowable) {
return flowable.toList().doOnSuccess(persons::addAll).toCompletable();
}
}
@XmlRootElement
@SuppressWarnings("unused")
private static clreplaced Person {
private String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClreplaced() != o.getClreplaced()) {
return false;
}
Person person = (Person) o;
return !(this.name != null ? !this.name.equals(person.name) : person.name != null);
}
@Override
public int hashCode() {
return this.name != null ? this.name.hashCode() : 0;
}
@Override
public String toString() {
return "Person{" + "name='" + name + '\'' + '}';
}
}
@XmlRootElement
@SuppressWarnings({ "WeakerAccess", "unused" })
private static clreplaced People {
private List<Person> persons = new ArrayList<>();
public People() {
}
public People(Person... persons) {
this.persons.addAll(Arrays.asList(persons));
}
@XmlElement
public List<Person> getPerson() {
return this.persons;
}
}
}
19
View Source File : ServerRequestWrapperTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
@Test
public void bodyToFluxParameterizedTypeReference() {
Flux<String> result = Flux.just("foo");
ParameterizedTypeReference<String> reference = new ParameterizedTypeReference<String>() {
};
given(mockRequest.bodyToFlux(reference)).willReturn(result);
replacedertSame(result, wrapper.bodyToFlux(reference));
}
19
View Source File : ServerRequestWrapperTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
@Test
public void bodyToMonoParameterizedTypeReference() {
Mono<String> result = Mono.just("foo");
ParameterizedTypeReference<String> reference = new ParameterizedTypeReference<String>() {
};
given(mockRequest.bodyToMono(reference)).willReturn(result);
replacedertSame(result, wrapper.bodyToMono(reference));
}
19
View Source File : DefaultEntityResponseBuilderTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
@Test
public void fromPublisher() {
Flux<String> body = Flux.just("foo", "bar");
ParameterizedTypeReference<String> typeReference = new ParameterizedTypeReference<String>() {
};
EnreplacedyResponse<Flux<String>> response = EnreplacedyResponse.fromPublisher(body, typeReference).build().block();
replacedertSame(body, response.enreplacedy());
}
19
View Source File : ClientResponseWrapperTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
@Test
public void bodyToMonoParameterizedTypeReference() {
Mono<String> result = Mono.just("foo");
ParameterizedTypeReference<String> reference = new ParameterizedTypeReference<String>() {
};
given(mockResponse.bodyToMono(reference)).willReturn(result);
replacedertSame(result, wrapper.bodyToMono(reference));
}
19
View Source File : ClientResponseWrapperTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
@Test
public void toEnreplacedyListParameterizedTypeReference() {
Mono<ResponseEnreplacedy<List<String>>> result = Mono.just(new ResponseEnreplacedy<>(singletonList("foo"), HttpStatus.OK));
ParameterizedTypeReference<String> reference = new ParameterizedTypeReference<String>() {
};
given(mockResponse.toEnreplacedyList(reference)).willReturn(result);
replacedertSame(result, wrapper.toEnreplacedyList(reference));
}
19
View Source File : ClientResponseWrapperTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
@Test
public void bodyToFluxParameterizedTypeReference() {
Flux<String> result = Flux.just("foo");
ParameterizedTypeReference<String> reference = new ParameterizedTypeReference<String>() {
};
given(mockResponse.bodyToFlux(reference)).willReturn(result);
replacedertSame(result, wrapper.bodyToFlux(reference));
}
19
View Source File : RestTemplateIntegrationTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
// SPR-13154
@Test
public void jsonPostForObjectWithJacksonTypeInfoList() throws URISyntaxException {
List<ParentClreplaced> list = new ArrayList<>();
list.add(new Foo("foo"));
list.add(new Bar("bar"));
ParameterizedTypeReference<?> typeReference = new ParameterizedTypeReference<List<ParentClreplaced>>() {
};
RequestEnreplacedy<List<ParentClreplaced>> enreplacedy = RequestEnreplacedy.post(new URI(baseUrl + "/jsonpost")).contentType(new MediaType("application", "json", StandardCharsets.UTF_8)).body(list, typeReference.getType());
String content = template.exchange(enreplacedy, String.clreplaced).getBody();
replacedertTrue(content.contains("\"type\":\"foo\""));
replacedertTrue(content.contains("\"type\":\"bar\""));
}
19
View Source File : RequestEntityTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
// SPR-13154
@Test
public void types() throws URISyntaxException {
URI url = new URI("https://example.com");
List<String> body = Arrays.asList("foo", "bar");
ParameterizedTypeReference<?> typeReference = new ParameterizedTypeReference<List<String>>() {
};
RequestEnreplacedy<?> enreplacedy = RequestEnreplacedy.post(url).body(body, typeReference.getType());
replacedertEquals(typeReference.getType(), enreplacedy.getType());
}
19
View Source File : MappingJackson2HttpMessageConverterTests.java
License : MIT License
Project Creator : Vip-Augus
License : MIT License
Project Creator : Vip-Augus
// SPR-13318
@Test
public void writeSubTypeList() throws Exception {
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
List<MyBean> beans = new ArrayList<>();
MyBean foo = new MyBean();
foo.setString("Foo");
foo.setNumber(42);
beans.add(foo);
MyBean bar = new MyBean();
bar.setString("Bar");
bar.setNumber(123);
beans.add(bar);
ParameterizedTypeReference<List<MyInterface>> typeReference = new ParameterizedTypeReference<List<MyInterface>>() {
};
this.converter.writeInternal(beans, typeReference.getType(), outputMessage);
String result = outputMessage.getBodyreplacedtring(StandardCharsets.UTF_8);
replacedertTrue(result.contains("\"string\":\"Foo\""));
replacedertTrue(result.contains("\"number\":42"));
replacedertTrue(result.contains("\"string\":\"Bar\""));
replacedertTrue(result.contains("\"number\":123"));
}
19
View Source File : LeaveRequestControllerSpringBootWebEnvRandomPortTest.java
License : MIT License
Project Creator : timtebeek
License : MIT License
Project Creator : timtebeek
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@AutoConfigureWireMock(port = 8090)
clreplaced LeaveRequestControllerSpringBootWebEnvRandomPortTest {
private static final String TOKEN_ALICE_VALID_UNTIL_AUGUST_2022 = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJRSS1mdW1sLTRyTnBrdVZxWVg0elpuZlRUZW1hSkxoZ183Z0dULTZiSFlVIn0.eyJqdGkiOiI0OWFkZmVlOS02MGEwLTQxMreplacedOGI1OS1hZWEwOTliYjlmYTIiLCJleHAiOjE2NTk4OTg3NjYsIm5iZiI6MCwiaWF0IjoxNTczNDk4NzY2LCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwOTAvYXV0aC9yZWFsbXMvc3ByaW5nLWNsb3VkLWdhdGV3YXktcmVhbG0iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYWQ4MjRkZmMtNmFmZi00NWEzLWJlOWQtOTU0ZDUwZmJkYjdhIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoic3ByaW5nLWNsb3VkLWdhdGV3YXktY2xpZW50Iiwibm9uY2UiOiJwMGtsejZlc0VYNnYtWU8tXzVGd2JITk95N2NudklibEsweTBiWi1iUVpNIiwiYXV0aF90aW1lIjoxNTczNDk4NzY2LCJzZXNzaW9uX3N0YXRlIjoiZjIyMjY4ZTAtOTJlZS00MDU4LTgzMzctMzkyNDg4YjJlNTQwIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcGhvbmUgbWljcm9wcm9maWxlLWp3dCBvZmZsaW5lX2FjY2VzcyBwcm9maWxlIGVtYWlsIGFkZHJlc3MiLCJ1cG4iOiJhbGljZSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhZGRyZXNzIjp7fSwibmFtZSI6IkFsaWNlIiwiZ3JvdXBzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXSwicHJlZmVycmVkX3VzZXJuYW1lIjoiYWxpY2UiLCJnaXZlbl9uYW1lIjoiQWxpY2UifQ.hHK8E-01eFb4UZtBjclVronp-6jfVbhxh9U0m0DEdYQE8YGWFCjMxUcfeI0Rx9zueeC_HJsFT4wcegs8Qh6Z2n7IGWbf0Vtg0fzVH9vFXkwbFBdbCZJz4MZ1Zc3cpC2UrSnuPDc8EIn1FQrKIEF8nqEcNzcL3ujxligvOern2A4xUS1GLqrLKmbPPbKocESZb75EMbmEPFDoctgI1n4vniOz9j242WxbcMjM7INeIsPCKWqvgaeYHOKlgW2CfHfsLPr_XQw5VvCMWJ1GHficCwwjyL-PeemHmBS6eO6EnHpl5Ftm7siATcZuJXQHTosb6b38Gkw2s6-yGQJcbQc01g";
private static final String TOKEN_HR_VALID_UNTIL_AUGUST_2022 = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJRSS1mdW1sLTRyTnBrdVZxWVg0elpuZlRUZW1hSkxoZ183Z0dULTZiSFlVIn0.eyJqdGkiOiJhZjJkYjUzZi0zMzA3LTRiYmItOWIyMy01NjI4NzYxOTNiOTAiLCJleHAiOjE2NTk4OTgyMjIsIm5iZiI6MCwiaWF0IjoxNTczNDk4MjIyLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwOTAvYXV0aC9yZWFsbXMvc3ByaW5nLWNsb3VkLWdhdGV3YXktcmVhbG0iLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiYjc2ODI2NjQtZWJhZC00NzAzLTgyNTctNDIyY2QwNTJhNjU4IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoic3ByaW5nLWNsb3VkLWdhdGV3YXktY2xpZW50Iiwibm9uY2UiOiJDMFktek5kTUt6UWwweGdESDc1OWZJOU13ek5iY3ROT3I2M0ZOMUFSX1NzIiwiYXV0aF90aW1lIjoxNTczNDk4MjIyLCJzZXNzaW9uX3N0YXRlIjoiODA5NGMxZGUtMTNmYS00MzQzLWEyN2MtODRhZTE3NDJlMDA5IiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsIkhSIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6Im9wZW5pZCBwaG9uZSBtaWNyb3Byb2ZpbGUtand0IG9mZmxpbmVfYWNjZXNzIHByb2ZpbGUgZW1haWwgYWRkcmVzcyIsInVwbiI6ImJvYiIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhZGRyZXNzIjp7fSwibmFtZSI6IkJvYiIsImdyb3VwcyI6WyJvZmZsaW5lX2FjY2VzcyIsIkhSIiwidW1hX2F1dGhvcml6YXRpb24iXSwicHJlZmVycmVkX3VzZXJuYW1lIjoiYm9iIiwiZ2l2ZW5fbmFtZSI6IkJvYiJ9.DxqIEqanm_7pM08amW6VQ7EBXta54c7kV2ozewYZ_K6_nqOZHAQMWiH-DTnCLlNPnoKZeoLsf_7QcRAXijGoCiRYy0suhGvLAAMCtQgDMfmgMYCZV-sOkHNX8AZDzDj3tXQs1zVQOc3zw9M3Byt_e-0KzxcIi4EUcD8p5fi7NTsynV7Lm6KQVMQTVE-eWBN9wtNo6Lacv4WeFcOTYTRTVRHJU72rrXe6hSDpRd90__T2PsncnqvKPhtaSe4klgaENflxQRTEVKu_oDah4MabwFW1yqQRX68OvUdmtOI2sd05p1juYwuIbSThGtcgrqA1VomgHu0fbp6bgvd1Q_neuw";
@Autowired
private LeaveRequestRepository repository;
@Autowired
private TestRestTemplate resttemplate;
@BeforeEach
void beforeEach() {
repository.clear();
}
@Test
void testRequest() throws Exception {
LocalDate from = of(2019, 11, 30);
LocalDate to = of(2019, 12, 3);
HttpEnreplacedy<?> httpEnreplacedy = httpEnreplacedyWithBearerTokenHeader(TOKEN_ALICE_VALID_UNTIL_AUGUST_2022);
ResponseEnreplacedy<LeaveRequestDTO> response = resttemplate.exchange("/request/{employee}?from={from}&to={to}", HttpMethod.POST, httpEnreplacedy, LeaveRequestDTO.clreplaced, "alice", from, to);
replacedertThat(response.getStatusCode()).isEqualByComparingTo(ACCEPTED);
replacedertThat(response.getHeaders().getContentType()).isEqualByComparingTo(APPLICATION_JSON);
replacedertThat(response.getBody().getEmployee()).isEqualTo("alice");
replacedertThat(response.getBody().getFromDate()).isEqualTo(from);
replacedertThat(response.getBody().getToDate()).isEqualTo(to);
replacedertThat(response.getBody().getStatus()).isEqualByComparingTo(PENDING);
}
@Test
void testApprove() throws Exception {
LeaveRequest saved = repository.save(new LeaveRequest("Alice", of(2019, 11, 30), of(2019, 12, 3), PENDING));
HttpEnreplacedy<?> httpEnreplacedy = httpEnreplacedyWithBearerTokenHeader(TOKEN_HR_VALID_UNTIL_AUGUST_2022);
ResponseEnreplacedy<LeaveRequestDTO> response = resttemplate.exchange("/approve/{id}", HttpMethod.POST, httpEnreplacedy, LeaveRequestDTO.clreplaced, saved.getId());
replacedertThat(response.getStatusCode()).isEqualByComparingTo(ACCEPTED);
replacedertThat(response.getHeaders().getContentType()).isEqualByComparingTo(APPLICATION_JSON);
replacedertThat(response.getBody().getEmployee()).isEqualTo("Alice");
replacedertThat(response.getBody().getStatus()).isEqualByComparingTo(APPROVED);
}
@Test
void testApproveMissing() throws Exception {
HttpEnreplacedy<?> httpEnreplacedy = httpEnreplacedyWithBearerTokenHeader(TOKEN_HR_VALID_UNTIL_AUGUST_2022);
ResponseEnreplacedy<LeaveRequestDTO> response = resttemplate.exchange("/approve/{id}", HttpMethod.POST, httpEnreplacedy, LeaveRequestDTO.clreplaced, UUID.randomUUID());
replacedertThat(response.getStatusCode()).isEqualByComparingTo(NO_CONTENT);
}
@Test
void testDeny() throws Exception {
LeaveRequest saved = repository.save(new LeaveRequest("Alice", of(2019, 11, 30), of(2019, 12, 3), PENDING));
HttpEnreplacedy<?> httpEnreplacedy = httpEnreplacedyWithBearerTokenHeader(TOKEN_HR_VALID_UNTIL_AUGUST_2022);
ResponseEnreplacedy<LeaveRequestDTO> response = resttemplate.exchange("/deny/{id}", HttpMethod.POST, httpEnreplacedy, LeaveRequestDTO.clreplaced, saved.getId());
replacedertThat(response.getStatusCode()).isEqualByComparingTo(ACCEPTED);
replacedertThat(response.getHeaders().getContentType()).isEqualByComparingTo(APPLICATION_JSON);
replacedertThat(response.getBody().getEmployee()).isEqualTo("Alice");
replacedertThat(response.getBody().getStatus()).isEqualByComparingTo(DENIED);
}
@Test
void testViewId() throws Exception {
LeaveRequest saved = repository.save(new LeaveRequest("alice", of(2019, 11, 30), of(2019, 12, 3), PENDING));
HttpEnreplacedy<?> httpEnreplacedy = httpEnreplacedyWithBearerTokenHeader(TOKEN_ALICE_VALID_UNTIL_AUGUST_2022);
ResponseEnreplacedy<LeaveRequestDTO> response = resttemplate.exchange("/view/id/{id}", GET, httpEnreplacedy, LeaveRequestDTO.clreplaced, saved.getId());
replacedertThat(response.getStatusCode()).isEqualByComparingTo(OK);
replacedertThat(response.getHeaders().getContentType()).isEqualByComparingTo(APPLICATION_JSON);
replacedertThat(response.getBody().getEmployee()).isEqualTo("alice");
replacedertThat(response.getBody().getStatus()).isEqualByComparingTo(PENDING);
}
@Test
void testViewIdMissing() throws Exception {
HttpEnreplacedy<?> httpEnreplacedy = httpEnreplacedyWithBearerTokenHeader(TOKEN_HR_VALID_UNTIL_AUGUST_2022);
ResponseEnreplacedy<LeaveRequestDTO> response = resttemplate.exchange("/view/id/{id}", GET, httpEnreplacedy, LeaveRequestDTO.clreplaced, UUID.randomUUID());
replacedertThat(response.getStatusCode()).isEqualByComparingTo(NO_CONTENT);
}
private static final ParameterizedTypeReference<List<LeaveRequestDTO>> typeref = new ParameterizedTypeReference<>() {
};
@Test
void testViewEmployee() throws Exception {
repository.save(new LeaveRequest("alice", of(2019, 11, 30), of(2019, 12, 3), PENDING));
HttpEnreplacedy<?> httpEnreplacedy = httpEnreplacedyWithBearerTokenHeader(TOKEN_ALICE_VALID_UNTIL_AUGUST_2022);
ResponseEnreplacedy<List<LeaveRequestDTO>> response = resttemplate.exchange("/view/employee/{employee}", GET, httpEnreplacedy, typeref, "alice");
replacedertThat(response.getStatusCode()).isEqualByComparingTo(OK);
replacedertThat(response.getHeaders().getContentType()).isEqualByComparingTo(APPLICATION_JSON);
replacedertThat(response.getBody().get(0).getEmployee()).isEqualTo("alice");
replacedertThat(response.getBody().get(0).getStatus()).isEqualByComparingTo(PENDING);
}
@Test
void testViewAll() throws Exception {
repository.save(new LeaveRequest("Alice", of(2019, 11, 30), of(2019, 12, 3), PENDING));
HttpEnreplacedy<?> httpEnreplacedy = httpEnreplacedyWithBearerTokenHeader(TOKEN_HR_VALID_UNTIL_AUGUST_2022);
ResponseEnreplacedy<List<LeaveRequestDTO>> response = resttemplate.exchange("/view/all", GET, httpEnreplacedy, typeref);
replacedertThat(response.getStatusCode()).isEqualByComparingTo(OK);
replacedertThat(response.getHeaders().getContentType()).isEqualByComparingTo(APPLICATION_JSON);
replacedertThat(response.getBody().get(0).getEmployee()).isEqualTo("Alice");
replacedertThat(response.getBody().get(0).getStatus()).isEqualByComparingTo(PENDING);
}
private static HttpEnreplacedy<?> httpEnreplacedyWithBearerTokenHeader(String token) {
HttpHeaders headers = new HttpHeaders();
headers.setBearerAuth(token);
HttpEnreplacedy<?> httpEnreplacedy = new HttpEnreplacedy<>(headers);
return httpEnreplacedy;
}
}
19
View Source File : WorkbasketControllerIntTest.java
License : Apache License 2.0
Project Creator : Taskana
License : Apache License 2.0
Project Creator : Taskana
/**
* Test WorkbasketController.
*/
@TaskanaSpringBootTest
clreplaced WorkbasketControllerIntTest {
private static final ParameterizedTypeReference<WorkbasketRepresentationModel> WORKBASKET_REPRESENTATION_MODEL_TYPE = new ParameterizedTypeReference<WorkbasketRepresentationModel>() {
};
private static final ParameterizedTypeReference<WorkbasketSummaryPagedRepresentationModel> WORKBASKET_SUMMARY_PAGE_MODEL_TYPE = new ParameterizedTypeReference<WorkbasketSummaryPagedRepresentationModel>() {
};
private static final ParameterizedTypeReference<WorkbasketAccessItemCollectionRepresentationModel> WORKBASKET_ACCESS_ITEM_COLLECTION_REPRESENTATION_TYPE = new ParameterizedTypeReference<WorkbasketAccessItemCollectionRepresentationModel>() {
};
private static final ParameterizedTypeReference<DistributionTargetsCollectionRepresentationModel> DISTRIBUTION_TARGETS_COLLECTION_REPRESENTATION_MODEL_TYPE = new ParameterizedTypeReference<DistributionTargetsCollectionRepresentationModel>() {
};
private final RestHelper restHelper;
@Autowired
WorkbasketControllerIntTest(RestHelper restHelper) {
this.restHelper = restHelper;
}
@Test
void testGetWorkbasket() {
final String url = restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ID, "WBI:100000000000000000000000000000000006");
ResponseEnreplacedy<WorkbasketRepresentationModel> response = TEMPLATE.exchange(url, HttpMethod.GET, restHelper.defaultRequest(), WORKBASKET_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isEqualTo(Optional.of(Link.of(url)));
replacedertThat(response.getHeaders().getContentType()).isEqualTo(MediaTypes.HAL_JSON);
}
@Test
void testGetAllWorkbaskets() {
ResponseEnreplacedy<WorkbasketSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET), HttpMethod.GET, restHelper.defaultRequest(), WORKBASKET_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
}
@Test
void testGetAllWorkbasketsBusinessAdminHasOpenPermission() {
ResponseEnreplacedy<WorkbasketSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET) + "?required-permission=OPEN", HttpMethod.GET, restHelper.defaultRequest(), WORKBASKET_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(6);
}
@Test
void testGetAllWorkbasketsKeepingFilters() {
String parameters = "?type=PERSONAL&sort-by=KEY&order=DESCENDING";
ResponseEnreplacedy<WorkbasketSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET) + parameters, HttpMethod.GET, restHelper.defaultRequest(), WORKBASKET_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.SELF).getHref().endsWith(parameters)).isTrue();
}
@Test
void testUpdateWorkbasketWithConcurrentModificationShouldThrowException() {
String workbasketId = "WBI:100000000000000000000000000000000001";
ResponseEnreplacedy<WorkbasketRepresentationModel> initialWorkbasketResourceRequestResponse = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ID, workbasketId), HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersTeamlead_1()), WORKBASKET_REPRESENTATION_MODEL_TYPE);
WorkbasketRepresentationModel workbasketRepresentationModel = initialWorkbasketResourceRequestResponse.getBody();
replacedertThat(workbasketRepresentationModel).isNotNull();
workbasketRepresentationModel.setKey("GPK_KSC");
workbasketRepresentationModel.setDomain("DOMAIN_A");
workbasketRepresentationModel.setType(WorkbasketType.PERSONAL);
workbasketRepresentationModel.setName("was auch immer");
workbasketRepresentationModel.setOwner("Joerg");
workbasketRepresentationModel.setModified(Instant.now());
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ID, workbasketId), HttpMethod.PUT, new HttpEnreplacedy<>(workbasketRepresentationModel, restHelper.getHeadersTeamlead_1()), WORKBASKET_REPRESENTATION_MODEL_TYPE);
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.CONFLICT);
}
@Test
void testUpdateWorkbasketOfNonExistingWorkbasketShouldThrowException() {
String workbasketId = "WBI:100004857400039500000999999999999999";
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ID, workbasketId), HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersBusinessAdmin()), WORKBASKET_REPRESENTATION_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.NOT_FOUND);
}
@Test
void testGetSecondPageSortedByKey() {
String parameters = "?sort-by=KEY&order=DESCENDING&page-size=5&page=2";
ResponseEnreplacedy<WorkbasketSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET) + parameters, HttpMethod.GET, restHelper.defaultRequest(), WORKBASKET_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(5);
replacedertThat(response.getBody().getContent().iterator().next().getKey()).isEqualTo("USER-1-1");
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.FIRST)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.LAST)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.NEXT)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.PREV)).isNotNull();
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.SELF).getHref().endsWith(parameters)).isTrue();
}
@Test
void testMarkWorkbasketForDeletionAsBusinessAdminWithoutExplicitReadPermission() {
String workbasketID = "WBI:100000000000000000000000000000000005";
ResponseEnreplacedy<?> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ID, workbasketID), HttpMethod.DELETE, new HttpEnreplacedy<>(restHelper.getHeadersBusinessAdmin()), Void.clreplaced);
replacedertThat(response.getStatusCode()).isEqualTo(HttpStatus.ACCEPTED);
}
@Test
void statusCode423ShouldBeReturnedIfWorkbasketContainsNonCompletedTasks() {
String workbasketWithNonCompletedTasks = "WBI:100000000000000000000000000000000004";
ThrowingCallable call = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ID, workbasketWithNonCompletedTasks), HttpMethod.DELETE, new HttpEnreplacedy<>(restHelper.getHeadersBusinessAdmin()), Void.clreplaced);
replacedertThatThrownBy(call).isInstanceOf(HttpClientErrorException.clreplaced).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.LOCKED);
}
@Test
void testRemoveWorkbasketAsDistributionTarget() {
ResponseEnreplacedy<?> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ID_DISTRIBUTION, "WBI:100000000000000000000000000000000007"), HttpMethod.DELETE, restHelper.defaultRequest(), Void.clreplaced);
replacedertThat(response.getStatusCode()).isEqualTo(HttpStatus.NO_CONTENT);
ResponseEnreplacedy<DistributionTargetsCollectionRepresentationModel> response2 = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ID_DISTRIBUTION, "WBI:100000000000000000000000000000000002"), HttpMethod.GET, restHelper.defaultRequest(), DISTRIBUTION_TARGETS_COLLECTION_REPRESENTATION_MODEL_TYPE);
replacedertThat(response2.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(response2.getBody()).isNotNull();
replacedertThat(response2.getBody().getContent()).extracting(WorkbasketSummaryRepresentationModel::getWorkbasketId).doesNotContain("WBI:100000000000000000000000000000000007");
}
@Test
void testGetWorkbasketAccessItems() {
ResponseEnreplacedy<WorkbasketAccessItemCollectionRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ID_ACCESS_ITEMS, "WBI:100000000000000000000000000000000005"), HttpMethod.GET, restHelper.defaultRequest(), WORKBASKET_ACCESS_ITEM_COLLECTION_REPRESENTATION_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getHeaders().getContentType()).isEqualTo(MediaTypes.HAL_JSON);
replacedertThat(response.getBody().getContent()).hreplacedize(3);
}
@Test
void testGetWorkbasketDistributionTargets() {
ResponseEnreplacedy<DistributionTargetsCollectionRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ID_DISTRIBUTION, "WBI:100000000000000000000000000000000001"), HttpMethod.GET, restHelper.defaultRequest(), DISTRIBUTION_TARGETS_COLLECTION_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getHeaders().getContentType()).isEqualTo(MediaTypes.HAL_JSON);
replacedertThat(response.getBody().getContent()).hreplacedize(4);
}
@Test
void should_ThrowException_When_ProvidingInvalidFilterParams() {
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET) + "?type=PERSONAL" + "&illegalParam=illegal" + "&anotherIllegalParam=stillIllegal" + "&sort-by=KEY&order=DESCENDING&page-size=5&page=2", HttpMethod.GET, restHelper.defaultRequest(), WORKBASKET_SUMMARY_PAGE_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("Unkown request parameters found: [anotherIllegalParam, illegalParam]").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
}
19
View Source File : WorkbasketAccessItemControllerIntTest.java
License : Apache License 2.0
Project Creator : Taskana
License : Apache License 2.0
Project Creator : Taskana
/**
* Test WorkbasketAccessItemController.
*/
@TestMethodOrder(MethodOrderer.MethodName.clreplaced)
@TaskanaSpringBootTest
clreplaced WorkbasketAccessItemControllerIntTest {
private static final ParameterizedTypeReference<WorkbasketAccessItemPagedRepresentationModel> WORKBASKET_ACCESS_ITEM_PAGED_REPRESENTATION_MODEL_TYPE = new ParameterizedTypeReference<WorkbasketAccessItemPagedRepresentationModel>() {
};
private final RestHelper restHelper;
@Autowired
WorkbasketAccessItemControllerIntTest(RestHelper restHelper) {
this.restHelper = restHelper;
}
@Test
void testGetAllWorkbasketAccessItems() {
ResponseEnreplacedy<WorkbasketAccessItemPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ACCESS_ITEMS), HttpMethod.GET, restHelper.defaultRequest(), WORKBASKET_ACCESS_ITEM_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
}
@Test
void testGetWorkbasketAccessItemsKeepingFilters() {
String parameters = "?sort-by=WORKBASKET_KEY&order=ASCENDING&page-size=9&access-id=user-1-1&page=1";
ResponseEnreplacedy<WorkbasketAccessItemPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ACCESS_ITEMS) + parameters, HttpMethod.GET, restHelper.defaultRequest(), WORKBASKET_ACCESS_ITEM_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.SELF).getHref().endsWith(parameters)).isTrue();
}
@Test
void testGetSecondPageSortedByWorkbasketKey() {
String parameters = "?sort-by=WORKBASKET_KEY&order=ASCENDING&page=2&page-size=9&access-id=user-1-1";
ResponseEnreplacedy<WorkbasketAccessItemPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ACCESS_ITEMS) + parameters, HttpMethod.GET, restHelper.defaultRequest(), WORKBASKET_ACCESS_ITEM_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(1);
replacedertThat(response.getBody().getContent().iterator().next().getAccessId()).isEqualTo("user-1-1");
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.SELF).getHref().endsWith(parameters)).isTrue();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.FIRST)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.LAST)).isNotNull();
replacedertThat(response.getBody().getPageMetadata().getSize()).isEqualTo(9);
replacedertThat(response.getBody().getPageMetadata().getTotalElements()).isEqualTo(1);
replacedertThat(response.getBody().getPageMetadata().getTotalPages()).isEqualTo(1);
replacedertThat(response.getBody().getPageMetadata().getNumber()).isEqualTo(1);
}
@Test
void should_DeleteAllAccessItemForUser_ifValidAccessIdOfUserIsSupplied() {
String parameters = "?access-id=teamlead-2";
ResponseEnreplacedy<Void> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ACCESS_ITEMS) + parameters, HttpMethod.DELETE, restHelper.defaultRequest(), ParameterizedTypeReference.forType(Void.clreplaced));
replacedertThat(response.getBody()).isNull();
replacedertThat(response.getStatusCode()).isEqualTo(HttpStatus.NO_CONTENT);
}
@Test
void should_ThrowException_When_ProvidingInvalidFilterParams() {
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ACCESS_ITEMS) + "?access-id=teamlead-2" + "&illegalParam=illegal" + "&anotherIllegalParam=stillIllegal" + "&sort-by=WORKBASKET_KEY&order=DESCENDING&page-size=5&page=2", HttpMethod.GET, restHelper.defaultRequest(), WORKBASKET_ACCESS_ITEM_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("Unkown request parameters found: [anotherIllegalParam, illegalParam]").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
@TestFactory
Stream<DynamicTest> should_ReturnBadRequest_When_AccessIdIsInvalid() {
List<String> accessIds = List.of("cn=organisationseinheit ksc,cn=organisation,ou=test,o=taskana", "cn=monitor-users,cn=groups,ou=test,o=taskana", "user-1");
ThrowingConsumer<String> test = accessId -> {
String parameters = "?access-id=" + accessId;
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_WORKBASKET_ACCESS_ITEMS) + parameters, HttpMethod.DELETE, restHelper.defaultRequest(), ParameterizedTypeReference.forType(Void.clreplaced));
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
};
return DynamicTest.stream(accessIds.iterator(), s -> String.format("for user '%s'", s), test);
}
}
19
View Source File : TaskControllerIntTest.java
License : Apache License 2.0
Project Creator : Taskana
License : Apache License 2.0
Project Creator : Taskana
/**
* Test Task Controller.
*/
@TaskanaSpringBootTest
clreplaced TaskControllerIntTest {
private static final ParameterizedTypeReference<TaskSummaryPagedRepresentationModel> TASK_SUMMARY_PAGE_MODEL_TYPE = new ParameterizedTypeReference<TaskSummaryPagedRepresentationModel>() {
};
private static final ParameterizedTypeReference<TaskSummaryCollectionRepresentationModel> TASK_SUMMARY_COLLECTION_MODEL_TYPE = new ParameterizedTypeReference<TaskSummaryCollectionRepresentationModel>() {
};
private static final ParameterizedTypeReference<TaskRepresentationModel> TASK_MODEL_TYPE = ParameterizedTypeReference.forType(TaskRepresentationModel.clreplaced);
private static RestTemplate template;
private final RestHelper restHelper;
private final DataSource dataSource;
private final String schemaName;
@Autowired
TaskControllerIntTest(RestHelper restHelper, DataSource dataSource, @Value("${taskana.schemaName:TASKANA}") String schemaName) {
this.restHelper = restHelper;
this.dataSource = dataSource;
this.schemaName = schemaName;
}
@BeforeAll
static void init() {
template = RestHelper.TEMPLATE;
}
void resetDb() {
SampleDataGenerator sampleDataGenerator = new SampleDataGenerator(dataSource, schemaName);
sampleDataGenerator.generateSampleData();
}
@Test
void testGetAllTasks() {
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS), HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(58);
}
@Test
void testGetAllTasksByWorkbasketId() {
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?workbasket-id=WBI:100000000000000000000000000000000001", HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(22);
}
@Test
void testGetAllTasksByWorkbasketIdWithinMultiplePlannedTimeIntervals() {
Instant firstInstant = Instant.now().minus(7, ChronoUnit.DAYS);
Instant secondInstant = Instant.now().minus(10, ChronoUnit.DAYS);
Instant thirdInstant = Instant.now().minus(10, ChronoUnit.DAYS);
Instant fourthInstant = Instant.now().minus(11, ChronoUnit.DAYS);
String parameters = String.format("?workbasket-id=WBI:100000000000000000000000000000000001" + "&planned=%s&planned=" + "&planned=%s&planned=%s" + "&planned=&planned=%s" + "&sort-by=PLANNED", firstInstant, secondInstant, thirdInstant, fourthInstant);
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + parameters, HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(6);
}
@Test
void testGetAllTasksByWorkbasketIdWithinSinglePlannedTimeInterval() {
Instant plannedFromInstant = Instant.now().minus(6, ChronoUnit.DAYS);
Instant plannedToInstant = Instant.now().minus(3, ChronoUnit.DAYS);
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?workbasket-id=WBI:100000000000000000000000000000000001" + "&planned-from=" + plannedFromInstant + "&planned-until=" + plannedToInstant + "&sort-by=PLANNED", HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(3);
}
@Test
void testGetAllTasksByWorkbasketIdWithinSingleIndefinitePlannedTimeInterval() {
Instant plannedFromInstant = Instant.now().minus(6, ChronoUnit.DAYS);
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?workbasket-id=WBI:100000000000000000000000000000000001" + "&planned-from=" + plannedFromInstant + "&sort-by=PLANNED", HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(4);
}
@Test
void testGetAllTasksByWorkbasketIdWithInvalidPlannedParamsCombination() {
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?workbasket-id=WBI:100000000000000000000000000000000001" + "&planned=2020-01-22T09:44:47.453Z,," + "2020-01-19T07:44:47.453Z,2020-01-19T19:44:47.453Z," + ",2020-01-18T09:44:47.453Z" + "&planned-from=2020-01-19T07:44:47.453Z" + "&sort-by=planned", HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("400");
}
@Test
void testGetAllTasksByWorkbasketIdWithinMultipleDueTimeIntervals() {
Instant firstInstant = Instant.now().minus(7, ChronoUnit.DAYS);
Instant secondInstant = Instant.now().minus(10, ChronoUnit.DAYS);
Instant thirdInstant = Instant.now().minus(10, ChronoUnit.DAYS);
Instant fourthInstant = Instant.now().minus(11, ChronoUnit.DAYS);
String parameters = String.format("?workbasket-id=WBI:100000000000000000000000000000000001" + "&due=%s&due=" + "&due=%s&due=%s" + "&due=&due=%s" + "&sort-by=DUE", firstInstant, secondInstant, thirdInstant, fourthInstant);
System.out.println(parameters);
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + parameters, HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(22);
}
@Test
void should_ReturnAllTasksByWildcardSearch_For_ProvidedSearchValue() {
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?wildcard-search-value=99" + "&wildcard-search-fields=NAME" + "&wildcard-search-fields=CUSTOM_3" + "&wildcard-search-fields=CUSTOM_4", HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersAdmin()), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(4);
}
@Test
void should_ThrowException_When_ProvidingInvalidFormatForCustomAttributes() {
TaskRepresentationModel taskRepresentationModel = getTaskResourceSample();
List<CustomAttribute> customAttributesWithNullKey = new ArrayList<>();
customAttributesWithNullKey.add(CustomAttribute.of(null, "value"));
taskRepresentationModel.setCustomAttributes(customAttributesWithNullKey);
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS), HttpMethod.POST, new HttpEnreplacedy<>(taskRepresentationModel, restHelper.getHeadersTeamlead_1()), TASK_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("Format of custom attributes is not valid").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
List<CustomAttribute> customAttributesWithEmptyKey = new ArrayList<>();
customAttributesWithEmptyKey.add(CustomAttribute.of("", "value"));
taskRepresentationModel.setCustomAttributes(customAttributesWithEmptyKey);
httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS), HttpMethod.POST, new HttpEnreplacedy<>(taskRepresentationModel, restHelper.getHeadersTeamlead_1()), TASK_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("Format of custom attributes is not valid").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
List<CustomAttribute> customAttributesWithNullValue = new ArrayList<>();
customAttributesWithNullValue.add(CustomAttribute.of("key", null));
taskRepresentationModel.setCustomAttributes(customAttributesWithNullValue);
httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS), HttpMethod.POST, new HttpEnreplacedy<>(taskRepresentationModel, restHelper.getHeadersTeamlead_1()), TASK_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("Format of custom attributes is not valid").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
@Test
void should_DeleteAllTasks_For_ProvidedParams() {
ResponseEnreplacedy<TaskSummaryCollectionRepresentationModel> response = template.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?task-id=TKI:000000000000000000000000000000000036" + "&task-id=TKI:000000000000000000000000000000000037" + "&task-id=TKI:000000000000000000000000000000000038" + "&custom14=abc", HttpMethod.DELETE, new HttpEnreplacedy<String>(restHelper.getHeadersAdmin()), TASK_SUMMARY_COLLECTION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(3);
}
@Test
void should_ThrowException_When_ProvidingInvalidWildcardSearchParameters() {
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?wildcard-search-value=%rt%", HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("400").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
ThrowingCallable httpCall2 = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?wildcard-search-fields=NAME,CUSTOM_3,CUSTOM_4", HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThatThrownBy(httpCall2).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("400").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
@Test
void testGetAllTasksByWorkbasketIdWithinSingleDueTimeInterval() {
Instant dueFromInstant = Instant.now().minus(8, ChronoUnit.DAYS);
Instant dueToInstant = Instant.now().minus(3, ChronoUnit.DAYS);
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?workbasket-id=WBI:100000000000000000000000000000000001" + "&due-from=" + dueFromInstant + "&due-until=" + dueToInstant + "&sort-by=DUE", HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(1);
}
@Test
void testGetAllTasksByWorkbasketIdWithinSingleIndefiniteDueTimeInterval() {
Instant dueToInstant = Instant.now().minus(1, ChronoUnit.DAYS);
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?workbasket-id=WBI:100000000000000000000000000000000001" + "&due-until=" + dueToInstant + "&sort-by=DUE", HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(6);
}
@Test
void testGetAllTasksByWorkbasketIdWithInvalidDueParamsCombination() {
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?workbasket-id=WBI:100000000000000000000000000000000001" + "&due=2020-01-22T09:44:47.453Z,," + "2020-01-19T07:44:47.453Z,2020-01-19T19:44:47.453Z," + ",2020-01-18T09:44:47.453Z" + "&due-from=2020-01-19T07:44:47.453Z" + "&sort-by=planned", HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("400");
}
@Test
void testGetAllTasksByWorkbasketKeyAndDomain() {
HttpEnreplacedy<String> request = new HttpEnreplacedy<>(restHelper.getHeadersUser_1_2());
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?workbasket-key=USER-1-2&domain=DOMAIN_A", HttpMethod.GET, request, TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(20);
}
@Test
void testGetAllTasksByExternalId() {
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?external-id=ETI:000000000000000000000000000000000003" + "&external-id=ETI:000000000000000000000000000000000004", HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(2);
}
@Test
void testExceptionIfKeyIsSetButDomainIsMissing() {
HttpEnreplacedy<String> request = new HttpEnreplacedy<>(restHelper.getHeadersUser_1_2());
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?workbasket-key=USER-1-2", HttpMethod.GET, request, TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("400");
}
@Test
void testGetAllTasksWithAdminRole() {
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS), HttpMethod.GET, new HttpEnreplacedy<>(restHelper.getHeadersAdmin()), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(88);
}
@Test
void testGetAllTasksKeepingFilters() {
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?por.type=VNR&por.value=22334455&sort-by=POR_VALUE&order=DESCENDING", HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.SELF).getHref()).endsWith("/api/v1/tasks?por.type=VNR&por.value=22334455" + "&sort-by=POR_VALUE&order=DESCENDING");
}
@Test
void testGetLastPageSortedByPorValue() {
HttpEnreplacedy<String> request = new HttpEnreplacedy<>(restHelper.getHeadersAdmin());
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?state=READY&state=CLAIMED&sort-by=POR_VALUE" + "&order=DESCENDING&page-size=5&page=16", HttpMethod.GET, request, TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getContent()).hreplacedize(3);
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.LAST).getHref()).contains("page=16");
replacedertThat(response.getBody().getContent().iterator().next().getTaskId()).isEqualTo("TKI:000000000000000000000000000000000064");
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.SELF).getHref()).endsWith("/api/v1/tasks?state=READY&state=CLAIMED" + "&sort-by=POR_VALUE&order=DESCENDING&page-size=5&page=16");
replacedertThat(response.getBody().getLink(IreplacedinkRelations.FIRST)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.LAST)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.PREV)).isNotNull();
}
@Test
void testGetLastPageSortedByDueWithHiddenTasksRemovedFromResult() {
resetDb();
// required because
// ClreplacedificationControllerIntTest.testGetQueryByPorSecondPageSortedByType changes
// tasks and this test depends on the tasks as they are in sampledata
HttpEnreplacedy<String> request = new HttpEnreplacedy<>(restHelper.getHeadersTeamlead_1());
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?sort-by=DUE&order=DESCENDING", HttpMethod.GET, request, TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getContent()).hreplacedize(58);
response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?sort-by=DUE&order=DESCENDING&page-size=5&page=5", HttpMethod.GET, request, TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat((response.getBody()).getContent()).hreplacedize(5);
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.LAST).getHref()).contains("page=12");
replacedertThat(response.getBody().getContent().iterator().next().getTaskId()).isEqualTo("TKI:000000000000000000000000000000000073");
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.SELF).getHref()).endsWith("/api/v1/tasks?sort-by=DUE&order=DESCENDING&page-size=5&page=5");
replacedertThat(response.getBody().getLink(IreplacedinkRelations.FIRST)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.LAST)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.PREV)).isNotNull();
}
@Test
void testGetQueryByPorSecondPageSortedByType() {
// required because
resetDb();
// ClreplacedificationControllerIntTest.testGetQueryByPorSecondPageSortedByType changes
// tasks and this test depends on the tasks as they are in sampledata
HttpEnreplacedy<String> request = new HttpEnreplacedy<>(restHelper.getHeadersTeamlead_1());
ResponseEnreplacedy<TaskSummaryPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?por.company=00&por.system=PASystem&por.instance=00&" + "por.type=VNR&por.value=22334455&sort-by=POR_TYPE&" + "order=ASCENDING&page-size=5&page=2", HttpMethod.GET, request, TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getContent()).extracting(TaskSummaryRepresentationModel::getTaskId).containsExactlyInAnyOrder("TKI:000000000000000000000000000000000013");
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.SELF).getHref()).endsWith("/api/v1/tasks?por.company=00&por.system=PASystem&por.instance=00&" + "por.type=VNR&por.value=22334455&sort-by=POR_TYPE&order=ASCENDING&" + "page-size=5&page=2");
replacedertThat(response.getBody().getLink(IreplacedinkRelations.FIRST)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.LAST)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.PREV)).isNotNull();
}
@Test
void should_NotGetEmptyAttachmentList_When_GettingTaskWithAttachment() {
ResponseEnreplacedy<TaskRepresentationModel> response = template.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS_ID, "TKI:000000000000000000000000000000000002"), HttpMethod.GET, new HttpEnreplacedy<>(restHelper.getHeadersAdmin()), TASK_MODEL_TYPE);
TaskRepresentationModel repModel = response.getBody();
replacedertThat(repModel).isNotNull();
replacedertThat(repModel.getAttachments()).isNotEmpty();
replacedertThat(repModel.getAttachments()).isNotNull();
}
@Test
void should_ChangeValueOfModified_When_UpdatingTask() {
ResponseEnreplacedy<TaskRepresentationModel> responseGet = template.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS_ID, "TKI:100000000000000000000000000000000000"), HttpMethod.GET, new HttpEnreplacedy<>(restHelper.getHeadersTeamlead_1()), TASK_MODEL_TYPE);
final TaskRepresentationModel originalTask = responseGet.getBody();
ResponseEnreplacedy<TaskRepresentationModel> responseUpdate = template.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS_ID, "TKI:100000000000000000000000000000000000"), HttpMethod.PUT, new HttpEnreplacedy<>(originalTask, restHelper.getHeadersTeamlead_1()), TASK_MODEL_TYPE);
TaskRepresentationModel updatedTask = responseUpdate.getBody();
replacedertThat(originalTask).isNotNull();
replacedertThat(updatedTask).isNotNull();
replacedertThat(originalTask.getModified()).isBefore(updatedTask.getModified());
}
@Test
void testCreateAndDeleteTask() {
TaskRepresentationModel taskRepresentationModel = getTaskResourceSample();
ResponseEnreplacedy<TaskRepresentationModel> responseCreate = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS), HttpMethod.POST, new HttpEnreplacedy<>(taskRepresentationModel, restHelper.getHeadersTeamlead_1()), TASK_MODEL_TYPE);
replacedertThat(responseCreate.getStatusCode()).isEqualTo(HttpStatus.CREATED);
replacedertThat(responseCreate.getBody()).isNotNull();
String taskIdOfCreatedTask = responseCreate.getBody().getTaskId();
replacedertThat(taskIdOfCreatedTask).isNotNull();
replacedertThat(taskIdOfCreatedTask).startsWith("TKI:");
ResponseEnreplacedy<TaskRepresentationModel> responseDeleted = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS_ID, taskIdOfCreatedTask), HttpMethod.DELETE, new HttpEnreplacedy<>(restHelper.getHeadersAdmin()), ParameterizedTypeReference.forType(Void.clreplaced));
replacedertThat(responseDeleted.getStatusCode()).isEqualTo(HttpStatus.NO_CONTENT);
}
/**
* TSK-926: If Planned and Due Date is provided to create a task and not matching to service level
* throw an exception One is calculated by other other date +- service level.
*/
@Test
void testCreateWithPlannedAndDueDate() {
TaskRepresentationModel taskRepresentationModel = getTaskResourceSample();
Instant now = Instant.now();
taskRepresentationModel.setPlanned(now);
taskRepresentationModel.setDue(now);
ThrowingCallable httpCall = () -> template.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS), HttpMethod.POST, new HttpEnreplacedy<>(taskRepresentationModel, restHelper.getHeadersUser_1_1()), TASK_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced);
}
@Test
void testCreateTaskWithInvalidParameter() throws Exception {
final String taskToCreateJson = "{\"clreplacedificationKey\":\"L11010\"," + "\"workbasketSummaryResource\":" + "{\"workbasketId\":\"WBI:100000000000000000000000000000000004\"}," + "\"primaryObjRef\":{\"company\":\"MyCompany1\",\"system\":\"MySystem1\"," + "\"systemInstance\":\"MyInstance1\",\"type\":\"MyType1\",\"value\":\"00000001\"}}";
URL url = new URL(restHelper.toUrl(RestEndpoints.URL_TASKS));
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setRequestProperty("Authorization", RestHelper.AUTHORIZATION_TEAMLEAD_1);
con.setRequestProperty("Content-Type", "application/json");
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(con.getOutputStream(), UTF_8));
out.write(taskToCreateJson);
out.flush();
out.close();
replacedertThat(con.getResponseCode()).isEqualTo(400);
con.disconnect();
final String taskToCreateJson2 = "{\"clreplacedificationSummaryResource\":" + "{\"clreplacedificationId\":\"CLI:100000000000000000000000000000000004\"}," + "\"workbasketSummaryResource\":{\"workbasketId\":\"\"}," + "\"primaryObjRef\":{\"company\":\"MyCompany1\",\"system\":\"MySystem1\"," + "\"systemInstance\":\"MyInstance1\",\"type\":\"MyType1\",\"value\":\"00000001\"}}";
url = new URL(restHelper.toUrl(RestEndpoints.URL_TASKS));
con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setRequestProperty("Authorization", RestHelper.AUTHORIZATION_TEAMLEAD_1);
con.setRequestProperty("Content-Type", "application/json");
out = new BufferedWriter(new OutputStreamWriter(con.getOutputStream(), UTF_8));
out.write(taskToCreateJson2);
out.flush();
out.close();
replacedertThat(con.getResponseCode()).isEqualTo(400);
con.disconnect();
}
@Test
void should_CancelTask_when_CallingCancelEndpoint() {
final String claimed_task_id = "TKI:000000000000000000000000000000000026";
// retrieve task from Rest Api
ResponseEnreplacedy<TaskRepresentationModel> responseGet = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS_ID, claimed_task_id), HttpMethod.GET, new HttpEnreplacedy<>(restHelper.getHeadersUser_1_2()), TASK_MODEL_TYPE);
replacedertThat(responseGet.getBody()).isNotNull();
TaskRepresentationModel theTaskRepresentationModel = responseGet.getBody();
replacedertThat(theTaskRepresentationModel.getState()).isEqualTo(TaskState.CLAIMED);
// cancel the task
responseGet = template.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS_ID_CANCEL, claimed_task_id), HttpMethod.POST, new HttpEnreplacedy<>(restHelper.getHeadersUser_1_2()), TASK_MODEL_TYPE);
replacedertThat(responseGet.getBody()).isNotNull();
theTaskRepresentationModel = responseGet.getBody();
replacedertThat(theTaskRepresentationModel.getState()).isEqualTo(TaskState.CANCELLED);
}
@Test
void testCancelClaimTask() {
final String claimed_task_id = "TKI:000000000000000000000000000000000027";
final String user_id_of_claimed_task = "user-1-2";
// retrieve task from Rest Api
ResponseEnreplacedy<TaskRepresentationModel> getTaskResponse = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS_ID, claimed_task_id), HttpMethod.GET, new HttpEnreplacedy<>(restHelper.getHeadersUser_1_2()), TASK_MODEL_TYPE);
replacedertThat(getTaskResponse.getBody()).isNotNull();
TaskRepresentationModel claimedTaskRepresentationModel = getTaskResponse.getBody();
replacedertThat(claimedTaskRepresentationModel.getState()).isEqualTo(TaskState.CLAIMED);
replacedertThat(claimedTaskRepresentationModel.getOwner()).isEqualTo(user_id_of_claimed_task);
// cancel claim
ResponseEnreplacedy<TaskRepresentationModel> cancelClaimResponse = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS_ID_CLAIM, claimed_task_id), HttpMethod.DELETE, new HttpEnreplacedy<>(restHelper.getHeadersUser_1_2()), TASK_MODEL_TYPE);
replacedertThat(cancelClaimResponse.getBody()).isNotNull();
replacedertThat(cancelClaimResponse.getStatusCode().is2xxSuccessful()).isTrue();
TaskRepresentationModel cancelClaimedtaskRepresentationModel = cancelClaimResponse.getBody();
replacedertThat(cancelClaimedtaskRepresentationModel.getOwner()).isNull();
replacedertThat(cancelClaimedtaskRepresentationModel.getClaimed()).isNull();
replacedertThat(cancelClaimedtaskRepresentationModel.getState()).isEqualTo(TaskState.READY);
}
@Test
void testCancelClaimOfClaimedTaskByAnotherUserShouldThrowException() {
final String claimed_task_id = "TKI:000000000000000000000000000000000026";
final String user_id_of_claimed_task = "user-1-1";
// retrieve task from Rest Api
ResponseEnreplacedy<TaskRepresentationModel> responseGet = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS_ID, claimed_task_id), HttpMethod.GET, new HttpEnreplacedy<>(restHelper.getHeadersUser_1_2()), TASK_MODEL_TYPE);
replacedertThat(responseGet.getBody()).isNotNull();
TaskRepresentationModel theTaskRepresentationModel = responseGet.getBody();
replacedertThat(theTaskRepresentationModel.getState()).isEqualTo(TaskState.CLAIMED);
replacedertThat(theTaskRepresentationModel.getOwner()).isEqualTo(user_id_of_claimed_task);
// try to cancel claim
ThrowingCallable httpCall = () -> template.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS_ID_CLAIM, claimed_task_id), HttpMethod.DELETE, new HttpEnreplacedy<>(restHelper.getHeadersUser_1_2()), TASK_MODEL_TYPE);
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.CONFLICT);
}
@Test
void testUpdateTaskOwnerOfReadyTaskSucceeds() {
// setup
final String taskUrlString = restHelper.toUrl("/api/v1/tasks/TKI:000000000000000000000000000000000025");
// retrieve task from Rest Api
ResponseEnreplacedy<TaskRepresentationModel> responseGet = TEMPLATE.exchange(taskUrlString, HttpMethod.GET, new HttpEnreplacedy<>(restHelper.getHeadersUser_1_2()), TASK_MODEL_TYPE);
replacedertThat(responseGet.getBody()).isNotNull();
TaskRepresentationModel theTaskRepresentationModel = responseGet.getBody();
replacedertThat(theTaskRepresentationModel.getState()).isEqualTo(TaskState.READY);
replacedertThat(theTaskRepresentationModel.getOwner()).isNull();
// set Owner and update Task
final String anyUserName = "dummyUser";
theTaskRepresentationModel.setOwner(anyUserName);
ResponseEnreplacedy<TaskRepresentationModel> responseUpdate = TEMPLATE.exchange(taskUrlString, HttpMethod.PUT, new HttpEnreplacedy<>(theTaskRepresentationModel, restHelper.getHeadersUser_1_2()), TASK_MODEL_TYPE);
replacedertThat(responseUpdate.getBody()).isNotNull();
TaskRepresentationModel theUpdatedTaskRepresentationModel = responseUpdate.getBody();
replacedertThat(theUpdatedTaskRepresentationModel.getState()).isEqualTo(TaskState.READY);
replacedertThat(theUpdatedTaskRepresentationModel.getOwner()).isEqualTo(anyUserName);
}
@Test
void testUpdateTaskOwnerOfClaimedTaskFails() {
// setup
final String taskUrlString = restHelper.toUrl("/api/v1/tasks/TKI:000000000000000000000000000000000026");
// retrieve task from Rest Api
ResponseEnreplacedy<TaskRepresentationModel> responseGet = TEMPLATE.exchange(taskUrlString, HttpMethod.GET, new HttpEnreplacedy<>(restHelper.getHeadersUser_1_2()), TASK_MODEL_TYPE);
replacedertThat(responseGet.getBody()).isNotNull();
TaskRepresentationModel theTaskRepresentationModel = responseGet.getBody();
replacedertThat(theTaskRepresentationModel.getState()).isEqualTo(TaskState.CLAIMED);
replacedertThat(theTaskRepresentationModel.getOwner()).isEqualTo("user-1-1");
// set Owner and update Task
final String anyUserName = "dummyuser";
theTaskRepresentationModel.setOwner(anyUserName);
ThrowingCallable httpCall = () -> template.exchange(taskUrlString, HttpMethod.PUT, new HttpEnreplacedy<>(theTaskRepresentationModel, restHelper.getHeadersUser_1_2()), TASK_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("409");
}
@Test
void should_ThrowNotAuthorized_When_UserHasNoAuthorizationOnTask() {
String url = restHelper.toUrl(RestEndpoints.URL_TASKS_ID, "TKI:000000000000000000000000000000000000");
ThrowingCallable httpCall = () -> template.exchange(url, HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersUser_b_1()), ParameterizedTypeReference.forType(TaskRepresentationModel.clreplaced));
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
}
@Test
void should_ThrowException_When_ProvidingInvalidFilterParams() {
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS) + "?workbasket-id=WBI:100000000000000000000000000000000001" + "&illegalParam=illegal" + "&anotherIllegalParam=stillIllegal" + "&sort-by=NAME&order=DESCENDING&page-size=5&page=2", HttpMethod.GET, restHelper.defaultRequest(), TASK_SUMMARY_PAGE_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("Unkown request parameters found: [anotherIllegalParam, illegalParam]").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
@TestFactory
Stream<DynamicTest> should_SetTransferFlagDependentOnRequestBody_When_TransferringTask() {
Iterator<Boolean> iterator = Arrays.asList(true, false).iterator();
ThrowingConsumer<Boolean> test = setTransferFlag -> {
ResponseEnreplacedy<TaskRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS_ID_TRANSFER_WORKBASKET_ID, "TKI:000000000000000000000000000000000003", "WBI:100000000000000000000000000000000006"), HttpMethod.POST, new HttpEnreplacedy<>(setTransferFlag.toString(), restHelper.getHeadersAdmin()), TASK_MODEL_TYPE);
TaskRepresentationModel task = response.getBody();
replacedertThat(task).isNotNull();
replacedertThat(task.getWorkbasketSummary().getWorkbasketId()).isEqualTo("WBI:100000000000000000000000000000000006");
replacedertThat(task.isTransferred()).isEqualTo(setTransferFlag);
};
return DynamicTest.stream(iterator, c -> "for setTransferFlag: " + c, test);
}
@Test
void should_SetTransferFlagToTrue_When_TransferringWithoutRequestBody() {
ResponseEnreplacedy<TaskRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASKS_ID_TRANSFER_WORKBASKET_ID, "TKI:000000000000000000000000000000000003", "WBI:100000000000000000000000000000000006"), HttpMethod.POST, new HttpEnreplacedy<>(restHelper.getHeadersAdmin()), TASK_MODEL_TYPE);
TaskRepresentationModel task = response.getBody();
replacedertThat(task).isNotNull();
replacedertThat(task.getWorkbasketSummary().getWorkbasketId()).isEqualTo("WBI:100000000000000000000000000000000006");
replacedertThat(task.isTransferred()).isTrue();
}
private TaskRepresentationModel getTaskResourceSample() {
ClreplacedificationSummaryRepresentationModel clreplacedificationResource = new ClreplacedificationSummaryRepresentationModel();
clreplacedificationResource.setKey("L11010");
WorkbasketSummaryRepresentationModel workbasketSummary = new WorkbasketSummaryRepresentationModel();
workbasketSummary.setWorkbasketId("WBI:100000000000000000000000000000000004");
ObjectReferenceRepresentationModel objectReference = new ObjectReferenceRepresentationModel();
objectReference.setCompany("MyCompany1");
objectReference.setSystem("MySystem1");
objectReference.setSystemInstance("MyInstance1");
objectReference.setType("MyType1");
objectReference.setValue("00000001");
TaskRepresentationModel taskRepresentationModel = new TaskRepresentationModel();
taskRepresentationModel.setClreplacedificationSummary(clreplacedificationResource);
taskRepresentationModel.setWorkbasketSummary(workbasketSummary);
taskRepresentationModel.setPrimaryObjRef(objectReference);
return taskRepresentationModel;
}
}
19
View Source File : TaskCommentControllerIntTest.java
License : Apache License 2.0
Project Creator : Taskana
License : Apache License 2.0
Project Creator : Taskana
/**
* Test TaskCommentController.
*/
@TaskanaSpringBootTest
clreplaced TaskCommentControllerIntTest {
private static final ParameterizedTypeReference<TaskCommentCollectionRepresentationModel> TASK_COMMENT_PAGE_MODEL_TYPE = new ParameterizedTypeReference<TaskCommentCollectionRepresentationModel>() {
};
private final RestHelper restHelper;
@Autowired
TaskCommentControllerIntTest(RestHelper restHelper) {
this.restHelper = restHelper;
}
@Test
void should_FailToReturnTaskComment_When_TaskCommentIsNotExisting() {
String urlToNonExistingTaskComment = restHelper.toUrl(RestEndpoints.URL_TASK_COMMENT, "Non existing task comment Id");
ThrowingCallable httpCall = () -> TEMPLATE.exchange(urlToNonExistingTaskComment, HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersAdmin()), ParameterizedTypeReference.forType(TaskCommentRepresentationModel.clreplaced));
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.NOT_FOUND);
}
@Test
void should_FailToReturnTaskComments_When_TaskIstNotVisible() {
String urlToNotVisibleTask = restHelper.toUrl(RestEndpoints.URL_TASK_COMMENTS, "TKI:000000000000000000000000000000000004");
ThrowingCallable httpCall = () -> TEMPLATE.exchange(urlToNotVisibleTask, HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersUser_1_1()), TASK_COMMENT_PAGE_MODEL_TYPE);
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
}
@Test
void should_ReturnSortedAndOrederedTaskCommentsSortedByModified_When_UsingSortAndOrderParams() {
String url = restHelper.toUrl(RestEndpoints.URL_TASK_COMMENTS, "TKI:000000000000000000000000000000000000");
ResponseEnreplacedy<TaskCommentCollectionRepresentationModel> getTaskCommentsSortedByModifiedOrderedByDescendingResponse = TEMPLATE.exchange(url + "?sort-by=MODIFIED&order=DESCENDING", HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersAdmin()), TASK_COMMENT_PAGE_MODEL_TYPE);
replacedertThat(getTaskCommentsSortedByModifiedOrderedByDescendingResponse.getBody()).isNotNull();
replacedertThat(getTaskCommentsSortedByModifiedOrderedByDescendingResponse.getBody().getContent()).hreplacedize(3).extracting(TaskCommentRepresentationModel::getModified).isSortedAccordingTo(Comparator.reverseOrder());
ResponseEnreplacedy<TaskCommentCollectionRepresentationModel> getTaskCommentsSortedByModifiedOrderedByAscendingResponse = TEMPLATE.exchange(url + "?sort-by=MODIFIED", HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersAdmin()), TASK_COMMENT_PAGE_MODEL_TYPE);
replacedertThat(getTaskCommentsSortedByModifiedOrderedByAscendingResponse.getBody()).isNotNull();
replacedertThat(getTaskCommentsSortedByModifiedOrderedByAscendingResponse.getBody().getContent()).hreplacedize(3).extracting(TaskCommentRepresentationModel::getModified).isSortedAccordingTo(Comparator.naturalOrder());
ResponseEnreplacedy<TaskCommentCollectionRepresentationModel> getTaskCommentsSortedByCreatedOrderedByDescendingResponse = TEMPLATE.exchange(url + "?sort-by=CREATED&order=DESCENDING", HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersAdmin()), TASK_COMMENT_PAGE_MODEL_TYPE);
replacedertThat(getTaskCommentsSortedByCreatedOrderedByDescendingResponse.getBody()).isNotNull();
replacedertThat(getTaskCommentsSortedByCreatedOrderedByDescendingResponse.getBody().getContent()).hreplacedize(3).extracting(TaskCommentRepresentationModel::getCreated).isSortedAccordingTo(Comparator.reverseOrder());
ResponseEnreplacedy<TaskCommentCollectionRepresentationModel> getTaskCommentsSortedByCreatedOrderedByAscendingResponse = TEMPLATE.exchange(url + "?sort-by=CREATED", HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersAdmin()), TASK_COMMENT_PAGE_MODEL_TYPE);
replacedertThat(getTaskCommentsSortedByCreatedOrderedByAscendingResponse.getBody()).isNotNull();
replacedertThat(getTaskCommentsSortedByCreatedOrderedByAscendingResponse.getBody().getContent()).hreplacedize(3).extracting(TaskCommentRepresentationModel::getCreated).isSortedAccordingTo(Comparator.naturalOrder());
}
@Test
void should_ThrowException_When_UsingInvalidSortParam() {
String url = restHelper.toUrl(RestEndpoints.URL_TASK_COMMENTS, "TKI:000000000000000000000000000000000000");
ThrowingCallable httpCall = () -> TEMPLATE.exchange(url + "?sort-by=invalidSortParam", HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersUser_1_1()), TASK_COMMENT_PAGE_MODEL_TYPE);
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
@Test
void should_FailToReturnTaskComment_When_TaskIstNotVisible() {
String urlToNotVisibleTask = restHelper.toUrl(RestEndpoints.URL_TASK_COMMENT, "TCI:000000000000000000000000000000000012");
ThrowingCallable httpCall = () -> TEMPLATE.exchange(urlToNotVisibleTask, HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersUser_1_2()), ParameterizedTypeReference.forType(TaskCommentRepresentationModel.clreplaced));
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
}
@Test
void should_FailToCreateTaskComment_When_TaskIsNotVisible() {
TaskCommentRepresentationModel taskCommentRepresentationModelToCreate = new TaskCommentRepresentationModel();
taskCommentRepresentationModelToCreate.setTaskId("TKI:000000000000000000000000000000000000");
taskCommentRepresentationModelToCreate.setTextField("newly created task comment");
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASK_COMMENTS, "TKI:000000000000000000000000000000000000"), HttpMethod.POST, new HttpEnreplacedy<>(taskCommentRepresentationModelToCreate, restHelper.getHeadersUser_b_1()), ParameterizedTypeReference.forType(TaskCommentRepresentationModel.clreplaced));
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
}
@Test
void should_FailToCreateTaskComment_When_TaskIdIsNonExisting() {
TaskCommentRepresentationModel taskCommentRepresentationModelToCreate = new TaskCommentRepresentationModel();
taskCommentRepresentationModelToCreate.setTaskId("DefinatelyNotExistingId");
taskCommentRepresentationModelToCreate.setTextField("newly created task comment");
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASK_COMMENTS, "DefinatelyNotExistingId"), HttpMethod.POST, new HttpEnreplacedy<>(taskCommentRepresentationModelToCreate, restHelper.getHeadersAdmin()), ParameterizedTypeReference.forType(TaskCommentRepresentationModel.clreplaced));
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.NOT_FOUND);
}
@Test
void should_FailToUpdateTaskComment_When_TaskCommentWasModifiedConcurrently() {
String url = restHelper.toUrl(RestEndpoints.URL_TASK_COMMENT, "TCI:000000000000000000000000000000000000");
ResponseEnreplacedy<TaskCommentRepresentationModel> getTaskCommentResponse = TEMPLATE.exchange(url, HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersAdmin()), ParameterizedTypeReference.forType(TaskCommentRepresentationModel.clreplaced));
TaskCommentRepresentationModel taskCommentToUpdate = getTaskCommentResponse.getBody();
replacedertThat(taskCommentToUpdate).isNotNull();
replacedertThat(taskCommentToUpdate.getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(taskCommentToUpdate.getCreator()).isEqualTo("user-1-1");
replacedertThat(taskCommentToUpdate.getTextField()).isEqualTo("some text in textfield");
taskCommentToUpdate.setModified(Instant.now());
ThrowingCallable httpCall = () -> TEMPLATE.exchange(url, HttpMethod.PUT, new HttpEnreplacedy<>(taskCommentToUpdate, restHelper.getHeadersUser_1_1()), ParameterizedTypeReference.forType(TaskCommentRepresentationModel.clreplaced));
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.CONFLICT);
}
@Test
void should_FailToUpdateTaskComment_When_UserHasNoAuthorization() {
String url = restHelper.toUrl(RestEndpoints.URL_TASK_COMMENT, "TCI:000000000000000000000000000000000000");
ResponseEnreplacedy<TaskCommentRepresentationModel> getTaskCommentResponse = TEMPLATE.exchange(url, HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersUser_1_1()), ParameterizedTypeReference.forType(TaskCommentRepresentationModel.clreplaced));
TaskCommentRepresentationModel taskComment = getTaskCommentResponse.getBody();
replacedertThat(taskComment).isNotNull();
replacedertThat(taskComment.getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(taskComment.getCreator()).isEqualTo("user-1-1");
replacedertThat(taskComment.getTextField()).isEqualTo("some text in textfield");
taskComment.setTextField("updated textfield");
ThrowingCallable httpCall = () -> TEMPLATE.exchange(url, HttpMethod.PUT, new HttpEnreplacedy<>(taskComment, restHelper.getHeadersUser_1_2()), ParameterizedTypeReference.forType(TaskCommentRepresentationModel.clreplaced));
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
}
@Test
void should_FailToUpdateTaskComment_When_TaskCommentIdInResourceDoesNotMatchPathVariable() {
String url = restHelper.toUrl(RestEndpoints.URL_TASK_COMMENT, "TCI:000000000000000000000000000000000000");
ResponseEnreplacedy<TaskCommentRepresentationModel> getTaskCommentResponse = TEMPLATE.exchange(url, HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersAdmin()), ParameterizedTypeReference.forType(TaskCommentRepresentationModel.clreplaced));
replacedertThat(getTaskCommentResponse.getBody()).isNotNull();
replacedertThat(getTaskCommentResponse.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(getTaskCommentResponse.getBody().getCreator()).isEqualTo("user-1-1");
replacedertThat(getTaskCommentResponse.getBody().getTextField()).isEqualTo("some text in textfield");
TaskCommentRepresentationModel taskCommentRepresentationModelToUpdate = getTaskCommentResponse.getBody();
taskCommentRepresentationModelToUpdate.setTextField("updated text");
taskCommentRepresentationModelToUpdate.setTaskCommentId("DifferentTaskCommentId");
ThrowingCallable httpCall = () -> TEMPLATE.exchange(url, HttpMethod.PUT, new HttpEnreplacedy<>(taskCommentRepresentationModelToUpdate, restHelper.getHeadersUser_1_1()), ParameterizedTypeReference.forType(TaskCommentRepresentationModel.clreplaced));
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
@Test
void should_FailToDeleteTaskComment_When_UserHasNoAuthorization() {
ResponseEnreplacedy<TaskCommentCollectionRepresentationModel> getTaskCommentsBeforeDeleteionResponse = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_TASK_COMMENTS, "TKI:000000000000000000000000000000000001"), HttpMethod.GET, new HttpEnreplacedy<String>(restHelper.getHeadersUser_1_2()), TASK_COMMENT_PAGE_MODEL_TYPE);
replacedertThat(getTaskCommentsBeforeDeleteionResponse.getBody()).isNotNull();
replacedertThat(getTaskCommentsBeforeDeleteionResponse.getBody().getContent()).hreplacedize(2);
String url = restHelper.toUrl(RestEndpoints.URL_TASK_COMMENT, "TCI:000000000000000000000000000000000004");
ThrowingCallable httpCall = () -> TEMPLATE.exchange(url, HttpMethod.DELETE, new HttpEnreplacedy<String>(restHelper.getHeadersUser_1_2()), ParameterizedTypeReference.forType(TaskCommentRepresentationModel.clreplaced));
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("TaskComment creator and current user must match.").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
}
@Test
void should_FailToDeleteTaskComment_When_TaskCommentIsNotExisting() {
String url = restHelper.toUrl(RestEndpoints.URL_TASK_COMMENT, "NotExistingTaskComment");
ThrowingCallable httpCall = () -> TEMPLATE.exchange(url, HttpMethod.DELETE, new HttpEnreplacedy<String>(restHelper.getHeadersAdmin()), ParameterizedTypeReference.forType(TaskCommentRepresentationModel.clreplaced));
replacedertThatThrownBy(httpCall).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.NOT_FOUND);
}
}
19
View Source File : AccessIdControllerIntTest.java
License : Apache License 2.0
Project Creator : Taskana
License : Apache License 2.0
Project Creator : Taskana
@TaskanaSpringBootTest
clreplaced AccessIdControllerIntTest {
private static final ParameterizedTypeReference<List<AccessIdRepresentationModel>> ACCESS_ID_LIST_TYPE = new ParameterizedTypeReference<List<AccessIdRepresentationModel>>() {
};
private final RestHelper restHelper;
@Autowired
AccessIdControllerIntTest(RestHelper restHelper) {
this.restHelper = restHelper;
}
@Test
void testQueryGroupsByDn() {
ResponseEnreplacedy<List<AccessIdRepresentationModel>> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID) + "?search-for=cn=ksc-users,cn=groups,OU=Test,O=TASKANA", HttpMethod.GET, restHelper.defaultRequest(), ACCESS_ID_LIST_TYPE);
replacedertThat(response.getBody()).isNotNull().extracting(AccessIdRepresentationModel::getAccessId).usingElementComparator(String.CASE_INSENSITIVE_ORDER).containsExactly("cn=ksc-users,cn=groups,OU=Test,O=TASKANA");
}
@Test
void testQueryUserByDn() {
ResponseEnreplacedy<List<AccessIdRepresentationModel>> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID) + "?search-for=uid=teamlead-1,cn=users,OU=Test,O=TASKANA", HttpMethod.GET, restHelper.defaultRequest(), ACCESS_ID_LIST_TYPE);
replacedertThat(response.getBody()).isNotNull().extracting(AccessIdRepresentationModel::getAccessId).usingElementComparator(String.CASE_INSENSITIVE_ORDER).containsExactly("teamlead-1");
}
@Test
void testQueryGroupsByCn() {
ResponseEnreplacedy<List<AccessIdRepresentationModel>> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID) + "?search-for=ksc-use", HttpMethod.GET, restHelper.defaultRequest(), ACCESS_ID_LIST_TYPE);
replacedertThat(response.getBody()).isNotNull().extracting(AccessIdRepresentationModel::getAccessId).usingElementComparator(String.CASE_INSENSITIVE_ORDER).containsExactly("cn=ksc-users,cn=groups,OU=Test,O=TASKANA");
}
@Test
void should_ReturnEmptyResults_ifInvalidCharacterIsUsedInCondition() {
ResponseEnreplacedy<List<AccessIdRepresentationModel>> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID) + "?search-for=ksc-teamleads,cn=groups", HttpMethod.GET, restHelper.defaultRequest(), ACCESS_ID_LIST_TYPE);
replacedertThat(response.getBody()).isNotNull().isEmpty();
}
@Test
void testGetMatches() {
ResponseEnreplacedy<List<AccessIdRepresentationModel>> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID) + "?search-for=rig", HttpMethod.GET, restHelper.defaultRequest(), ACCESS_ID_LIST_TYPE);
replacedertThat(response.getBody()).isNotNull().extracting(AccessIdRepresentationModel::getName).containsExactlyInAnyOrder("Schläfrig, Tim", "Eifrig, Elena");
}
@Test
void should_ReturnAccessIdWithUmlauten_ifBased64EncodedUserIsLookedUp() {
ResponseEnreplacedy<List<AccessIdRepresentationModel>> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID) + "?search-for=läf", HttpMethod.GET, restHelper.defaultRequest(), ACCESS_ID_LIST_TYPE);
replacedertThat(response.getBody()).isNotNull().extracting(AccessIdRepresentationModel::getName).containsExactlyInAnyOrder("Schläfrig, Tim");
}
@Test
void should_ThrowException_When_SearchForIsTooShort() {
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID) + "?search-for=al", HttpMethod.GET, restHelper.defaultRequest(), ParameterizedTypeReference.forType(List.clreplaced));
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("Minimum Length is").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
@Test
void should_ReturnAccessIdsOfGroupsTheAccessIdIsMemberOf_ifAccessIdOfUserIsGiven() {
ResponseEnreplacedy<List<AccessIdRepresentationModel>> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID_GROUPS) + "?access-id=teamlead-2", HttpMethod.GET, restHelper.defaultRequest(), ACCESS_ID_LIST_TYPE);
replacedertThat(response.getBody()).isNotNull().extracting(AccessIdRepresentationModel::getAccessId).usingElementComparator(String.CASE_INSENSITIVE_ORDER).containsExactlyInAnyOrder("cn=ksc-teamleads,cn=groups,OU=Test,O=TASKANA", "cn=business-admins,cn=groups,OU=Test,O=TASKANA", "cn=monitor-users,cn=groups,OU=Test,O=TASKANA", "cn=Organisationseinheit KSC 2," + "cn=Organisationseinheit KSC,cn=organisation,OU=Test,O=TASKANA");
}
@Test
void should_ValidateAccessIdWithEqualsFilterAndReturnAccessIdsOfGroupsTheAccessIdIsMemberOf() {
ResponseEnreplacedy<List<AccessIdRepresentationModel>> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID_GROUPS) + "?access-id=user-2-1", HttpMethod.GET, restHelper.defaultRequest(), ACCESS_ID_LIST_TYPE);
replacedertThat(response.getBody()).isNotNull().extracting(AccessIdRepresentationModel::getAccessId).usingElementComparator(String.CASE_INSENSITIVE_ORDER).containsExactlyInAnyOrder("cn=ksc-users,cn=groups,ou=Test,O=TASKANA", "cn=Organisationseinheit KSC 2,cn=Organisationseinheit KSC," + "cn=organisation,ou=Test,O=TASKANA");
}
@Test
void should_ReturnBadRequest_ifAccessIdOfUserContainsInvalidCharacter() {
ThrowingCallable call = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID_GROUPS) + "?access-id=teamlead-2,cn=users", HttpMethod.GET, restHelper.defaultRequest(), ACCESS_ID_LIST_TYPE);
replacedertThatThrownBy(call).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("The accessId is invalid").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
@Test
void should_ReturnAccessIdsOfGroupsTheAccessIdIsMemberOf_ifAccessIdOfGroupIsGiven() {
ResponseEnreplacedy<List<AccessIdRepresentationModel>> response = TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID_GROUPS) + "?access-id=cn=Organisationseinheit KSC 1," + "cn=Organisationseinheit KSC,cn=organisation,OU=Test,O=TASKANA", HttpMethod.GET, restHelper.defaultRequest(), ACCESS_ID_LIST_TYPE);
replacedertThat(response.getBody()).isNotNull().extracting(AccessIdRepresentationModel::getAccessId).usingElementComparator(String.CASE_INSENSITIVE_ORDER).containsExactlyInAnyOrder("cn=Organisationseinheit KSC,cn=organisation,OU=Test,O=TASKANA");
}
@Test
void should_ThrowNotAuthorizedException_ifCallerOfGroupRetrievalIsNotAdminOrBusinessAdmin() {
ThrowingCallable call = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID_GROUPS) + "?access-id=teamlead-2", HttpMethod.GET, new HttpEnreplacedy<>(restHelper.getHeadersUser_1_1()), ACCESS_ID_LIST_TYPE);
replacedertThatThrownBy(call).isInstanceOf(HttpClientErrorException.clreplaced).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
}
@Test
void should_ThrowNotAuthorizedException_ifCallerOfValidationIsNotAdminOrBusinessAdmin() {
ThrowingCallable call = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_ACCESS_ID) + "?search-for=al", HttpMethod.GET, new HttpEnreplacedy<>(restHelper.getHeadersUser_1_1()), ACCESS_ID_LIST_TYPE);
replacedertThatThrownBy(call).isInstanceOf(HttpClientErrorException.clreplaced).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
}
}
19
View Source File : ClassificationControllerIntTest.java
License : Apache License 2.0
Project Creator : Taskana
License : Apache License 2.0
Project Creator : Taskana
/**
* Test {@link ClreplacedificationController}.
*/
@TaskanaSpringBootTest
clreplaced ClreplacedificationControllerIntTest {
private static final ParameterizedTypeReference<ClreplacedificationSummaryPagedRepresentationModel> CLreplacedIFICATION_SUMMARY_PAGE_MODEL_TYPE = new ParameterizedTypeReference<ClreplacedificationSummaryPagedRepresentationModel>() {
};
private static final ParameterizedTypeReference<ClreplacedificationRepresentationModel> CLreplacedIFICATION_REPRESENTATION_MODEL_TYPE = new ParameterizedTypeReference<ClreplacedificationRepresentationModel>() {
};
private static final ParameterizedTypeReference<ClreplacedificationSummaryRepresentationModel> CLreplacedIFICATION_SUMMARY_REPRESENTATION_MODEL_TYPE = new ParameterizedTypeReference<ClreplacedificationSummaryRepresentationModel>() {
};
static RestTemplate template = RestHelper.TEMPLATE;
@Autowired
RestHelper restHelper;
@Test
void testGetClreplacedification() {
ResponseEnreplacedy<ClreplacedificationRepresentationModel> response = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS_ID, "CLI:100000000000000000000000000000000002"), HttpMethod.GET, restHelper.defaultRequest(), CLreplacedIFICATION_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getHeaders().getContentType()).isEqualTo(MediaTypes.HAL_JSON);
}
@Test
void testGetAllClreplacedifications() {
ResponseEnreplacedy<ClreplacedificationSummaryPagedRepresentationModel> response = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS), HttpMethod.GET, restHelper.defaultRequest(), CLreplacedIFICATION_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
}
@Test
void testGetAllClreplacedificationsFilterByCustomAttribute() {
ResponseEnreplacedy<ClreplacedificationSummaryPagedRepresentationModel> response = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS) + "?domain=DOMAIN_A&custom-1-like=RVNR", HttpMethod.GET, restHelper.defaultRequest(), CLreplacedIFICATION_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(33);
}
@Test
void testGetAllClreplacedificationsKeepingFilters() {
ResponseEnreplacedy<ClreplacedificationSummaryPagedRepresentationModel> response = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS) + "?domain=DOMAIN_A&sort-by=KEY&order=ASCENDING", HttpMethod.GET, restHelper.defaultRequest(), CLreplacedIFICATION_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.SELF).getHref()).endsWith("/api/v1/clreplacedifications?domain=DOMAIN_A&sort-by=KEY&order=ASCENDING");
replacedertThat(response.getBody().getContent()).hreplacedize(37);
replacedertThat(response.getBody().getContent().iterator().next().getKey()).isEqualTo("A12");
}
@Test
void testGetSecondPageSortedByKey() {
ResponseEnreplacedy<ClreplacedificationSummaryPagedRepresentationModel> response = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS) + "?domain=DOMAIN_A&sort-by=KEY&order=ASCENDING&page-size=5&page=2", HttpMethod.GET, restHelper.defaultRequest(), CLreplacedIFICATION_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(5);
replacedertThat(response.getBody().getContent().iterator().next().getKey()).isEqualTo("L1050");
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getRequiredLink(IreplacedinkRelations.SELF).getHref()).endsWith("/api/v1/clreplacedifications?" + "domain=DOMAIN_A&sort-by=KEY&order=ASCENDING&page-size=5&page=2");
replacedertThat(response.getBody().getLink(IreplacedinkRelations.FIRST)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.LAST)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.NEXT)).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.PREV)).isNotNull();
}
@Test
@DirtiesContext
void testCreateClreplacedification() {
String newClreplacedification = "{\"clreplacedificationId\":\"\",\"category\":\"MANUAL\"," + "\"domain\":\"DOMAIN_A\",\"key\":\"NEW_CLreplaced\"," + "\"name\":\"new clreplacedification\",\"type\":\"TASK\", \"serviceLevel\":\"P1D\"}";
ResponseEnreplacedy<ClreplacedificationRepresentationModel> responseEnreplacedy = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS), HttpMethod.POST, new HttpEnreplacedy<>(newClreplacedification, restHelper.getHeadersTeamlead_1()), CLreplacedIFICATION_REPRESENTATION_MODEL_TYPE);
replacedertThat(responseEnreplacedy).isNotNull();
replacedertThat(responseEnreplacedy.getStatusCode()).isEqualTo(HttpStatus.CREATED);
newClreplacedification = "{\"clreplacedificationId\":\"\",\"category\":\"MANUAL\"," + "\"domain\":\"DOMAIN_A\",\"key\":\"NEW_CLreplaced_2\"," + "\"name\":\"new clreplacedification\",\"type\":\"TASK\", \"serviceLevel\":\"P1D\"}";
responseEnreplacedy = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS), HttpMethod.POST, new HttpEnreplacedy<>(newClreplacedification, restHelper.getHeadersTeamlead_1()), CLreplacedIFICATION_REPRESENTATION_MODEL_TYPE);
replacedertThat(responseEnreplacedy.getStatusCode()).isEqualTo(HttpStatus.CREATED);
}
@Test
@DirtiesContext
void should_ThrowNotAuthorized_WhenUserIsNotInRoleAdminOrBusinessAdmin_whileCreating() {
String newClreplacedification = "{\"clreplacedificationId\":\"\",\"category\":\"MANUAL\"," + "\"domain\":\"DOMAIN_A\",\"key\":\"NEW_CLreplaced\"," + "\"name\":\"new clreplacedification\",\"type\":\"TASK\"}";
ThrowingCallable httpCall = () -> template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS), HttpMethod.POST, new HttpEnreplacedy<>(newClreplacedification, restHelper.getHeadersUser_1_1()), CLreplacedIFICATION_REPRESENTATION_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
}
@Test
@DirtiesContext
void testCreateClreplacedificationWithParentId() {
String newClreplacedification = "{\"clreplacedificationId\":\"\",\"category\":\"MANUAL\"," + "\"domain\":\"DOMAIN_B\",\"key\":\"NEW_CLreplaced_P1\"," + "\"name\":\"new clreplacedification\",\"type\":\"TASK\",\"serviceLevel\":\"P1D\"," + "\"parentId\":\"CLI:200000000000000000000000000000000015\"}";
ResponseEnreplacedy<ClreplacedificationRepresentationModel> responseEnreplacedy = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS), HttpMethod.POST, new HttpEnreplacedy<>(newClreplacedification, restHelper.getHeadersTeamlead_1()), CLreplacedIFICATION_REPRESENTATION_MODEL_TYPE);
replacedertThat(responseEnreplacedy).isNotNull();
replacedertThat(responseEnreplacedy.getStatusCode()).isEqualTo(HttpStatus.CREATED);
}
@Test
@DirtiesContext
@SuppressWarnings("checkstyle:LineLength")
void testCreateClreplacedificationWithParentKey() {
String newClreplacedification = "{\"clreplacedificationId\":\"\",\"category\":\"MANUAL\",\"domain\":\"DOMAIN_B\"," + "\"key\":\"NEW_CLreplaced_P2\",\"name\":\"new clreplacedification\"," + "\"type\":\"TASK\",\"parentKey\":\"T2100\",\"serviceLevel\":\"P1D\"}";
ResponseEnreplacedy<ClreplacedificationRepresentationModel> responseEnreplacedy = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS), HttpMethod.POST, new HttpEnreplacedy<>(newClreplacedification, restHelper.getHeadersTeamlead_1()), CLreplacedIFICATION_REPRESENTATION_MODEL_TYPE);
replacedertThat(responseEnreplacedy).isNotNull();
replacedertThat(responseEnreplacedy.getStatusCode()).isEqualTo(HttpStatus.CREATED);
}
@Test
@DirtiesContext
void testCreateClreplacedificationWithParentKeyInDomain_aShouldCreateAClreplacedificationInRootDomain() {
String newClreplacedification = "{\"clreplacedificationId\":\"\",\"category\":\"MANUAL\",\"domain\":\"DOMAIN_A\"," + "\"key\":\"NEW_CLreplaced_P2\",\"name\":\"new clreplacedification\"," + "\"type\":\"TASK\",\"parentKey\":\"T2100\",\"serviceLevel\":\"P1D\"}";
ResponseEnreplacedy<ClreplacedificationRepresentationModel> responseEnreplacedy = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS), HttpMethod.POST, new HttpEnreplacedy<>(newClreplacedification, restHelper.getHeadersTeamlead_1()), CLreplacedIFICATION_REPRESENTATION_MODEL_TYPE);
replacedertThat(responseEnreplacedy).isNotNull();
replacedertThat(responseEnreplacedy.getStatusCode()).isEqualTo(HttpStatus.CREATED);
ResponseEnreplacedy<ClreplacedificationSummaryPagedRepresentationModel> response = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS), HttpMethod.GET, restHelper.defaultRequest(), CLreplacedIFICATION_SUMMARY_PAGE_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
boolean foundClreplacedificationCreated = false;
for (ClreplacedificationSummaryRepresentationModel clreplacedification : response.getBody().getContent()) {
if ("NEW_CLreplaced_P2".equals(clreplacedification.getKey()) && "".equals(clreplacedification.getDomain()) && "T2100".equals(clreplacedification.getParentKey())) {
foundClreplacedificationCreated = true;
break;
}
}
replacedertThat(foundClreplacedificationCreated).isTrue();
}
@Test
@DirtiesContext
void testReturn400IfCreateClreplacedificationWithIncompatibleParentIdAndKey() {
String newClreplacedification = "{\"clreplacedificationId\":\"\",\"category\":\"MANUAL\",\"domain\":\"DOMAIN_B\"," + "\"key\":\"NEW_CLreplaced_P3\",\"name\":\"new clreplacedification\"," + "\"type\":\"TASK\",\"parentId\":\"CLI:200000000000000000000000000000000015\"," + "\"parentKey\":\"T2000\",\"serviceLevel\":\"P1D\"}";
ThrowingCallable httpCall = () -> template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS), HttpMethod.POST, new HttpEnreplacedy<>(newClreplacedification, restHelper.getHeadersBusinessAdmin()), CLreplacedIFICATION_REPRESENTATION_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
@Test
@DirtiesContext
void testCreateClreplacedificationWithClreplacedificationIdReturnsError400() {
String newClreplacedification = "{\"clreplacedificationId\":\"someId\",\"category\":\"MANUAL\"," + "\"domain\":\"DOMAIN_A\",\"key\":\"NEW_CLreplaced\"," + "\"name\":\"new clreplacedification\",\"type\":\"TASK\",\"serviceLevel\":\"P1D\"}";
ThrowingCallable httpCall = () -> template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS), HttpMethod.POST, new HttpEnreplacedy<>(newClreplacedification, restHelper.getHeadersBusinessAdmin()), CLreplacedIFICATION_REPRESENTATION_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
@Test
void testGetClreplacedificationWithSpecialCharacter() {
HttpEnreplacedy<String> request = new HttpEnreplacedy<>(restHelper.getHeadersAdmin());
ResponseEnreplacedy<ClreplacedificationSummaryRepresentationModel> response = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS_ID, "CLI:100000000000000000000000000000000009"), HttpMethod.GET, request, CLreplacedIFICATION_SUMMARY_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getName()).isEqualTo("Zustimmungserklärung");
}
@Test
@DirtiesContext
void testDeleteClreplacedification() {
HttpEnreplacedy<String> request = new HttpEnreplacedy<>(restHelper.getHeadersBusinessAdmin());
ResponseEnreplacedy<ClreplacedificationSummaryRepresentationModel> response = template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS_ID, "CLI:200000000000000000000000000000000004"), HttpMethod.DELETE, request, CLreplacedIFICATION_SUMMARY_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getStatusCode()).isEqualTo(HttpStatus.NO_CONTENT);
ThrowingCallable httpCall = () -> template.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS_ID, "CLI:200000000000000000000000000000000004"), HttpMethod.GET, request, CLreplacedIFICATION_SUMMARY_REPRESENTATION_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced);
}
@Test
void should_ThrowException_When_ProvidingInvalidFilterParams() {
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(RestEndpoints.URL_CLreplacedIFICATIONS) + "?domain=DOMAIN_A" + "&illegalParam=illegal" + "&anotherIllegalParam=stillIllegal" + "&sort-by=NAME&order=DESCENDING&page-size=5&page=2", HttpMethod.GET, restHelper.defaultRequest(), CLreplacedIFICATION_SUMMARY_PAGE_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("Unkown request parameters found: [anotherIllegalParam, illegalParam]").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
}
19
View Source File : TaskHistoryEventControllerIntTest.java
License : Apache License 2.0
Project Creator : Taskana
License : Apache License 2.0
Project Creator : Taskana
/**
* Controller for integration test.
*/
@TaskanaSpringBootTest
clreplaced TaskHistoryEventControllerIntTest {
private static final ParameterizedTypeReference<TaskHistoryEventPagedRepresentationModel> TASK_HISTORY_EVENT_PAGED_REPRESENTATION_MODEL_TYPE = new ParameterizedTypeReference<TaskHistoryEventPagedRepresentationModel>() {
};
private static final ParameterizedTypeReference<TaskHistoryEventRepresentationModel> TASK_HISTORY_EVENT_REPRESENTATION_MODEL_TYPE = new ParameterizedTypeReference<TaskHistoryEventRepresentationModel>() {
};
private final RestHelper restHelper;
@Autowired
TaskHistoryEventControllerIntTest(RestHelper restHelper) {
this.restHelper = restHelper;
}
// region Get Task History Events
@Test
void should_GetAllHistoryEvents_When_UrlIsVisited() {
ResponseEnreplacedy<TaskHistoryEventPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(HistoryRestEndpoints.URL_HISTORY_EVENTS), HttpMethod.GET, restHelper.defaultRequest(), TASK_HISTORY_EVENT_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(45);
}
@Test
void should_GenerateSelfLink_When_TaskHistoryEventsAreRequested() {
ResponseEnreplacedy<TaskHistoryEventPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(HistoryRestEndpoints.URL_HISTORY_EVENTS), HttpMethod.GET, restHelper.defaultRequest(), TASK_HISTORY_EVENT_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isPresent().get().extracting(Link::getHref).replacedtring().endsWith(HistoryRestEndpoints.URL_HISTORY_EVENTS);
}
@Test
void should_ContainQueryParametersInComputedSelfLink_When_TaskHistoryEventsAreRequested() {
String parameters = "?domain=DOMAIN_A&domain=DOMAIN_B";
ResponseEnreplacedy<TaskHistoryEventPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(HistoryRestEndpoints.URL_HISTORY_EVENTS + parameters), HttpMethod.GET, restHelper.defaultRequest(), TASK_HISTORY_EVENT_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isPresent().get().extracting(Link::getHref).replacedtring().endsWith(HistoryRestEndpoints.URL_HISTORY_EVENTS + parameters);
}
@Test
void should_SortEventsByBusinessProcessIdDesc_When_SortByAndOrderQueryParametersAreDeclared() {
String parameters = "?sort-by=BUSINESS_PROCESS_ID&order=DESCENDING";
ResponseEnreplacedy<TaskHistoryEventPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(HistoryRestEndpoints.URL_HISTORY_EVENTS + parameters), HttpMethod.GET, restHelper.defaultRequest(), TASK_HISTORY_EVENT_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getContent()).extracting(TaskHistoryEventRepresentationModel::getBusinessProcessId).isSortedAccordingTo(CASE_INSENSITIVE_ORDER.reversed());
}
@Test
void should_ApplyBusinessProcessIdFilter_When_QueryParameterIsProvided() {
String parameters = "?business-process-id=BPI:01";
ResponseEnreplacedy<TaskHistoryEventPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(HistoryRestEndpoints.URL_HISTORY_EVENTS + parameters), HttpMethod.GET, restHelper.defaultRequest(), TASK_HISTORY_EVENT_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getContent()).extracting(TaskHistoryEventRepresentationModel::getTaskHistoryId).containsExactly("THI:000000000000000000000000000000000000");
}
@Test
@Disabled("Jörg pls fix this")
void should_ReturnBadStatusErrorCode_When_CreatedQueryParameterIsWrongFormatted() {
String currentTime = "wrong format";
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(HistoryRestEndpoints.URL_HISTORY_EVENTS + "?created=" + currentTime), HttpMethod.GET, restHelper.defaultRequest(), TASK_HISTORY_EVENT_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining(currentTime).extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
@Test
void should_ApplyCreatedFilter_When_QueryParametersAreProvided() {
Instant now = LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant();
ResponseEnreplacedy<TaskHistoryEventPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(HistoryRestEndpoints.URL_HISTORY_EVENTS + "?created=" + now + "&created="), HttpMethod.GET, restHelper.defaultRequest(), TASK_HISTORY_EVENT_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isNotNull();
replacedertThat(response.getBody().getContent()).hreplacedize(23);
}
@Test
void should_ApplyPaging_When_PagingIsRequested() {
String expectedFirstPageParameters = "?sort-by=TASK_HISTORY_EVENT_ID&page-size=3&page=1";
String expectedLastPageParameters = "?sort-by=TASK_HISTORY_EVENT_ID&page-size=3&page=15";
String expectedPrevPageParameters = "?sort-by=TASK_HISTORY_EVENT_ID&page-size=3&page=2";
String expectedNextPageParameters = "?sort-by=TASK_HISTORY_EVENT_ID&page-size=3&page=4";
String parameters = "?sort-by=TASK_HISTORY_EVENT_ID&page-size=3&page=3";
ResponseEnreplacedy<TaskHistoryEventPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(HistoryRestEndpoints.URL_HISTORY_EVENTS + parameters), HttpMethod.GET, restHelper.defaultRequest(), TASK_HISTORY_EVENT_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getContent()).extracting(TaskHistoryEventRepresentationModel::getTaskHistoryId).containsExactly("THI:000000000000000000000000000000000006", "THI:000000000000000000000000000000000007", "THI:000000000000000000000000000000000008");
replacedertThat(response.getBody().getPageMetadata()).isEqualTo(new PageMetadata(3, 45, 15, 3));
replacedertThat(response.getBody().getLink(IreplacedinkRelations.FIRST)).isPresent().get().extracting(Link::getHref).replacedtring().endsWith(HistoryRestEndpoints.URL_HISTORY_EVENTS + expectedFirstPageParameters);
replacedertThat(response.getBody().getLink(IreplacedinkRelations.LAST)).isPresent().get().extracting(Link::getHref).replacedtring().endsWith(HistoryRestEndpoints.URL_HISTORY_EVENTS + expectedLastPageParameters);
replacedertThat(response.getBody().getLink(IreplacedinkRelations.PREV)).isPresent().get().extracting(Link::getHref).replacedtring().endsWith(HistoryRestEndpoints.URL_HISTORY_EVENTS + expectedPrevPageParameters);
replacedertThat(response.getBody().getLink(IreplacedinkRelations.NEXT)).isPresent().get().extracting(Link::getHref).replacedtring().endsWith(HistoryRestEndpoints.URL_HISTORY_EVENTS + expectedNextPageParameters);
}
// endregion
// region Get Specific Task History Event
@Test
void should_GenerateSelfLink_When_SpecificTaskHistoryEventIsRequested() {
String id = "THI:000000000000000000000000000000000000";
String expectedUrl = UriComponentsBuilder.fromPath(HistoryRestEndpoints.URL_HISTORY_EVENTS_ID).buildAndExpand(id).toUriString();
ResponseEnreplacedy<TaskHistoryEventPagedRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(HistoryRestEndpoints.URL_HISTORY_EVENTS_ID, id), HttpMethod.GET, restHelper.defaultRequest(), TASK_HISTORY_EVENT_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getLink(IreplacedinkRelations.SELF)).isPresent().get().extracting(Link::getHref).replacedtring().endsWith(expectedUrl);
}
@Test
void should_GetSpecificTaskHistoryEventWithDetails_When_SingleEventIsQueried() {
ResponseEnreplacedy<TaskHistoryEventRepresentationModel> response = TEMPLATE.exchange(restHelper.toUrl(HistoryRestEndpoints.URL_HISTORY_EVENTS_ID, "THI:000000000000000000000000000000000000"), HttpMethod.GET, restHelper.defaultRequest(), TASK_HISTORY_EVENT_REPRESENTATION_MODEL_TYPE);
replacedertThat(response.getBody()).isNotNull();
replacedertThat(response.getBody().getDetails()).isNotNull();
}
@Test
void should_ThrowException_When_ProvidingInvalidFilterParams() {
ThrowingCallable httpCall = () -> TEMPLATE.exchange(restHelper.toUrl(HistoryRestEndpoints.URL_HISTORY_EVENTS) + "?domain=DOMAIN_A" + "&illegalParam=illegal" + "&anotherIllegalParam=stillIllegal" + "&sort-by=TASK_ID&order=DESCENDING&page-size=5&page=2", HttpMethod.GET, restHelper.defaultRequest(), TASK_HISTORY_EVENT_PAGED_REPRESENTATION_MODEL_TYPE);
replacedertThatThrownBy(httpCall).isInstanceOf(HttpClientErrorException.clreplaced).hasMessageContaining("Unkown request parameters found: [anotherIllegalParam, illegalParam]").extracting(ex -> ((HttpClientErrorException) ex).getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
// endregion
}
19
View Source File : VersionITCase.java
License : Apache License 2.0
Project Creator : syndesisio
License : Apache License 2.0
Project Creator : syndesisio
public clreplaced VersionITCase extends BaseITCase {
private static final ParameterizedTypeReference<Map<String, String>> MAP_OF_STRINGS = new ParameterizedTypeReference<Map<String, String>>() {
};
@Test
public void shouldFetchDetailedVersion() {
final HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.ACCEPT, "application/json");
final ResponseEnreplacedy<Map<String, String>> detailed = http(HttpMethod.GET, "/api/v1/version", null, MAP_OF_STRINGS, tokenRule.validToken(), headers, HttpStatus.OK);
replacedertThat(detailed.getBody()).isNotEmpty();
}
@Test
public void shouldFetchPlainVersion() {
final HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.ACCEPT, "text/plain");
final ResponseEnreplacedy<String> plainVersion = http(HttpMethod.GET, "/api/v1/version", null, String.clreplaced, tokenRule.validToken(), headers, HttpStatus.OK);
replacedertThat(plainVersion.getBody()).isNotEmpty();
}
}
19
View Source File : ConnectionsITCase.java
License : Apache License 2.0
Project Creator : syndesisio
License : Apache License 2.0
Project Creator : syndesisio
public clreplaced ConnectionsITCase extends BaseITCase {
private final static ParameterizedTypeReference<List<Violation>> RESPONSE_TYPE = new ParameterizedTypeReference<List<Violation>>() {
};
private final String id = UUID.randomUUID().toString();
@Test
public void emptyNamesShouldNotBeAllowed() {
final Connection connection = new Connection.Builder().name(" ").build();
final ResponseEnreplacedy<List<Violation>> got = post("/api/v1/connections/validation", connection, RESPONSE_TYPE, tokenRule.validToken(), HttpStatus.BAD_REQUEST);
replacedertThat(got.getBody()).containsExactly(new Violation.Builder().property("name").error("NotNull").message("Value is required").build());
}
@Test
public void emptyTagsShouldBeIgnored() {
final Connection connection = new Connection.Builder().id("tags-connection-test").connectorId("http").name("tags-connection-test").addTags("", " ", "taggy").build();
final ResponseEnreplacedy<Connection> got = post("/api/v1/connections", connection, Connection.clreplaced, tokenRule.validToken(), HttpStatus.OK);
final Connection created = got.getBody();
replacedertThat(created).isNotNull();
replacedertThat(created.getTags()).containsExactly("taggy");
}
@Test
public void nullNamesShouldNotBeAllowed() {
final Connection connection = new Connection.Builder().build();
final ResponseEnreplacedy<List<Violation>> got = post("/api/v1/connections/validation", connection, RESPONSE_TYPE, tokenRule.validToken(), HttpStatus.BAD_REQUEST);
replacedertThat(got.getBody()).containsExactly(new Violation.Builder().property("name").error("NotNull").message("Value is required").build());
}
@BeforeEach
public void preexistingConnection() {
final Connection connection = new Connection.Builder().name("Existing connection").id(id).build();
dataManager.create(connection);
}
@Test
public void shouldAllowConnectionUpdateWithExistingName() {
final Connection connection = new Connection.Builder().name("Existing connection").connectorId("http").id(id).build();
final ResponseEnreplacedy<Void> got = put("/api/v1/connections/" + id, connection, Void.clreplaced, tokenRule.validToken(), HttpStatus.NO_CONTENT);
replacedertThat(got.getBody()).isNull();
}
@Test
public void shouldDetermineValidityForInvalidConnections() {
final Connection connection = new Connection.Builder().name("Existing connection").build();
final ResponseEnreplacedy<List<Violation>> got = post("/api/v1/connections/validation", connection, RESPONSE_TYPE, tokenRule.validToken(), HttpStatus.BAD_REQUEST);
replacedertThat(got.getBody()).containsExactly(new Violation.Builder().property("name").error("UniqueProperty").message("Value 'Existing connection' is not unique").build());
}
@Test
public void shouldDetermineValidityForValidConnections() {
final Connection connection = new Connection.Builder().name("Test connection").build();
final ResponseEnreplacedy<List<Violation>> got = post("/api/v1/connections/validation", connection, RESPONSE_TYPE, tokenRule.validToken(), HttpStatus.NO_CONTENT);
replacedertThat(got.getBody()).isNull();
}
@Test
public void violationsShouldBeGivenForInvalidConnectionCreation() {
final Connection connection = new Connection.Builder().name("Existing connection").build();
final ResponseEnreplacedy<List<Violation>> got = post("/api/v1/connections", connection, RESPONSE_TYPE, tokenRule.validToken(), HttpStatus.BAD_REQUEST);
replacedertThat(got.getBody()).containsExactly(new Violation.Builder().property("create.obj.name").error("UniqueProperty").message("Value 'Existing connection' is not unique").build());
}
}
19
View Source File : GraphQLHttpHandler.java
License : Apache License 2.0
Project Creator : spring-projects-experimental
License : Apache License 2.0
Project Creator : spring-projects-experimental
/**
* GraphQL handler to expose as a WebMvc.fn endpoint via
* {@link org.springframework.web.servlet.function.RouterFunctions}.
*/
public clreplaced GraphQLHttpHandler {
private final static Log logger = LogFactory.getLog(GraphQLHttpHandler.clreplaced);
private static final ParameterizedTypeReference<Map<String, Object>> MAP_PARAMETERIZED_TYPE_REF = new ParameterizedTypeReference<Map<String, Object>>() {
};
private final WebInterceptorExecutionChain executionChain;
/**
* Create a handler that executes queries through the given {@link GraphQL}
* and and invokes the given interceptors to customize input to and the
* result from the execution of the query.
* @param graphQL the GraphQL instance to use for query execution
* @param interceptors 0 or more interceptors to customize input and output
*/
public GraphQLHttpHandler(GraphQL graphQL, List<WebInterceptor> interceptors) {
this.executionChain = new WebInterceptorExecutionChain(graphQL, interceptors);
}
/**
* {@inheritDoc}
*
* @throws ServletException may be raised when reading the request body,
* e.g. {@link HttpMediaTypeNotSupportedException}.
*/
public ServerResponse handle(ServerRequest request) throws ServletException {
WebInput webInput = new WebInput(request.uri(), request.headers().asHttpHeaders(), readBody(request));
if (logger.isDebugEnabled()) {
logger.debug("Executing: " + webInput);
}
Mono<ServerResponse> responseMono = this.executionChain.execute(webInput).map(output -> {
if (logger.isDebugEnabled()) {
logger.debug("Execution complete");
}
ServerResponse.BodyBuilder builder = ServerResponse.ok();
if (output.getHeaders() != null) {
builder.headers(headers -> headers.putAll(output.getHeaders()));
}
return builder.body(output.toSpecification());
});
return ServerResponse.async(responseMono);
}
private static Map<String, Object> readBody(ServerRequest request) throws ServletException {
try {
return request.body(MAP_PARAMETERIZED_TYPE_REF);
} catch (IOException ex) {
throw new ServerWebInputException("I/O error while reading request body", null, ex);
}
}
}
19
View Source File : GraphQLHttpHandler.java
License : Apache License 2.0
Project Creator : spring-projects-experimental
License : Apache License 2.0
Project Creator : spring-projects-experimental
/**
* WebFlux.fn Handler for GraphQL over HTTP requests.
*/
public clreplaced GraphQLHttpHandler {
private static final Log logger = LogFactory.getLog(GraphQLHttpHandler.clreplaced);
private static final ParameterizedTypeReference<Map<String, Object>> MAP_PARAMETERIZED_TYPE_REF = new ParameterizedTypeReference<Map<String, Object>>() {
};
private final WebInterceptorExecutionChain executionChain;
/**
* Create a new instance.
* @param graphQL the GraphQL instance to use for query execution
* @param interceptors 0 or more interceptors to customize input and output
*/
public GraphQLHttpHandler(GraphQL graphQL, List<WebInterceptor> interceptors) {
this.executionChain = new WebInterceptorExecutionChain(graphQL, interceptors);
}
/**
* Handle GraphQL query requests over HTTP.
*/
public Mono<ServerResponse> handleQuery(ServerRequest request) {
return request.bodyToMono(MAP_PARAMETERIZED_TYPE_REF).flatMap(body -> {
WebInput webInput = new WebInput(request.uri(), request.headers().asHttpHeaders(), body);
if (logger.isDebugEnabled()) {
logger.debug("Executing: " + webInput);
}
return this.executionChain.execute(webInput);
}).flatMap(output -> {
Map<String, Object> spec = output.toSpecification();
if (logger.isDebugEnabled()) {
logger.debug("Execution complete");
}
ServerResponse.BodyBuilder builder = ServerResponse.ok();
if (output.getHeaders() != null) {
builder.headers(headers -> headers.putAll(output.getHeaders()));
}
return builder.bodyValue(spec);
});
}
}
19
View Source File : ReactiveCredHubCredentialTemplate.java
License : Apache License 2.0
Project Creator : spring-projects
License : Apache License 2.0
Project Creator : spring-projects
@Override
public <T> Mono<CredentialDetails<T>> write(final CredentialRequest<T> credentialRequest) {
replacedert.notNull(credentialRequest, "credentialRequest must not be null");
final ParameterizedTypeReference<CredentialDetails<T>> ref = new ParameterizedTypeReference<CredentialDetails<T>>() {
};
return this.credHubOperations.doWithWebClient((webClient) -> webClient.put().uri(BASE_URL_PATH).bodyValue(credentialRequest).retrieve().onStatus(HttpStatus::isError, ExceptionUtils::buildError).bodyToMono(ref));
}
19
View Source File : ReactiveCredHubCredentialTemplate.java
License : Apache License 2.0
Project Creator : spring-projects
License : Apache License 2.0
Project Creator : spring-projects
@Override
public <T> Mono<CredentialDetails<T>> getById(final String id, final Clreplaced<T> credentialType) {
replacedert.notNull(id, "credential id must not be null");
replacedert.notNull(credentialType, "credential type must not be null");
final ParameterizedTypeReference<CredentialDetails<T>> ref = new ParameterizedTypeReference<CredentialDetails<T>>() {
};
return this.credHubOperations.doWithWebClient((webClient) -> webClient.get().uri(ID_URL_PATH, id).retrieve().onStatus(HttpStatus::isError, ExceptionUtils::buildError).bodyToMono(ref));
}
19
View Source File : ReactiveCredHubCredentialTemplate.java
License : Apache License 2.0
Project Creator : spring-projects
License : Apache License 2.0
Project Creator : spring-projects
@Override
public <T, P> Mono<CredentialDetails<T>> generate(final ParametersRequest<P> parametersRequest, Clreplaced<T> credentialType) {
replacedert.notNull(parametersRequest, "parametersRequest must not be null");
final ParameterizedTypeReference<CredentialDetails<T>> ref = new ParameterizedTypeReference<CredentialDetails<T>>() {
};
return this.credHubOperations.doWithWebClient((webClient) -> webClient.post().uri(BASE_URL_PATH).bodyValue(parametersRequest).retrieve().onStatus(HttpStatus::isError, ExceptionUtils::buildError).bodyToMono(ref));
}
19
View Source File : CredHubCredentialTemplate.java
License : Apache License 2.0
Project Creator : spring-projects
License : Apache License 2.0
Project Creator : spring-projects
@Override
public <T> CredentialDetails<T> getById(final String id, final Clreplaced<T> credentialType) {
replacedert.notNull(id, "credential id must not be null");
replacedert.notNull(credentialType, "credential type must not be null");
final ParameterizedTypeReference<CredentialDetails<T>> ref = new ParameterizedTypeReference<CredentialDetails<T>>() {
};
return this.credHubOperations.doWithRest((restOperations) -> {
ResponseEnreplacedy<CredentialDetails<T>> response = restOperations.exchange(ID_URL_PATH, HttpMethod.GET, null, ref, id);
ExceptionUtils.throwExceptionOnError(response);
return response.getBody();
});
}
19
View Source File : CredHubCredentialTemplate.java
License : Apache License 2.0
Project Creator : spring-projects
License : Apache License 2.0
Project Creator : spring-projects
@Override
public <T> CredentialDetails<T> write(final CredentialRequest<T> credentialRequest) {
replacedert.notNull(credentialRequest, "credentialRequest must not be null");
final ParameterizedTypeReference<CredentialDetails<T>> ref = new ParameterizedTypeReference<CredentialDetails<T>>() {
};
return this.credHubOperations.doWithRest((restOperations) -> {
ResponseEnreplacedy<CredentialDetails<T>> response = restOperations.exchange(BASE_URL_PATH, HttpMethod.PUT, new HttpEnreplacedy<>(credentialRequest), ref);
ExceptionUtils.throwExceptionOnError(response);
return response.getBody();
});
}
19
View Source File : ReactiveCredHubCertificateTemplate.java
License : Apache License 2.0
Project Creator : spring-projects
License : Apache License 2.0
Project Creator : spring-projects
@Override
public Mono<CertificateCredentialDetails> regenerate(final String id, final boolean setAsTransitional) {
replacedert.notNull(id, "credential ID must not be null");
final ParameterizedTypeReference<CertificateCredentialDetails> ref = new ParameterizedTypeReference<CertificateCredentialDetails>() {
};
Map<String, Boolean> request = new HashMap<>(1);
request.put(TRANSITIONAL_REQUEST_FIELD, setAsTransitional);
return this.credHubOperations.doWithWebClient((webClient) -> webClient.post().uri(REGENERATE_URL_PATH, id).bodyValue(request).retrieve().onStatus(HttpStatus::isError, ExceptionUtils::buildError).bodyToMono(ref));
}
19
View Source File : DefaultSkipperClient.java
License : Apache License 2.0
Project Creator : spring-cloud
License : Apache License 2.0
Project Creator : spring-cloud
@Override
public Info status(String releaseName, int releaseVersion) {
ParameterizedTypeReference<Info> typeReference = new ParameterizedTypeReference<Info>() {
};
Map<String, String> uriVariables = new HashMap<String, String>();
uriVariables.put("releaseName", releaseName);
uriVariables.put("releaseVersion", Integer.toString(releaseVersion));
ResponseEnreplacedy<Info> resourceResponseEnreplacedy = restTemplate.exchange(baseUri + "/release/status/{releaseName}/{releaseVersion}", HttpMethod.GET, null, typeReference, uriVariables);
return resourceResponseEnreplacedy.getBody();
}
19
View Source File : DefaultSkipperClient.java
License : Apache License 2.0
Project Creator : spring-cloud
License : Apache License 2.0
Project Creator : spring-cloud
public Release install(InstallRequest installRequest) {
ParameterizedTypeReference<Release> typeReference = new ParameterizedTypeReference<Release>() {
};
String url = String.format("%s/%s/%s", baseUri, "package", "install");
HttpEnreplacedy<InstallRequest> httpEnreplacedy = new HttpEnreplacedy<>(installRequest);
ResponseEnreplacedy<Release> resourceResponseEnreplacedy = restTemplate.exchange(url, HttpMethod.POST, httpEnreplacedy, typeReference);
return resourceResponseEnreplacedy.getBody();
}
19
View Source File : DefaultSkipperClient.java
License : Apache License 2.0
Project Creator : spring-cloud
License : Apache License 2.0
Project Creator : spring-cloud
@Override
public Info status(String releaseName) {
ParameterizedTypeReference<Info> typeReference = new ParameterizedTypeReference<Info>() {
};
Map<String, String> uriVariables = new HashMap<String, String>();
uriVariables.put("releaseName", releaseName);
ResponseEnreplacedy<Info> resourceResponseEnreplacedy = restTemplate.exchange(baseUri + "/release/status/{releaseName}", HttpMethod.GET, null, typeReference, uriVariables);
return resourceResponseEnreplacedy.getBody();
}
19
View Source File : DefaultSkipperClient.java
License : Apache License 2.0
Project Creator : spring-cloud
License : Apache License 2.0
Project Creator : spring-cloud
@Override
public LogInfo getLog(String releaseName, String appName) {
ParameterizedTypeReference<LogInfo> typeReference = new ParameterizedTypeReference<LogInfo>() {
};
Map<String, String> uriVariables = new HashMap<String, String>();
uriVariables.put("releaseName", releaseName);
uriVariables.put("appName", appName);
ResponseEnreplacedy<LogInfo> resourceResponseEnreplacedy = restTemplate.exchange(baseUri + "/release/logs/{releaseName}/{appName}", HttpMethod.GET, null, typeReference, uriVariables);
return resourceResponseEnreplacedy.getBody();
}
19
View Source File : DefaultSkipperClient.java
License : Apache License 2.0
Project Creator : spring-cloud
License : Apache License 2.0
Project Creator : spring-cloud
@Override
public LogInfo getLog(String releaseName) {
ParameterizedTypeReference<LogInfo> typeReference = new ParameterizedTypeReference<LogInfo>() {
};
Map<String, String> uriVariables = new HashMap<String, String>();
uriVariables.put("releaseName", releaseName);
ResponseEnreplacedy<LogInfo> resourceResponseEnreplacedy = restTemplate.exchange(baseUri + "/release/logs/{releaseName}", HttpMethod.GET, null, typeReference, uriVariables);
return resourceResponseEnreplacedy.getBody();
}
19
View Source File : DefaultSkipperClient.java
License : Apache License 2.0
Project Creator : spring-cloud
License : Apache License 2.0
Project Creator : spring-cloud
@Override
public Release rollback(RollbackRequest rollbackRequest) {
ParameterizedTypeReference<Release> typeReference = new ParameterizedTypeReference<Release>() {
};
String url = String.format("%s/%s/%s", baseUri, "release", "rollback");
HttpEnreplacedy<RollbackRequest> httpEnreplacedy = new HttpEnreplacedy<>(rollbackRequest);
ResponseEnreplacedy<Release> resourceResponseEnreplacedy = restTemplate.exchange(url, HttpMethod.POST, httpEnreplacedy, typeReference);
return resourceResponseEnreplacedy.getBody();
}
19
View Source File : DefaultSkipperClient.java
License : Apache License 2.0
Project Creator : spring-cloud
License : Apache License 2.0
Project Creator : spring-cloud
@Override
public String manifest(String releaseName) {
ParameterizedTypeReference<Manifest> typeReference = new ParameterizedTypeReference<Manifest>() {
};
Map<String, String> uriVariables = new HashMap<String, String>();
uriVariables.put("releaseName", releaseName);
ResponseEnreplacedy<Manifest> resourceResponseEnreplacedy = restTemplate.exchange(baseUri + "/release/manifest/{releaseName}", HttpMethod.GET, null, typeReference, uriVariables);
return resourceResponseEnreplacedy.getBody().getData();
}
19
View Source File : DefaultSkipperClient.java
License : Apache License 2.0
Project Creator : spring-cloud
License : Apache License 2.0
Project Creator : spring-cloud
@Override
public String manifest(String releaseName, int releaseVersion) {
ParameterizedTypeReference<Manifest> typeReference = new ParameterizedTypeReference<Manifest>() {
};
Map<String, String> uriVariables = new HashMap<String, String>();
uriVariables.put("releaseName", releaseName);
uriVariables.put("releaseVersion", Integer.toString(releaseVersion));
ResponseEnreplacedy<Manifest> resourceResponseEnreplacedy = restTemplate.exchange(baseUri + "/release/manifest/{releaseName}/{releaseVersion}", HttpMethod.GET, null, typeReference, uriVariables);
return resourceResponseEnreplacedy.getBody().getData();
}
19
View Source File : DefaultSkipperClient.java
License : Apache License 2.0
Project Creator : spring-cloud
License : Apache License 2.0
Project Creator : spring-cloud
@Override
public Release scale(String releaseName, ScaleRequest scaleRequest) {
ParameterizedTypeReference<Release> typeReference = new ParameterizedTypeReference<Release>() {
};
Map<String, String> uriVariables = new HashMap<String, String>();
uriVariables.put("releaseName", releaseName);
HttpEnreplacedy<ScaleRequest> httpEnreplacedy = new HttpEnreplacedy<>(scaleRequest);
ResponseEnreplacedy<Release> resourceResponseEnreplacedy = restTemplate.exchange(baseUri + "/release/scale/{releaseName}", HttpMethod.POST, httpEnreplacedy, typeReference, uriVariables);
return resourceResponseEnreplacedy.getBody();
}
19
View Source File : ProductionConfigurationTests.java
License : Apache License 2.0
Project Creator : spring-cloud
License : Apache License 2.0
Project Creator : spring-cloud
@Test
public void deleteWithBody() throws Exception {
Foo foo = new Foo("to-be-deleted");
ParameterizedTypeReference<Map<String, Foo>> returnType = new ParameterizedTypeReference<Map<String, Foo>>() {
};
ResponseEnreplacedy<Map<String, Foo>> deleteResponse = rest.exchange("/proxy/{id}", HttpMethod.DELETE, new HttpEnreplacedy<Foo>(foo), returnType, Collections.singletonMap("id", "123"));
replacedertThat(deleteResponse.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(deleteResponse.getBody().get("deleted")).isEqualToComparingFieldByField(foo);
}
19
View Source File : ApplicationJsonMessageMarshallingConverter.java
License : Apache License 2.0
Project Creator : spring-cloud
License : Apache License 2.0
Project Creator : spring-cloud
@Override
protected Object convertFromInternal(Message<?> message, Clreplaced<?> targetClreplaced, @Nullable Object hint) {
Object conversionHint = hint;
Object result = null;
if (conversionHint instanceof MethodParameter) {
Clreplaced<?> conversionHintType = ((MethodParameter) conversionHint).getParameterType();
if (Message.clreplaced.isreplacedignableFrom(conversionHintType)) {
/*
* Ensures that super won't attempt to create Message as a result of
* conversion and stays at payload conversion only. The Message will
* eventually be created in
* MessageMethodArgumentResolver.resolveArgument(..)
*/
conversionHint = null;
} else if (((MethodParameter) conversionHint).getGenericParameterType() instanceof ParameterizedType) {
ParameterizedTypeReference<Object> forType = ParameterizedTypeReference.forType(((MethodParameter) conversionHint).getGenericParameterType());
result = convertParameterizedType(message, forType.getType());
}
} else if (conversionHint instanceof ParameterizedTypeReference) {
result = convertParameterizedType(message, ((ParameterizedTypeReference<?>) conversionHint).getType());
} else if (conversionHint instanceof ParameterizedType) {
result = convertParameterizedType(message, (Type) conversionHint);
}
if (result == null) {
if (message.getPayload() instanceof byte[] && targetClreplaced.isreplacedignableFrom(String.clreplaced)) {
result = new String((byte[]) message.getPayload(), StandardCharsets.UTF_8);
} else {
result = super.convertFromInternal(message, targetClreplaced, conversionHint);
}
}
return result;
}
19
View Source File : RequestMappingMessageConversionIntegrationTests.java
License : Apache License 2.0
Project Creator : SourceHot
License : Apache License 2.0
Project Creator : SourceHot
/**
* {@code @RequestMapping} integration tests focusing on serialization and
* deserialization of the request and response body.
*
* @author Rossen Stoyanchev
* @author Sebastien Deleuze
*/
public clreplaced RequestMappingMessageConversionIntegrationTests extends AbstractRequestMappingIntegrationTests {
private static final ParameterizedTypeReference<List<Person>> PERSON_LIST = new ParameterizedTypeReference<List<Person>>() {
};
private static final MediaType JSON = MediaType.APPLICATION_JSON;
@Override
protected ApplicationContext initApplicationContext() {
AnnotationConfigApplicationContext wac = new AnnotationConfigApplicationContext();
wac.register(WebConfig.clreplaced);
wac.refresh();
return wac;
}
@ParameterizedHttpServerTest
public void byteBufferResponseBodyWithPublisher(HttpServer httpServer) throws Exception {
startServer(httpServer);
Person expected = new Person("Robert");
replacedertThat(performGet("/raw-response/publisher", JSON, Person.clreplaced).getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void byteBufferResponseBodyWithFlux(HttpServer httpServer) throws Exception {
startServer(httpServer);
String expected = "Hello!";
replacedertThat(performGet("/raw-response/flux", new HttpHeaders(), String.clreplaced).getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void byteBufferResponseBodyWithMono(HttpServer httpServer) throws Exception {
startServer(httpServer);
String expected = "Hello!";
ResponseEnreplacedy<String> responseEnreplacedy = performGet("/raw-response/mono", new HttpHeaders(), String.clreplaced);
replacedertThat(responseEnreplacedy.getHeaders().getContentLength()).isEqualTo(6);
replacedertThat(responseEnreplacedy.getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void byteBufferResponseBodyWithObservable(HttpServer httpServer) throws Exception {
startServer(httpServer);
String expected = "Hello!";
replacedertThat(performGet("/raw-response/observable", new HttpHeaders(), String.clreplaced).getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void byteBufferResponseBodyWithRxJava2Observable(HttpServer httpServer) throws Exception {
startServer(httpServer);
String expected = "Hello!";
replacedertThat(performGet("/raw-response/rxjava2-observable", new HttpHeaders(), String.clreplaced).getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void byteBufferResponseBodyWithFlowable(HttpServer httpServer) throws Exception {
startServer(httpServer);
String expected = "Hello!";
replacedertThat(performGet("/raw-response/flowable", new HttpHeaders(), String.clreplaced).getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void personResponseBody(HttpServer httpServer) throws Exception {
startServer(httpServer);
Person expected = new Person("Robert");
ResponseEnreplacedy<Person> responseEnreplacedy = performGet("/person-response/person", JSON, Person.clreplaced);
replacedertThat(responseEnreplacedy.getHeaders().getContentLength()).isEqualTo(17);
replacedertThat(responseEnreplacedy.getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void personResponseBodyWithCompletableFuture(HttpServer httpServer) throws Exception {
startServer(httpServer);
Person expected = new Person("Robert");
ResponseEnreplacedy<Person> responseEnreplacedy = performGet("/person-response/completable-future", JSON, Person.clreplaced);
replacedertThat(responseEnreplacedy.getHeaders().getContentLength()).isEqualTo(17);
replacedertThat(responseEnreplacedy.getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void personResponseBodyWithMono(HttpServer httpServer) throws Exception {
startServer(httpServer);
Person expected = new Person("Robert");
ResponseEnreplacedy<Person> responseEnreplacedy = performGet("/person-response/mono", JSON, Person.clreplaced);
replacedertThat(responseEnreplacedy.getHeaders().getContentLength()).isEqualTo(17);
replacedertThat(responseEnreplacedy.getBody()).isEqualTo(expected);
}
// SPR-17506
@ParameterizedHttpServerTest
public void personResponseBodyWithEmptyMono(HttpServer httpServer) throws Exception {
startServer(httpServer);
ResponseEnreplacedy<Person> responseEnreplacedy = performGet("/person-response/mono-empty", JSON, Person.clreplaced);
replacedertThat(responseEnreplacedy.getHeaders().getContentLength()).isEqualTo(0);
replacedertThat(responseEnreplacedy.getBody()).isNull();
// As we're on the same connection, the 2nd request proves server response handling
// did complete after the 1st request..
responseEnreplacedy = performGet("/person-response/mono-empty", JSON, Person.clreplaced);
replacedertThat(responseEnreplacedy.getHeaders().getContentLength()).isEqualTo(0);
replacedertThat(responseEnreplacedy.getBody()).isNull();
}
@ParameterizedHttpServerTest
public void personResponseBodyWithMonoDeclaredAsObject(HttpServer httpServer) throws Exception {
startServer(httpServer);
Person expected = new Person("Robert");
ResponseEnreplacedy<Person> enreplacedy = performGet("/person-response/mono-declared-as-object", JSON, Person.clreplaced);
replacedertThat(enreplacedy.getHeaders().getContentLength()).isEqualTo(17);
replacedertThat(enreplacedy.getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void personResponseBodyWithSingle(HttpServer httpServer) throws Exception {
startServer(httpServer);
Person expected = new Person("Robert");
ResponseEnreplacedy<Person> enreplacedy = performGet("/person-response/single", JSON, Person.clreplaced);
replacedertThat(enreplacedy.getHeaders().getContentLength()).isEqualTo(17);
replacedertThat(enreplacedy.getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void personResponseBodyWithMonoResponseEnreplacedy(HttpServer httpServer) throws Exception {
startServer(httpServer);
Person expected = new Person("Robert");
ResponseEnreplacedy<Person> enreplacedy = performGet("/person-response/mono-response-enreplacedy", JSON, Person.clreplaced);
replacedertThat(enreplacedy.getHeaders().getContentLength()).isEqualTo(17);
replacedertThat(enreplacedy.getBody()).isEqualTo(expected);
}
// SPR-16172
@ParameterizedHttpServerTest
public void personResponseBodyWithMonoResponseEnreplacedyXml(HttpServer httpServer) throws Exception {
startServer(httpServer);
String url = "/person-response/mono-response-enreplacedy-xml";
ResponseEnreplacedy<String> enreplacedy = performGet(url, new HttpHeaders(), String.clreplaced);
String actual = enreplacedy.getBody();
replacedertThat(enreplacedy.getHeaders().getContentLength()).isEqualTo(91);
replacedertThat(actual).isEqualTo(("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + "<person><name>Robert</name></person>"));
}
@ParameterizedHttpServerTest
public void personResponseBodyWithList(HttpServer httpServer) throws Exception {
startServer(httpServer);
List<?> expected = asList(new Person("Robert"), new Person("Marie"));
ResponseEnreplacedy<List<Person>> enreplacedy = performGet("/person-response/list", JSON, PERSON_LIST);
replacedertThat(enreplacedy.getHeaders().getContentLength()).isEqualTo(36);
replacedertThat(enreplacedy.getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void personResponseBodyWithPublisher(HttpServer httpServer) throws Exception {
startServer(httpServer);
List<?> expected = asList(new Person("Robert"), new Person("Marie"));
ResponseEnreplacedy<List<Person>> enreplacedy = performGet("/person-response/publisher", JSON, PERSON_LIST);
replacedertThat(enreplacedy.getHeaders().getContentLength()).isEqualTo(-1);
replacedertThat(enreplacedy.getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void personResponseBodyWithFlux(HttpServer httpServer) throws Exception {
startServer(httpServer);
List<?> expected = asList(new Person("Robert"), new Person("Marie"));
replacedertThat(performGet("/person-response/flux", JSON, PERSON_LIST).getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void personResponseBodyWithObservable(HttpServer httpServer) throws Exception {
startServer(httpServer);
List<?> expected = asList(new Person("Robert"), new Person("Marie"));
replacedertThat(performGet("/person-response/observable", JSON, PERSON_LIST).getBody()).isEqualTo(expected);
}
@ParameterizedHttpServerTest
public void resource(HttpServer httpServer) throws Exception {
startServer(httpServer);
ResponseEnreplacedy<byte[]> response = performGet("/resource", new HttpHeaders(), byte[].clreplaced);
replacedertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(response.hasBody()).isTrue();
replacedertThat(response.getHeaders().getContentLength()).isEqualTo(951);
replacedertThat(response.getBody().length).isEqualTo(951);
replacedertThat(response.getHeaders().getContentType()).isEqualTo(new MediaType("image", "png"));
}
@ParameterizedHttpServerTest
public void personTransform(HttpServer httpServer) throws Exception {
startServer(httpServer);
replacedertThat(performPost("/person-transform/person", JSON, new Person("Robert"), JSON, Person.clreplaced).getBody()).isEqualTo(new Person("ROBERT"));
}
@ParameterizedHttpServerTest
public void personTransformWithCompletableFuture(HttpServer httpServer) throws Exception {
startServer(httpServer);
replacedertThat(performPost("/person-transform/completable-future", JSON, new Person("Robert"), JSON, Person.clreplaced).getBody()).isEqualTo(new Person("ROBERT"));
}
@ParameterizedHttpServerTest
public void personTransformWithMono(HttpServer httpServer) throws Exception {
startServer(httpServer);
replacedertThat(performPost("/person-transform/mono", JSON, new Person("Robert"), JSON, Person.clreplaced).getBody()).isEqualTo(new Person("ROBERT"));
}
// SPR-16759
@ParameterizedHttpServerTest
public void personTransformWithMonoAndXml(HttpServer httpServer) throws Exception {
startServer(httpServer);
replacedertThat(performPost("/person-transform/mono", MediaType.APPLICATION_XML, new Person("Robert"), MediaType.APPLICATION_XML, Person.clreplaced).getBody()).isEqualTo(new Person("ROBERT"));
}
@ParameterizedHttpServerTest
public void personTransformWithSingle(HttpServer httpServer) throws Exception {
startServer(httpServer);
replacedertThat(performPost("/person-transform/single", JSON, new Person("Robert"), JSON, Person.clreplaced).getBody()).isEqualTo(new Person("ROBERT"));
}
@ParameterizedHttpServerTest
public void personTransformWithRxJava2Single(HttpServer httpServer) throws Exception {
startServer(httpServer);
replacedertThat(performPost("/person-transform/rxjava2-single", JSON, new Person("Robert"), JSON, Person.clreplaced).getBody()).isEqualTo(new Person("ROBERT"));
}
@ParameterizedHttpServerTest
public void personTransformWithRxJava2Maybe(HttpServer httpServer) throws Exception {
startServer(httpServer);
replacedertThat(performPost("/person-transform/rxjava2-maybe", JSON, new Person("Robert"), JSON, Person.clreplaced).getBody()).isEqualTo(new Person("ROBERT"));
}
@ParameterizedHttpServerTest
public void personTransformWithPublisher(HttpServer httpServer) throws Exception {
startServer(httpServer);
List<?> req = asList(new Person("Robert"), new Person("Marie"));
List<?> res = asList(new Person("ROBERT"), new Person("MARIE"));
replacedertThat(performPost("/person-transform/publisher", JSON, req, JSON, PERSON_LIST).getBody()).isEqualTo(res);
}
@ParameterizedHttpServerTest
public void personTransformWithFlux(HttpServer httpServer) throws Exception {
startServer(httpServer);
List<?> req = asList(new Person("Robert"), new Person("Marie"));
List<?> res = asList(new Person("ROBERT"), new Person("MARIE"));
replacedertThat(performPost("/person-transform/flux", JSON, req, JSON, PERSON_LIST).getBody()).isEqualTo(res);
}
@ParameterizedHttpServerTest
public void personTransformWithObservable(HttpServer httpServer) throws Exception {
startServer(httpServer);
List<?> req = asList(new Person("Robert"), new Person("Marie"));
List<?> res = asList(new Person("ROBERT"), new Person("MARIE"));
replacedertThat(performPost("/person-transform/observable", JSON, req, JSON, PERSON_LIST).getBody()).isEqualTo(res);
}
@ParameterizedHttpServerTest
public void personTransformWithRxJava2Observable(HttpServer httpServer) throws Exception {
startServer(httpServer);
List<?> req = asList(new Person("Robert"), new Person("Marie"));
List<?> res = asList(new Person("ROBERT"), new Person("MARIE"));
replacedertThat(performPost("/person-transform/rxjava2-observable", JSON, req, JSON, PERSON_LIST).getBody()).isEqualTo(res);
}
@ParameterizedHttpServerTest
public void personTransformWithFlowable(HttpServer httpServer) throws Exception {
startServer(httpServer);
List<?> req = asList(new Person("Robert"), new Person("Marie"));
List<?> res = asList(new Person("ROBERT"), new Person("MARIE"));
replacedertThat(performPost("/person-transform/flowable", JSON, req, JSON, PERSON_LIST).getBody()).isEqualTo(res);
}
@ParameterizedHttpServerTest
public void personCreateWithPublisherJson(HttpServer httpServer) throws Exception {
startServer(httpServer);
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/publisher", JSON, asList(new Person("Robert"), new Person("Marie")), null, Void.clreplaced);
replacedertThat(enreplacedy.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(2);
}
@ParameterizedHttpServerTest
public void personCreateWithPublisherXml(HttpServer httpServer) throws Exception {
startServer(httpServer);
People people = new People(new Person("Robert"), new Person("Marie"));
ResponseEnreplacedy<Void> response = performPost("/person-create/publisher", APPLICATION_XML, people, null, Void.clreplaced);
replacedertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(2);
}
@ParameterizedHttpServerTest
public void personCreateWithMono(HttpServer httpServer) throws Exception {
startServer(httpServer);
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/mono", JSON, new Person("Robert"), null, Void.clreplaced);
replacedertThat(enreplacedy.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(1);
}
@ParameterizedHttpServerTest
public void personCreateWithSingle(HttpServer httpServer) throws Exception {
startServer(httpServer);
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/single", JSON, new Person("Robert"), null, Void.clreplaced);
replacedertThat(enreplacedy.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(1);
}
@ParameterizedHttpServerTest
public void personCreateWithRxJava2Single(HttpServer httpServer) throws Exception {
startServer(httpServer);
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/rxjava2-single", JSON, new Person("Robert"), null, Void.clreplaced);
replacedertThat(enreplacedy.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(1);
}
@ParameterizedHttpServerTest
public void personCreateWithFluxJson(HttpServer httpServer) throws Exception {
startServer(httpServer);
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/flux", JSON, asList(new Person("Robert"), new Person("Marie")), null, Void.clreplaced);
replacedertThat(enreplacedy.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(2);
}
@ParameterizedHttpServerTest
public void personCreateWithFluxXml(HttpServer httpServer) throws Exception {
startServer(httpServer);
People people = new People(new Person("Robert"), new Person("Marie"));
ResponseEnreplacedy<Void> response = performPost("/person-create/flux", APPLICATION_XML, people, null, Void.clreplaced);
replacedertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(2);
}
@ParameterizedHttpServerTest
public void personCreateWithObservableJson(HttpServer httpServer) throws Exception {
startServer(httpServer);
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/observable", JSON, asList(new Person("Robert"), new Person("Marie")), null, Void.clreplaced);
replacedertThat(enreplacedy.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(2);
}
@ParameterizedHttpServerTest
public void personCreateWithRxJava2ObservableJson(HttpServer httpServer) throws Exception {
startServer(httpServer);
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/rxjava2-observable", JSON, asList(new Person("Robert"), new Person("Marie")), null, Void.clreplaced);
replacedertThat(enreplacedy.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(2);
}
@ParameterizedHttpServerTest
public void personCreateWithObservableXml(HttpServer httpServer) throws Exception {
startServer(httpServer);
People people = new People(new Person("Robert"), new Person("Marie"));
ResponseEnreplacedy<Void> response = performPost("/person-create/observable", APPLICATION_XML, people, null, Void.clreplaced);
replacedertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(2);
}
@ParameterizedHttpServerTest
public void personCreateWithRxJava2ObservableXml(HttpServer httpServer) throws Exception {
startServer(httpServer);
People people = new People(new Person("Robert"), new Person("Marie"));
String url = "/person-create/rxjava2-observable";
ResponseEnreplacedy<Void> response = performPost(url, APPLICATION_XML, people, null, Void.clreplaced);
replacedertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(2);
}
@ParameterizedHttpServerTest
public void personCreateWithFlowableJson(HttpServer httpServer) throws Exception {
startServer(httpServer);
ResponseEnreplacedy<Void> enreplacedy = performPost("/person-create/flowable", JSON, asList(new Person("Robert"), new Person("Marie")), null, Void.clreplaced);
replacedertThat(enreplacedy.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(2);
}
@ParameterizedHttpServerTest
public void personCreateWithFlowableXml(HttpServer httpServer) throws Exception {
startServer(httpServer);
People people = new People(new Person("Robert"), new Person("Marie"));
ResponseEnreplacedy<Void> response = performPost("/person-create/flowable", APPLICATION_XML, people, null, Void.clreplaced);
replacedertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(getApplicationContext().getBean(PersonCreateController.clreplaced).persons.size()).isEqualTo(2);
}
@Disabled
// gh-23791
@ParameterizedHttpServerTest
public void personCreateViaDefaultMethodWithGenerics(HttpServer httpServer) throws Exception {
startServer(httpServer);
ResponseEnreplacedy<String> enreplacedy = performPost("/23791", JSON, new Person("Robert"), null, String.clreplaced);
replacedertThat(enreplacedy.getStatusCode()).isEqualTo(HttpStatus.OK);
replacedertThat(enreplacedy.getBody()).isEqualTo("Person");
}
@Configuration
@EnableWebFlux
@ComponentScan(resourcePattern = "**/RequestMappingMessageConversionIntegrationTests$*.clreplaced")
@SuppressWarnings({ "unused", "WeakerAccess" })
static clreplaced WebConfig {
}
@RestController
@RequestMapping("/raw-response")
@SuppressWarnings("unused")
private static clreplaced RawResponseBodyController {
@GetMapping("/publisher")
public Publisher<ByteBuffer> getPublisher() {
DataBufferFactory dataBufferFactory = new DefaultDataBufferFactory();
Jackson2JsonEncoder encoder = new Jackson2JsonEncoder();
return encoder.encode(Mono.just(new Person("Robert")), dataBufferFactory, ResolvableType.forClreplaced(Person.clreplaced), JSON, Collections.emptyMap()).map(DataBuffer::asByteBuffer);
}
@GetMapping("/flux")
public Flux<ByteBuffer> getFlux() {
return Flux.just(ByteBuffer.wrap("Hello!".getBytes()));
}
@GetMapping("/mono")
public Mono<ByteBuffer> getMonoString() {
return Mono.just(ByteBuffer.wrap("Hello!".getBytes()));
}
@GetMapping("/observable")
public Observable<ByteBuffer> getObservable() {
return Observable.just(ByteBuffer.wrap("Hello!".getBytes()));
}
@GetMapping("/rxjava2-observable")
public io.reactivex.Observable<ByteBuffer> getRxJava2Observable() {
return io.reactivex.Observable.just(ByteBuffer.wrap("Hello!".getBytes()));
}
@GetMapping("/flowable")
public Flowable<ByteBuffer> getFlowable() {
return Flowable.just(ByteBuffer.wrap("Hello!".getBytes()));
}
}
@RestController
@RequestMapping("/person-response")
@SuppressWarnings("unused")
private static clreplaced PersonResponseBodyController {
@GetMapping("/person")
public Person getPerson() {
return new Person("Robert");
}
@GetMapping("/completable-future")
public CompletableFuture<Person> getCompletableFuture() {
return CompletableFuture.completedFuture(new Person("Robert"));
}
@GetMapping("/mono")
public Mono<Person> getMono() {
return Mono.just(new Person("Robert"));
}
@GetMapping("/mono-empty")
public Mono<Person> getMonoEmpty() {
return Mono.empty();
}
@GetMapping("/mono-declared-as-object")
public Object getMonoDeclaredAsObject() {
return Mono.just(new Person("Robert"));
}
@GetMapping("/single")
public Single<Person> getSingle() {
return Single.just(new Person("Robert"));
}
@GetMapping("/mono-response-enreplacedy")
public ResponseEnreplacedy<Mono<Person>> getMonoResponseEnreplacedy() {
Mono<Person> body = Mono.just(new Person("Robert"));
return ResponseEnreplacedy.ok(body);
}
@GetMapping("/mono-response-enreplacedy-xml")
public ResponseEnreplacedy<Mono<Person>> getMonoResponseEnreplacedyXml() {
Mono<Person> body = Mono.just(new Person("Robert"));
return ResponseEnreplacedy.ok().contentType(MediaType.APPLICATION_XML).body(body);
}
@GetMapping("/list")
public List<Person> getList() {
return asList(new Person("Robert"), new Person("Marie"));
}
@GetMapping("/publisher")
public Publisher<Person> getPublisher() {
return Flux.just(new Person("Robert"), new Person("Marie"));
}
@GetMapping("/flux")
public Flux<Person> getFlux() {
return Flux.just(new Person("Robert"), new Person("Marie"));
}
@GetMapping("/observable")
public Observable<Person> getObservable() {
return Observable.just(new Person("Robert"), new Person("Marie"));
}
}
@RestController
@SuppressWarnings("unused")
private static clreplaced ResourceController {
@GetMapping("/resource")
public Resource resource() {
return new ClreplacedPathResource("/org/springframework/web/reactive/spring.png");
}
}
@RestController
@RequestMapping("/person-transform")
@SuppressWarnings("unused")
private static clreplaced PersonTransformationController {
@PostMapping("/person")
public Person transformPerson(@RequestBody Person person) {
return new Person(person.getName().toUpperCase());
}
@PostMapping("/completable-future")
public CompletableFuture<Person> transformCompletableFuture(@RequestBody CompletableFuture<Person> personFuture) {
return personFuture.thenApply(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/mono")
public Mono<Person> transformMono(@RequestBody Mono<Person> personFuture) {
return personFuture.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/single")
public Single<Person> transformSingle(@RequestBody Single<Person> personFuture) {
return personFuture.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/rxjava2-single")
public io.reactivex.Single<Person> transformRxJava2Single(@RequestBody io.reactivex.Single<Person> personFuture) {
return personFuture.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/rxjava2-maybe")
public Maybe<Person> transformRxJava2Maybe(@RequestBody Maybe<Person> personFuture) {
return personFuture.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/publisher")
public Publisher<Person> transformPublisher(@RequestBody Publisher<Person> persons) {
return Flux.from(persons).map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/flux")
public Flux<Person> transformFlux(@RequestBody Flux<Person> persons) {
return persons.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/observable")
public Observable<Person> transformObservable(@RequestBody Observable<Person> persons) {
return persons.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/rxjava2-observable")
public io.reactivex.Observable<Person> transformObservable(@RequestBody io.reactivex.Observable<Person> persons) {
return persons.map(person -> new Person(person.getName().toUpperCase()));
}
@PostMapping("/flowable")
public Flowable<Person> transformFlowable(@RequestBody Flowable<Person> persons) {
return persons.map(person -> new Person(person.getName().toUpperCase()));
}
}
@RestController
@RequestMapping("/person-create")
@SuppressWarnings("unused")
private static clreplaced PersonCreateController {
final List<Person> persons = new ArrayList<>();
@PostMapping("/publisher")
public Publisher<Void> createWithPublisher(@RequestBody Publisher<Person> publisher) {
return Flux.from(publisher).doOnNext(persons::add).then();
}
@PostMapping("/mono")
public Mono<Void> createWithMono(@RequestBody Mono<Person> mono) {
return mono.doOnNext(persons::add).then();
}
@PostMapping("/single")
public Completable createWithSingle(@RequestBody Single<Person> single) {
return single.map(persons::add).toCompletable();
}
@PostMapping("/rxjava2-single")
public io.reactivex.Completable createWithRxJava2Single(@RequestBody io.reactivex.Single<Person> single) {
return single.map(persons::add).ignoreElement();
}
@PostMapping("/flux")
public Mono<Void> createWithFlux(@RequestBody Flux<Person> flux) {
return flux.doOnNext(persons::add).then();
}
@PostMapping("/observable")
public Observable<Void> createWithObservable(@RequestBody Observable<Person> observable) {
return observable.toList().doOnNext(persons::addAll).flatMap(doreplacedent -> Observable.empty());
}
@PostMapping("/rxjava2-observable")
public io.reactivex.Completable createWithRxJava2Observable(@RequestBody io.reactivex.Observable<Person> observable) {
return observable.toList().doOnSuccess(persons::addAll).ignoreElement();
}
@PostMapping("/flowable")
public io.reactivex.Completable createWithFlowable(@RequestBody Flowable<Person> flowable) {
return flowable.toList().doOnSuccess(persons::addAll).ignoreElement();
}
}
@XmlRootElement
@SuppressWarnings("unused")
private static clreplaced Person {
private String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClreplaced() != o.getClreplaced()) {
return false;
}
Person person = (Person) o;
return !(this.name != null ? !this.name.equals(person.name) : person.name != null);
}
@Override
public int hashCode() {
return this.name != null ? this.name.hashCode() : 0;
}
@Override
public String toString() {
return "Person{" + "name='" + name + '\'' + '}';
}
}
@XmlRootElement
@SuppressWarnings({ "WeakerAccess", "unused" })
private static clreplaced People {
private List<Person> persons = new ArrayList<>();
public People() {
}
public People(Person... persons) {
this.persons.addAll(Arrays.asList(persons));
}
@XmlElement
public List<Person> getPerson() {
return this.persons;
}
}
private interface Controller23791<E> {
@PostMapping("/23791")
default Mono<String> test(@RequestBody Mono<E> body) {
return body.map(value -> value.getClreplaced().getSimpleName());
}
}
@RestController
private static clreplaced ConcreteController23791 implements Controller23791<Person> {
}
}
19
View Source File : ServerRequestWrapperTests.java
License : Apache License 2.0
Project Creator : SourceHot
License : Apache License 2.0
Project Creator : SourceHot
@Test
public void bodyToMonoParameterizedTypeReference() {
Mono<String> result = Mono.just("foo");
ParameterizedTypeReference<String> reference = new ParameterizedTypeReference<String>() {
};
given(mockRequest.bodyToMono(reference)).willReturn(result);
replacedertThat(wrapper.bodyToMono(reference)).isSameAs(result);
}
See More Examples