1
+ package io .doubleloop .driverexplicit ;
2
+
3
+ import org .junit .jupiter .api .BeforeEach ;
4
+ import org .junit .jupiter .api .Test ;
5
+ import org .springframework .beans .factory .annotation .Autowired ;
6
+ import org .springframework .boot .test .autoconfigure .data .mongo .DataMongoTest ;
7
+ import org .springframework .boot .testcontainers .service .connection .ServiceConnection ;
8
+ import org .testcontainers .containers .MongoDBContainer ;
9
+ import org .testcontainers .junit .jupiter .Container ;
10
+ import org .testcontainers .junit .jupiter .Testcontainers ;
11
+
12
+ import static org .assertj .core .api .Assertions .assertThat ;
13
+
14
+ @ DataMongoTest
15
+ @ Testcontainers
16
+ class UserRepositoryTest {
17
+
18
+ @ Container
19
+ @ ServiceConnection
20
+ private static MongoDBContainer container = new MongoDBContainer ("mongo:latest" );
21
+
22
+ @ Autowired
23
+ private UserRepository userRepository ;
24
+
25
+ @ BeforeEach
26
+ void setUp () {
27
+ userRepository .deleteAll ();
28
+ }
29
+
30
+ @ Test
31
+ void findByEmailMatch () {
32
+ userRepository .
save (
new User (
"[email protected] " ,
"test" ));
33
+ userRepository .
save (
new User (
"[email protected] " ,
"test" ));
34
+
35
+ final var result =
userRepository .
findByEmail (
"[email protected] " );
36
+
37
+ assertThat (result .isPresent ()).isTrue ();
38
+ assertThat (
result .
get ().
getEmail ()).
isEqualTo (
"[email protected] " );
39
+ }
40
+
41
+ @ Test
42
+ void findByEmailNotMatch () {
43
+ userRepository .
save (
new User (
"[email protected] " ,
"test" ));
44
+
45
+ final var result =
userRepository .
findByEmail (
"[email protected] " );
46
+
47
+ assertThat (result .isEmpty ()).isTrue ();
48
+ }
49
+ }
0 commit comments