Build optimization 1.08.2017 (#2351)

* Refactor Spring-activiti module

* Refactor vavr module
This commit is contained in:
Grzegorz Piwowarek 2017-08-01 17:00:03 +02:00 committed by GitHub
parent 0c60af8437
commit ed92182fbf
14 changed files with 189 additions and 142 deletions

View File

@ -28,7 +28,6 @@
</properties> </properties>
<modules> <modules>
<module>spring-activiti</module>
<module>aws</module> <module>aws</module>
<module>akka-streams</module> <module>akka-streams</module>
<module>algorithms</module> <module>algorithms</module>
@ -129,6 +128,7 @@
<module>spark-java</module> <module>spark-java</module>
<!-- <module>spring-5</module>--> <!-- <module>spring-5</module>-->
<module>spring-5-mvc</module> <module>spring-5-mvc</module>
<module>spring-activiti</module>
<module>spring-akka</module> <module>spring-akka</module>
<module>spring-amqp</module> <module>spring-amqp</module>
<module>spring-all</module> <module>spring-all</module>

View File

@ -53,6 +53,23 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<forkCount>3</forkCount>
<reuseForks>true</reuseForks>
<excludes>
<exclude>**/*IntegrationTest.java</exclude>
<exclude>**/*LongRunningUnitTest.java</exclude>
<exclude>**/*ManualTest.java</exclude>
<exclude>**/JdbcTest.java</exclude>
<exclude>**/*LiveTest.java</exclude>
</excludes>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>

View File

@ -1,9 +1,5 @@
package com.example.activitiwithspring; package com.example.activitiwithspring;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -12,12 +8,15 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.stream.Collectors;
@RestController @RestController
public class ActivitiController { public class ActivitiController {
private static final Logger logger = LoggerFactory.getLogger(ActivitiController.class); private static final Logger logger = LoggerFactory.getLogger(ActivitiController.class);
@Autowired @Autowired
private RuntimeService runtimeService; private RuntimeService runtimeService;
@ -28,32 +27,30 @@ public class ActivitiController {
public String startProcess() { public String startProcess() {
runtimeService.startProcessInstanceByKey("my-process"); runtimeService.startProcessInstanceByKey("my-process");
return "Process started. Number of currently running process instances = " + runtimeService.createProcessInstanceQuery() return "Process started. Number of currently running process instances = " + runtimeService.createProcessInstanceQuery()
.count(); .count();
} }
@GetMapping("/get-tasks/{processInstanceId}") @GetMapping("/get-tasks/{processInstanceId}")
public List<TaskRepresentation> getTasks(@PathVariable String processInstanceId) { public List<TaskRepresentation> getTasks(@PathVariable String processInstanceId) {
List<Task> usertasks = taskService.createTaskQuery() List<Task> usertasks = taskService.createTaskQuery()
.processInstanceId(processInstanceId) .processInstanceId(processInstanceId)
.list(); .list();
List<TaskRepresentation> tasks = usertasks.stream().map(task -> { return usertasks.stream()
TaskRepresentation taskRepresentation = new TaskRepresentation(task.getId(), task.getName(), task.getProcessInstanceId()); .map(task -> new TaskRepresentation(task.getId(), task.getName(), task.getProcessInstanceId()))
return taskRepresentation; .collect(Collectors.toList());
}).collect(Collectors.toList());
return tasks;
} }
@GetMapping("/complete-task-A/{processInstanceId}") @GetMapping("/complete-task-A/{processInstanceId}")
public TaskRepresentation completeTaskA(@PathVariable String processInstanceId) { public TaskRepresentation completeTaskA(@PathVariable String processInstanceId) {
Task task = taskService.createTaskQuery() Task task = taskService.createTaskQuery()
.processInstanceId(processInstanceId) .processInstanceId(processInstanceId)
.singleResult(); .singleResult();
taskService.complete(task.getId()); taskService.complete(task.getId());
logger.info("Task completed"); logger.info("Task completed");
task = taskService.createTaskQuery() task = taskService.createTaskQuery()
.processInstanceId(processInstanceId) .processInstanceId(processInstanceId)
.singleResult(); .singleResult();
return new TaskRepresentation(task.getId(), task.getName(), task.getProcessInstanceId()); return new TaskRepresentation(task.getId(), task.getName(), task.getProcessInstanceId());
} }

View File

@ -5,7 +5,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication @SpringBootApplication
public class ActivitiWithSpringApplication { public class ActivitiWithSpringApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(ActivitiWithSpringApplication.class, args); SpringApplication.run(ActivitiWithSpringApplication.class, args);
} }

View File

@ -1,10 +1,6 @@
package com.example.activitiwithspring; package com.example.activitiwithspring;
import static org.junit.Assert.assertEquals; import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Arrays;
import java.util.List;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.junit.Before; import org.junit.Before;
@ -21,13 +17,16 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.WebApplicationContext;
import com.fasterxml.jackson.databind.ObjectMapper; import java.util.Arrays;
import java.util.List;
import static org.junit.Assert.assertEquals;
@RunWith(SpringJUnit4ClassRunner.class) @RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration @WebAppConfiguration
@SpringBootTest @SpringBootTest
public class ActivitiControllerTest { public class ActivitiControllerIntegrationTest {
private static final Logger logger = LoggerFactory.getLogger(ActivitiControllerTest.class); private static final Logger logger = LoggerFactory.getLogger(ActivitiControllerIntegrationTest.class);
private MockMvc mockMvc; private MockMvc mockMvc;
@Autowired @Autowired
@ -39,10 +38,10 @@ public class ActivitiControllerTest {
@Before @Before
public void setUp() { public void setUp() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac) this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac)
.build(); .build();
for (ProcessInstance instance : runtimeService.createProcessInstanceQuery() for (ProcessInstance instance : runtimeService.createProcessInstanceQuery()
.list()) { .list()) {
runtimeService.deleteProcessInstance(instance.getId(), "Reset Processes"); runtimeService.deleteProcessInstance(instance.getId(), "Reset Processes");
} }
} }
@ -51,21 +50,21 @@ public class ActivitiControllerTest {
public void givenProcess_whenStartProcess_thenIncreaseInProcessInstanceCount() throws Exception { public void givenProcess_whenStartProcess_thenIncreaseInProcessInstanceCount() throws Exception {
String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/start-process")) String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/start-process"))
.andReturn() .andReturn()
.getResponse() .getResponse()
.getContentAsString(); .getContentAsString();
assertEquals("Process started. Number of currently running process instances = 1", responseBody); assertEquals("Process started. Number of currently running process instances = 1", responseBody);
responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/start-process")) responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/start-process"))
.andReturn() .andReturn()
.getResponse() .getResponse()
.getContentAsString(); .getContentAsString();
assertEquals("Process started. Number of currently running process instances = 2", responseBody); assertEquals("Process started. Number of currently running process instances = 2", responseBody);
responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/start-process")) responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/start-process"))
.andReturn() .andReturn()
.getResponse() .getResponse()
.getContentAsString(); .getContentAsString();
assertEquals("Process started. Number of currently running process instances = 3", responseBody); assertEquals("Process started. Number of currently running process instances = 3", responseBody);
} }
@ -73,19 +72,19 @@ public class ActivitiControllerTest {
public void givenProcess_whenProcessInstance_thenReceivedRunningTask() throws Exception { public void givenProcess_whenProcessInstance_thenReceivedRunningTask() throws Exception {
this.mockMvc.perform(MockMvcRequestBuilders.get("/start-process")) this.mockMvc.perform(MockMvcRequestBuilders.get("/start-process"))
.andReturn() .andReturn()
.getResponse(); .getResponse();
ProcessInstance pi = runtimeService.createProcessInstanceQuery() ProcessInstance pi = runtimeService.createProcessInstanceQuery()
.orderByProcessInstanceId() .orderByProcessInstanceId()
.desc() .desc()
.list() .list()
.get(0); .get(0);
logger.info("process instance = " + pi.getId()); logger.info("process instance = " + pi.getId());
String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/get-tasks/" + pi.getId())) String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/get-tasks/" + pi.getId()))
.andReturn() .andReturn()
.getResponse() .getResponse()
.getContentAsString(); .getContentAsString();
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
List<TaskRepresentation> tasks = Arrays.asList(mapper.readValue(responseBody, TaskRepresentation[].class)); List<TaskRepresentation> tasks = Arrays.asList(mapper.readValue(responseBody, TaskRepresentation[].class));
@ -98,19 +97,19 @@ public class ActivitiControllerTest {
public void givenProcess_whenCompleteTaskA_thenReceivedNextTask() throws Exception { public void givenProcess_whenCompleteTaskA_thenReceivedNextTask() throws Exception {
this.mockMvc.perform(MockMvcRequestBuilders.get("/start-process")) this.mockMvc.perform(MockMvcRequestBuilders.get("/start-process"))
.andReturn() .andReturn()
.getResponse(); .getResponse();
ProcessInstance pi = runtimeService.createProcessInstanceQuery() ProcessInstance pi = runtimeService.createProcessInstanceQuery()
.orderByProcessInstanceId() .orderByProcessInstanceId()
.desc() .desc()
.list() .list()
.get(0); .get(0);
logger.info("process instance = " + pi.getId()); logger.info("process instance = " + pi.getId());
String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/complete-task-A/" + pi.getId())) String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/complete-task-A/" + pi.getId()))
.andReturn() .andReturn()
.getResponse() .getResponse()
.getContentAsString(); .getContentAsString();
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
TaskRepresentation task = mapper.readValue(responseBody, TaskRepresentation.class); TaskRepresentation task = mapper.readValue(responseBody, TaskRepresentation.class);

View File

@ -7,7 +7,7 @@ import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest @SpringBootTest
public class ActivitiWithSpringApplicationTests { public class ActivitiWithSpringApplicationIntegrationTest {
@Test @Test
public void contextLoads() { public void contextLoads() {

View File

@ -71,4 +71,26 @@
<junit.version>4.12</junit.version> <junit.version>4.12</junit.version>
</properties> </properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<forkCount>3</forkCount>
<reuseForks>true</reuseForks>
<excludes>
<exclude>**/*IntegrationTest.java</exclude>
<exclude>**/*LongRunningUnitTest.java</exclude>
<exclude>**/*ManualTest.java</exclude>
<exclude>**/JdbcTest.java</exclude>
<exclude>**/*LiveTest.java</exclude>
</excludes>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
</project> </project>

View File

@ -1,18 +1,24 @@
package com.baeldung.vavr; package com.baeldung.vavr;
import io.vavr.MatchError;
import io.vavr.control.Option;
import org.junit.Test;
import static io.vavr.API.$; import static io.vavr.API.$;
import static io.vavr.API.Case; import static io.vavr.API.Case;
import static io.vavr.API.Match; import static io.vavr.API.Match;
import static io.vavr.API.run; import static io.vavr.API.run;
import static io.vavr.Predicates.*; import static io.vavr.Predicates.allOf;
import static io.vavr.Predicates.anyOf;
import static io.vavr.Predicates.instanceOf;
import static io.vavr.Predicates.is;
import static io.vavr.Predicates.isIn;
import static io.vavr.Predicates.isNotNull;
import static io.vavr.Predicates.isNull;
import static io.vavr.Predicates.noneOf;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import org.junit.Test;
import io.vavr.MatchError;
import io.vavr.control.Option;
public class PatternMatchingUnitTest { public class PatternMatchingUnitTest {
@Test @Test
public void whenMatchesDefault_thenCorrect() { public void whenMatchesDefault_thenCorrect() {

View File

@ -9,7 +9,9 @@ import org.junit.Test;
import java.util.function.Predicate; import java.util.function.Predicate;
import static io.vavr.API.*; import static io.vavr.API.$;
import static io.vavr.API.Case;
import static io.vavr.API.Match;
public class PropertyBasedLongRunningUnitTest { public class PropertyBasedLongRunningUnitTest {

View File

@ -5,7 +5,9 @@ import io.vavr.Function1;
import io.vavr.Function2; import io.vavr.Function2;
import io.vavr.Function5; import io.vavr.Function5;
import io.vavr.Lazy; import io.vavr.Lazy;
import io.vavr.*; import io.vavr.Tuple;
import io.vavr.Tuple2;
import io.vavr.Tuple3;
import io.vavr.collection.List; import io.vavr.collection.List;
import io.vavr.collection.Seq; import io.vavr.collection.Seq;
import io.vavr.control.Option; import io.vavr.control.Option;
@ -13,23 +15,25 @@ import io.vavr.control.Try;
import io.vavr.control.Validation; import io.vavr.control.Validation;
import org.junit.Test; import org.junit.Test;
import com.baeldung.vavr.Person;
import com.baeldung.vavr.PersonValidator;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.function.BiFunction; import java.util.function.BiFunction;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.IntStream; import java.util.stream.IntStream;
import static io.vavr.API.*; import static io.vavr.API.$;
import static org.junit.Assert.*; import static io.vavr.API.Case;
import static io.vavr.API.Match;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
public class VavrUnitTest { public class VavrUnitTest {
@Test @Test
public void givenList_whenSorts_thenCorrect() { public void givenList_whenSorts_thenCorrect() {
List<Integer> sortedList = List.of(3, 2, 1) List<Integer> sortedList = List.of(3, 2, 1)
.sorted(); .sorted();
} }
/* /*
@ -123,7 +127,7 @@ public class VavrUnitTest {
@Test @Test
public void whenCreatesFunction_thenCorrect0() { public void whenCreatesFunction_thenCorrect0() {
Function0<String> getClazzName = () -> this.getClass() Function0<String> getClazzName = () -> this.getClass()
.getName(); .getName();
String clazzName = getClazzName.apply(); String clazzName = getClazzName.apply();
assertEquals("com.baeldung.vavr.VavrUnitTest", clazzName); assertEquals("com.baeldung.vavr.VavrUnitTest", clazzName);
} }
@ -257,7 +261,7 @@ public class VavrUnitTest {
public void whenSumsJava8List_thenCorrect() { public void whenSumsJava8List_thenCorrect() {
// Arrays.asList(1, 2, 3).stream().reduce((i, j) -> i + j); // Arrays.asList(1, 2, 3).stream().reduce((i, j) -> i + j);
int sum = IntStream.of(1, 2, 3) int sum = IntStream.of(1, 2, 3)
.sum(); .sum();
assertEquals(6, sum); assertEquals(6, sum);
} }
@ -273,8 +277,8 @@ public class VavrUnitTest {
@Test @Test
public void whenSumsVavrList_thenCorrect() { public void whenSumsVavrList_thenCorrect() {
int sum = List.of(1, 2, 3) int sum = List.of(1, 2, 3)
.sum() .sum()
.intValue(); .intValue();
assertEquals(6, sum); assertEquals(6, sum);
} }
@ -307,21 +311,21 @@ public class VavrUnitTest {
int input = 2; int input = 2;
String output; String output;
switch (input) { switch (input) {
case 0: case 0:
output = "zero"; output = "zero";
break; break;
case 1: case 1:
output = "one"; output = "one";
break; break;
case 2: case 2:
output = "two"; output = "two";
break; break;
case 3: case 3:
output = "three"; output = "three";
break; break;
default: default:
output = "unknown"; output = "unknown";
break; break;
} }
assertEquals("two", output); assertEquals("two", output);
} }

View File

@ -1,17 +1,5 @@
package com.baeldung.vavr.collections; package com.baeldung.vavr.collections;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.util.Comparator;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import org.junit.Test;
import io.vavr.Tuple; import io.vavr.Tuple;
import io.vavr.Tuple2; import io.vavr.Tuple2;
import io.vavr.collection.Array; import io.vavr.collection.Array;
@ -28,6 +16,17 @@ import io.vavr.collection.Stream;
import io.vavr.collection.TreeMap; import io.vavr.collection.TreeMap;
import io.vavr.collection.TreeSet; import io.vavr.collection.TreeSet;
import io.vavr.collection.Vector; import io.vavr.collection.Vector;
import org.junit.Test;
import java.util.Comparator;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
public class CollectionAPIUnitTest { public class CollectionAPIUnitTest {
@ -234,7 +233,7 @@ public class CollectionAPIUnitTest {
.toJavaMap(i -> Tuple.of(i, Integer.valueOf(i))); .toJavaMap(i -> Tuple.of(i, Integer.valueOf(i)));
assertEquals(new Integer(2), map.get("2")); assertEquals(new Integer(2), map.get("2"));
} }
@Test @Test
public void givenVavrList_whenCollected_thenCorrect() { public void givenVavrList_whenCollected_thenCorrect() {
java.util.Set<Integer> javaSet = List.of(1, 2, 3) java.util.Set<Integer> javaSet = List.of(1, 2, 3)

View File

@ -7,32 +7,32 @@ import static org.junit.Assert.assertEquals;
public class EitherUnitTest { public class EitherUnitTest {
@Test @Test
public void givenMarks_whenPassNumber_thenExpectNumber() { public void givenMarks_whenPassNumber_thenExpectNumber() {
Either<String, Integer> result = EitherDemo.computeWithEither(100); Either<String, Integer> result = EitherDemo.computeWithEither(100);
int marks = result.right() int marks = result.right()
.getOrElseThrow(x -> new IllegalStateException()); .getOrElseThrow(x -> new IllegalStateException());
assertEquals(100, marks); assertEquals(100, marks);
} }
@Test @Test
public void givenMarks_whenFailNumber_thenExpectErrorMesssage() { public void givenMarks_whenFailNumber_thenExpectErrorMesssage() {
Either<String, Integer> result = EitherDemo.computeWithEither(50); Either<String, Integer> result = EitherDemo.computeWithEither(50);
String error = result.left() String error = result.left()
.getOrNull(); .getOrNull();
assertEquals("Marks not acceptable", error); assertEquals("Marks not acceptable", error);
} }
@Test @Test
public void givenPassMarks_whenModified_thenExpectNumber() { public void givenPassMarks_whenModified_thenExpectNumber() {
Either<String, Integer> result = EitherDemo.computeWithEither(90); Either<String, Integer> result = EitherDemo.computeWithEither(90);
int marks = result.right() int marks = result.right()
.map(x -> x * 2) .map(x -> x * 2)
.get(); .get();
assertEquals(180, marks); assertEquals(180, marks);
} }
} }

View File

@ -3,16 +3,18 @@ package com.baeldung.vavr.exception.handling;
import com.baeldung.vavr.exception.handling.client.ClientException; import com.baeldung.vavr.exception.handling.client.ClientException;
import com.baeldung.vavr.exception.handling.client.HttpClient; import com.baeldung.vavr.exception.handling.client.HttpClient;
import com.baeldung.vavr.exception.handling.client.Response; import com.baeldung.vavr.exception.handling.client.Response;
import com.baeldung.vavr.exception.handling.VavrTry;
import io.vavr.collection.Stream; import io.vavr.collection.Stream;
import io.vavr.control.Option; import io.vavr.control.Option;
import io.vavr.control.Try; import io.vavr.control.Try;
import org.junit.Test; import org.junit.Test;
import static io.vavr.API.*; import static io.vavr.API.$;
import static io.vavr.API.Case;
import static io.vavr.API.Match;
import static io.vavr.Predicates.instanceOf; import static io.vavr.Predicates.instanceOf;
import static org.junit.Assert.*; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
public class VavrTryUnitTest { public class VavrTryUnitTest {
@ -26,8 +28,8 @@ public class VavrTryUnitTest {
//when //when
Try<Response> response = new VavrTry(httpClient).getResponse(); Try<Response> response = new VavrTry(httpClient).getResponse();
Integer chainedResult = response Integer chainedResult = response
.map(this::actionThatTakesResponse) .map(this::actionThatTakesResponse)
.getOrElse(defaultChainedResult); .getOrElse(defaultChainedResult);
Stream<String> stream = response.toStream().map(it -> it.id); Stream<String> stream = response.toStream().map(it -> it.id);
//then //then
@ -49,8 +51,8 @@ public class VavrTryUnitTest {
//when //when
Try<Response> response = new VavrTry(httpClient).getResponse(); Try<Response> response = new VavrTry(httpClient).getResponse();
Integer chainedResult = response Integer chainedResult = response
.map(this::actionThatTakesResponse) .map(this::actionThatTakesResponse)
.getOrElse(defaultChainedResult); .getOrElse(defaultChainedResult);
Option<Response> optionalResponse = response.toOption(); Option<Response> optionalResponse = response.toOption();
//then //then
@ -70,9 +72,9 @@ public class VavrTryUnitTest {
//when //when
Try<Response> recovered = new VavrTry(httpClient).getResponse() Try<Response> recovered = new VavrTry(httpClient).getResponse()
.recover(r -> Match(r).of( .recover(r -> Match(r).of(
Case($(instanceOf(ClientException.class)), defaultResponse) Case($(instanceOf(ClientException.class)), defaultResponse)
)); ));
//then //then
assertTrue(recovered.isFailure()); assertTrue(recovered.isFailure());
@ -92,10 +94,10 @@ public class VavrTryUnitTest {
//when //when
Try<Response> recovered = new VavrTry(httpClient).getResponse() Try<Response> recovered = new VavrTry(httpClient).getResponse()
.recover(r -> Match(r).of( .recover(r -> Match(r).of(
Case($(instanceOf(ClientException.class)), defaultResponse), Case($(instanceOf(ClientException.class)), defaultResponse),
Case($(instanceOf(IllegalArgumentException.class)), defaultResponse) Case($(instanceOf(IllegalArgumentException.class)), defaultResponse)
)); ));
//then //then
assertTrue(recovered.isSuccess()); assertTrue(recovered.isSuccess());
@ -106,7 +108,7 @@ public class VavrTryUnitTest {
return response.id.hashCode(); return response.id.hashCode();
} }
public int actionThatTakesTryResponse(Try<Response> response, int defaultTransformation){ public int actionThatTakesTryResponse(Try<Response> response, int defaultTransformation) {
return response.transform(responses -> response.map(it -> it.id.hashCode()).getOrElse(defaultTransformation)); return response.transform(responses -> response.map(it -> it.id.hashCode()).getOrElse(defaultTransformation));
} }

View File

@ -3,18 +3,18 @@ package com.baeldung.vavr.repositories;
import com.baeldung.Application; import com.baeldung.Application;
import com.baeldung.repositories.VavrUserRepository; import com.baeldung.repositories.VavrUserRepository;
import com.baeldung.vavr.User; import com.baeldung.vavr.User;
import io.vavr.collection.Seq; import io.vavr.collection.Seq;
import io.vavr.control.Option; import io.vavr.control.Option;
import org.junit.Test;
import org.junit.Before; import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import static org.junit.Assert.*; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class) @SpringBootTest(classes = Application.class)