33import static org .hamcrest .CoreMatchers .is ;
44import static org .junit .Assert .assertThat ;
55
6+ import java .util .List ;
7+
68import org .baeldung .config .MongoConfig ;
79import org .baeldung .model .User ;
810import org .junit .After ;
911import org .junit .Before ;
1012import org .junit .Test ;
1113import org .junit .runner .RunWith ;
1214import org .springframework .beans .factory .annotation .Autowired ;
15+ import org .springframework .data .domain .Page ;
16+ import org .springframework .data .domain .PageRequest ;
17+ import org .springframework .data .domain .Pageable ;
18+ import org .springframework .data .domain .Sort ;
1319import org .springframework .data .mongodb .core .MongoOperations ;
1420import org .springframework .data .mongodb .core .query .Criteria ;
1521import org .springframework .data .mongodb .core .query .Query ;
1622import org .springframework .test .context .ContextConfiguration ;
1723import org .springframework .test .context .junit4 .SpringJUnit4ClassRunner ;
1824
1925@ RunWith (SpringJUnit4ClassRunner .class )
20- @ ContextConfiguration (classes = { MongoConfig .class , UserRepository . class } )
26+ @ ContextConfiguration (classes = MongoConfig .class )
2127public class UserRepositoryIntegrationTest {
2228
2329 @ Autowired
@@ -36,13 +42,11 @@ public void tearDown() {
3642 mongoOps .dropCollection (User .class );
3743 }
3844
39- // tests
40-
4145 @ Test
4246 public void testInsert () {
43- final User user = new User ();
47+ User user = new User ();
4448 user .setName ("Jon" );
45- userRepository .insertUser (user );
49+ userRepository .insert (user );
4650
4751 assertThat (mongoOps .findOne (Query .query (Criteria .where ("name" ).is ("Jon" )), User .class ).getName (), is ("Jon" ));
4852 }
@@ -51,84 +55,84 @@ public void testInsert() {
5155 public void testSave () {
5256 User user = new User ();
5357 user .setName ("Jack" );
54- userRepository . insertUser (user );
58+ mongoOps . insert (user );
5559
5660 user = mongoOps .findOne (Query .query (Criteria .where ("name" ).is ("Jack" )), User .class );
57- final String id = user .getId ();
61+ String id = user .getId ();
5862
5963 user .setName ("Jim" );
60- userRepository .saveUser (user );
64+ userRepository .save (user );
6165
6266 assertThat (mongoOps .findOne (Query .query (Criteria .where ("id" ).is (id )), User .class ).getName (), is ("Jim" ));
6367 }
6468
6569 @ Test
66- public void testUpdateFirst () {
70+ public void testDelete () {
6771 User user = new User ();
68- user .setName ("Alex" );
69- mongoOps .insert (user );
70-
71- user = new User ();
72- user .setName ("Alex" );
72+ user .setName ("Benn" );
7373 mongoOps .insert (user );
7474
75- userRepository .updateFirstUser ( "Alex" , "James" );
75+ userRepository .delete ( user );
7676
77- assertThat (mongoOps .find (Query .query (Criteria .where ("name" ).is ("James" )), User .class ).size (), is (1 ));
78- assertThat (mongoOps .find (Query .query (Criteria .where ("name" ).is ("Alex" )), User .class ).size (), is (1 ));
77+ assertThat (mongoOps .find (Query .query (Criteria .where ("name" ).is ("Benn" )), User .class ).size (), is (0 ));
7978 }
8079
8180 @ Test
82- public void testUpdateMulti () {
81+ public void testFindOne () {
8382 User user = new User ();
84- user .setName ("Eugen" );
85- mongoOps .insert (user );
86-
87- user = new User ();
88- user .setName ("Eugen" );
83+ user .setName ("Chris" );
8984 mongoOps .insert (user );
9085
91- userRepository .updateMultiUser ("Eugen" , "Victor" );
86+ user = mongoOps .findOne (Query .query (Criteria .where ("name" ).is ("Chris" )), User .class );
87+ User foundUser = userRepository .findOne (user .getId ());
9288
93- assertThat (mongoOps .find (Query .query (Criteria .where ("name" ).is ("Victor" )), User .class ).size (), is (2 ));
94- assertThat (mongoOps .find (Query .query (Criteria .where ("name" ).is ("Eugen" )), User .class ).size (), is (0 ));
89+ assertThat (user .getName (), is (foundUser .getName ()));
9590 }
9691
9792 @ Test
98- public void testFindAndModify () {
93+ public void testExists () {
9994 User user = new User ();
100- user .setName ("Markus " );
95+ user .setName ("Harris " );
10196 mongoOps .insert (user );
10297
103- user = userRepository .findAndModifyUser ("Markus" , "Nick" );
98+ user = mongoOps .findOne (Query .query (Criteria .where ("name" ).is ("Harris" )), User .class );
99+ boolean isExists = userRepository .exists (user .getId ());
104100
105- assertThat (user .getName (), is ("Markus" ));
106- assertThat (mongoOps .find (Query .query (Criteria .where ("name" ).is ("Nick" )), User .class ).size (), is (1 ));
107- assertThat (mongoOps .find (Query .query (Criteria .where ("name" ).is ("Markus" )), User .class ).size (), is (0 ));
101+ assertThat (isExists , is (true ));
108102 }
109103
110104 @ Test
111- public void testUpsert () {
112- final User user = new User ();
113- user .setName ("Markus" );
105+ public void testFindAllWithSort () {
106+ User user = new User ();
107+ user .setName ("Brendan" );
108+ mongoOps .insert (user );
109+
110+ user = new User ();
111+ user .setName ("Adam" );
114112 mongoOps .insert (user );
115113
116- userRepository .upsertUser ( "Markus" , "Nick" );
114+ List < User > users = userRepository .findAll ( new Sort ( Sort . Direction . ASC , "name" ) );
117115
118- assertThat (mongoOps .find (Query .query (Criteria .where ("name" ).is ("Nick" )), User .class ).size (), is (1 ));
119- assertThat (mongoOps .find (Query .query (Criteria .where ("name" ).is ("Markus" )), User .class ).size (), is (0 ));
116+ assertThat (users .size (), is (2 ));
117+ assertThat (users .get (0 ).getName (), is ("Adam" ));
118+ assertThat (users .get (1 ).getName (), is ("Brendan" ));
120119 }
121120
122121 @ Test
123- public void testRemove () {
124- final User user = new User ();
125- user .setName ("Benn " );
122+ public void testFindAllWithPageable () {
123+ User user = new User ();
124+ user .setName ("Brendan " );
126125 mongoOps .insert (user );
127126
128- assertThat (mongoOps .find (Query .query (Criteria .where ("name" ).is ("Benn" )), User .class ).size (), is (1 ));
127+ user = new User ();
128+ user .setName ("Adam" );
129+ mongoOps .insert (user );
129130
130- userRepository . removeUser ( user );
131+ Pageable pageableRequest = new PageRequest ( 0 , 2 );
131132
132- assertThat (mongoOps .find (Query .query (Criteria .where ("name" ).is ("Benn" )), User .class ).size (), is (0 ));
133+ Page <User > users = userRepository .findAll (pageableRequest );
134+
135+ assertThat (users .getTotalPages (), is (1 ));
136+ assertThat (users .iterator ().next ().getName (), is ("Brendan" ));
133137 }
134138}
0 commit comments