diff --git a/vavr/pom.xml b/vavr/pom.xml index 5356417b3efd..cbf2a37ec9bf 100644 --- a/vavr/pom.xml +++ b/vavr/pom.xml @@ -6,10 +6,11 @@ 1.0 vavr - - com.baeldung - parent-modules - 1.0.0-SNAPSHOT + + org.springframework.boot + spring-boot-starter-parent + 2.0.0.BUILD-SNAPSHOT + @@ -24,9 +25,36 @@ junit ${junit.version} + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + com.h2database + h2 + + + + org.springframework.boot + spring-boot-starter-test + + + + + spring-snapshot + Spring Snapshot Repository + https://repo.spring.io/snapshot + + true + + + + 1.8 0.9.0 4.12 diff --git a/vavr/src/main/java/com/baeldung/Application.java b/vavr/src/main/java/com/baeldung/Application.java new file mode 100644 index 000000000000..d58049fb352b --- /dev/null +++ b/vavr/src/main/java/com/baeldung/Application.java @@ -0,0 +1,11 @@ +package com.baeldung; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} diff --git a/vavr/src/main/java/com/baeldung/repositories/VavrUserRepository.java b/vavr/src/main/java/com/baeldung/repositories/VavrUserRepository.java new file mode 100644 index 000000000000..a3dd7937f786 --- /dev/null +++ b/vavr/src/main/java/com/baeldung/repositories/VavrUserRepository.java @@ -0,0 +1,18 @@ +package com.baeldung.repositories; + +import org.springframework.data.repository.Repository; + +import com.baeldung.vavr.User; + +import io.vavr.collection.Seq; +import io.vavr.control.Option; + +public interface VavrUserRepository extends Repository { + + Option findById(long id); + + Seq findByName(String name); + + User save(User user); + +} diff --git a/vavr/src/main/java/com/baeldung/vavr/User.java b/vavr/src/main/java/com/baeldung/vavr/User.java new file mode 100644 index 000000000000..69dd9aea24f8 --- /dev/null +++ b/vavr/src/main/java/com/baeldung/vavr/User.java @@ -0,0 +1,32 @@ +package com.baeldung.vavr; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +public class User { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + private String name; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/vavr/src/test/java/com/baeldung/vavr/repositories/VavrRepositoryIntegrationTest.java b/vavr/src/test/java/com/baeldung/vavr/repositories/VavrRepositoryIntegrationTest.java new file mode 100644 index 000000000000..c2e9f377dd7d --- /dev/null +++ b/vavr/src/test/java/com/baeldung/vavr/repositories/VavrRepositoryIntegrationTest.java @@ -0,0 +1,47 @@ +package com.baeldung.vavr.repositories; + +import com.baeldung.Application; +import com.baeldung.repositories.VavrUserRepository; +import com.baeldung.vavr.User; + +import io.vavr.collection.Seq; +import io.vavr.control.Option; + +import org.junit.Test; +import org.junit.Before; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.Assert.*; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = Application.class) +public class VavrRepositoryIntegrationTest { + + @Autowired + private VavrUserRepository userRepository; + + @Before + public void setup() { + User user1 = new User(); + user1.setName("John"); + User user2 = new User(); + user2.setName("John"); + + userRepository.save(user1); + userRepository.save(user2); + } + + @Test + public void whenAddUsers_thenGetUsers() { + Option user = userRepository.findById(1L); + assertFalse(user.isEmpty()); + assertTrue(user.get().getName().equals("John")); + + Seq users = userRepository.findByName("John"); + assertEquals(2, users.size()); + } + +}