Skip to content

Commit 29ebe62

Browse files
committed
fixed Mongo for external driver
1 parent d4092c7 commit 29ebe62

File tree

2 files changed

+76
-9
lines changed

2 files changed

+76
-9
lines changed

jdk_11_gradle/em/embedded/rest/reservations-api/src/main/java/em/embedded/reservationsapi/EmbeddedEvoMasterController.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,6 @@ public String getPackagePrefixesToCover() {
126126
public void resetStateOfSUT() {
127127
mongoClient.getDatabase(MONGODB_DATABASE_NAME).drop();
128128

129-
130-
// "bar123"
131-
// YmFyMTIz
132-
// $2a$10$b/SjlT3jexPDGci3EtmzpOnYwmjXrtzCQq5dn8rbMCgz7UZ/saylm
133129
mongoClient.getDatabase(MONGODB_DATABASE_NAME).createCollection("users");
134130

135131
MongoCollection<Document> users = mongoClient.getDatabase(MONGODB_DATABASE_NAME).getCollection("users");

jdk_11_gradle/em/external/rest/reservations-api/src/main/java/em/external/reservationsapi/ExternalEvoMasterController.java

Lines changed: 76 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,20 @@
22

33
import com.mongodb.client.MongoClient;
44
import com.mongodb.client.MongoClients;
5+
import com.mongodb.client.MongoCollection;
6+
import org.bson.Document;
7+
import org.bson.types.ObjectId;
58
import org.evomaster.client.java.controller.ExternalSutController;
69
import org.evomaster.client.java.controller.InstrumentedSutStarter;
710
import org.evomaster.client.java.controller.api.dto.AuthenticationDto;
11+
import org.evomaster.client.java.controller.api.dto.JsonTokenPostLoginDto;
812
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
913
import org.evomaster.client.java.sql.DbSpecification;
1014
import org.evomaster.client.java.controller.problem.ProblemInfo;
1115
import org.evomaster.client.java.controller.problem.RestProblem;
1216
import org.testcontainers.containers.GenericContainer;
1317

18+
import java.util.Arrays;
1419
import java.util.Collections;
1520
import java.util.List;
1621

@@ -61,12 +66,17 @@ public static void main(String[] args) {
6166
//https://www.mongodb.com/docs/drivers/java/sync/current/compatibility/
6267
private static final String MONGODB_VERSION = "4.4";
6368

64-
private static final String MONGODB_DATABASE_NAME = "Reservations";
69+
private static final String MONGODB_DATABASE_NAME = "reservations-api";
6570

66-
private static final GenericContainer mongodbContainer = new GenericContainer("mongo:" + MONGODB_VERSION)
67-
.withTmpFs(Collections.singletonMap("/data/db", "rw"))
71+
private static final GenericContainer mongodbContainer = new GenericContainer("bitnami/mongodb:" + MONGODB_VERSION)
72+
.withTmpFs(Collections.singletonMap("/bitnami/mongodb", "rw"))
73+
.withEnv("MONGODB_REPLICA_SET_MODE", "primary")
74+
.withEnv("ALLOW_EMPTY_PASSWORD", "yes")
6875
.withExposedPorts(MONGODB_PORT);
6976

77+
private static final String rawPassword = "bar123";
78+
private static final String hashedPassword = "$2a$10$nEDY5j731yXGnQHyM39PWurJWr1FukegmKYYarK5WOoAMmgDs6D3u";
79+
7080
private String mongoDbUrl;
7181

7282
private MongoClient mongoClient;
@@ -103,7 +113,8 @@ public String[] getInputParameters() {
103113
return new String[]{
104114
"--server.port=" + sutPort,
105115
"--databaseUrl="+mongoDbUrl,
106-
"--spring.data.mongodb.uri="+mongoDbUrl
116+
"--spring.data.mongodb.uri="+mongoDbUrl,
117+
"--app.jwt.secret=abcdef012345678901234567890123456789abcdef012345678901234567890123456789"
107118
};
108119
}
109120

@@ -145,6 +156,34 @@ public void postStart() {
145156
@Override
146157
public void resetStateOfSUT() {
147158
mongoClient.getDatabase(MONGODB_DATABASE_NAME).drop();
159+
160+
mongoClient.getDatabase(MONGODB_DATABASE_NAME).createCollection("users");
161+
162+
MongoCollection<Document> users = mongoClient.getDatabase(MONGODB_DATABASE_NAME).getCollection("users");
163+
users.insertMany(Arrays.asList(
164+
new Document()
165+
.append("_id", new ObjectId())
166+
.append("_class", "sk.cyrilgavala.reservationsApi.model.User")
167+
.append("username", "foo")
168+
.append("email", "foo@foo.com")
169+
.append("password", hashedPassword)
170+
.append("role", "USER"),
171+
new Document()
172+
.append("_id", new ObjectId())
173+
.append("_class", "sk.cyrilgavala.reservationsApi.model.User")
174+
.append("username", "bar")
175+
.append("email", "bar@foo.com")
176+
.append("password", hashedPassword)
177+
.append("role", "USER"),
178+
new Document()
179+
.append("_id", new ObjectId())
180+
.append("_class", "sk.cyrilgavala.reservationsApi.model.User")
181+
.append("username", "admin")
182+
.append("email", "admin@foo.com")
183+
.append("password", hashedPassword)
184+
.append("role", "ADMIN")
185+
));
186+
148187
}
149188

150189
@Override
@@ -180,7 +219,39 @@ public SutInfoDto.OutputFormat getPreferredOutputFormat() {
180219

181220
@Override
182221
public List<AuthenticationDto> getInfoForAuthentication() {
183-
return null;
222+
223+
return Arrays.asList(
224+
new AuthenticationDto() {{
225+
name = "admin";
226+
jsonTokenPostLogin = new JsonTokenPostLoginDto() {{
227+
userId = "admin";
228+
endpoint = "/api/user/login";
229+
jsonPayload = "{\"username\":\"admin\", \"password\":\""+rawPassword+"\"}";
230+
extractTokenField = "/accessToken";
231+
headerPrefix = "Bearer ";
232+
}};
233+
}},
234+
new AuthenticationDto() {{
235+
name = "foo";
236+
jsonTokenPostLogin = new JsonTokenPostLoginDto() {{
237+
userId = "foo";
238+
endpoint = "/api/user/login";
239+
jsonPayload = "{\"username\":\"foo\", \"password\":\""+rawPassword+"\"}";
240+
extractTokenField = "/accessToken";
241+
headerPrefix = "Bearer ";
242+
}};
243+
}},
244+
new AuthenticationDto() {{
245+
name = "bar";
246+
jsonTokenPostLogin = new JsonTokenPostLoginDto() {{
247+
userId = "bar";
248+
endpoint = "/api/user/login";
249+
jsonPayload = "{\"username\":\"bar\", \"password\":\""+rawPassword+"\"}";
250+
extractTokenField = "/accessToken";
251+
headerPrefix = "Bearer ";
252+
}};
253+
}}
254+
);
184255
}
185256

186257
@Override

0 commit comments

Comments
 (0)