Skip to content

Commit b0a56a5

Browse files
committed
Merge pull request #88 from GoogleCloudPlatform/flaky-test-fix
Fix flaky test
2 parents f655bc2 + 43757bb commit b0a56a5

File tree

4 files changed

+28
-13
lines changed

4 files changed

+28
-13
lines changed

managed_vms/sparkjava/src/main/java/com/google/appengine/sparkdemo/Main.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,15 @@ public class Main {
2727
*/
2828
public static void main(String[] args) {
2929
port(8080);
30+
String kind = "DemoUser";
31+
if (args != null) {
32+
for (String arg : args) {
33+
if (arg.startsWith("kind=")) {
34+
kind = arg.substring("kind=".length());
35+
}
36+
}
37+
}
3038
UserController userController =
31-
new UserController(new UserService(DatastoreOptions.defaultInstance().service()));
39+
new UserController(new UserService(DatastoreOptions.defaultInstance().service(), kind));
3240
}
3341
}

managed_vms/sparkjava/src/main/java/com/google/appengine/sparkdemo/UserService.java

+14-9
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
import com.google.gcloud.datastore.Datastore;
2222
import com.google.gcloud.datastore.Entity;
23-
import com.google.gcloud.datastore.FullEntity;
2423
import com.google.gcloud.datastore.Key;
2524
import com.google.gcloud.datastore.KeyFactory;
2625
import com.google.gcloud.datastore.Query;
@@ -31,19 +30,28 @@
3130

3231
public class UserService {
3332

34-
private static final String KINDNAME = "DEMO_USER";
35-
private Datastore datastore;
33+
private final Datastore datastore;
34+
private final KeyFactory keyFactory;
35+
private final String kind;
3636

37-
public UserService(Datastore datastore) {
37+
/**
38+
* Constructor for UserService.
39+
*
40+
* @param datastore gcloud-java Datastore service object to execute requests
41+
* @param kind the kind for the Datastore entities in this demo
42+
*/
43+
public UserService(Datastore datastore, String kind) {
3844
this.datastore = datastore;
45+
this.keyFactory = datastore.newKeyFactory().kind(kind);
46+
this.kind = kind;
3947
}
4048

4149
/**
4250
* Return a list of all users.
4351
*/
4452
public List<User> getAllUsers() {
4553
Query<Entity> query =
46-
Query.gqlQueryBuilder(Query.ResultType.ENTITY, "SELECT * FROM " + KINDNAME).build();
54+
Query.gqlQueryBuilder(Query.ResultType.ENTITY, "SELECT * FROM " + kind).build();
4755
QueryResults<Entity> results = datastore.run(query);
4856
List<User> users = new ArrayList<>();
4957
while (results.hasNext()) {
@@ -60,9 +68,8 @@ public List<User> getAllUsers() {
6068
public User createUser(String name, String email) {
6169
failIfInvalid(name, email);
6270
User user = new User(name, email);
63-
KeyFactory keyFactory = datastore.newKeyFactory().kind(KINDNAME);
6471
Key key = keyFactory.newKey(user.getId());
65-
FullEntity entity = Entity.builder(key)
72+
Entity entity = Entity.builder(key)
6673
.set("id", user.getId())
6774
.set("name", name)
6875
.set("email", email)
@@ -75,7 +82,6 @@ public User createUser(String name, String email) {
7582
* Delete a user from Cloud Datastore.
7683
*/
7784
public String deleteUser(String id) {
78-
KeyFactory keyFactory = datastore.newKeyFactory().kind(KINDNAME);
7985
Key key = keyFactory.newKey(id);
8086
datastore.delete(key);
8187
return "ok";
@@ -86,7 +92,6 @@ public String deleteUser(String id) {
8692
*/
8793
public User updateUser(String id, String name, String email) {
8894
failIfInvalid(name, email);
89-
KeyFactory keyFactory = datastore.newKeyFactory().kind(KINDNAME);
9095
Key key = keyFactory.newKey(id);
9196
Entity entity = datastore.get(key);
9297
if (entity == null) {

managed_vms/sparkjava/src/test/java/com/google/appengine/sparkdemo/UserControllerTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import java.io.IOException;
3535
import java.net.HttpURLConnection;
3636
import java.net.URL;
37+
import java.util.UUID;
3738

3839
public class UserControllerTest {
3940

@@ -43,7 +44,7 @@ public class UserControllerTest {
4344

4445
@BeforeClass
4546
public static void beforeClass() {
46-
Main.main(null);
47+
Main.main(new String[] {"kind=DemoUser" + UUID.randomUUID().toString().replaceAll("-", "")});
4748
Spark.awaitInitialization();
4849
}
4950

managed_vms/sparkjava/src/test/java/com/google/appengine/sparkdemo/UserServiceTest.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ public class UserServiceTest {
4747
private static final String USER_NAME = "myName";
4848
private static final String USER_EMAIL = "[email protected]";
4949
private static final User USER = new User(USER_ID, USER_NAME, USER_EMAIL);
50-
private static final Key USER_KEY = Key.builder(PROJECT_ID, "DEMO_USER", USER_ID).build();
50+
private static final String KIND = "DemoUser";
51+
private static final Key USER_KEY = Key.builder(PROJECT_ID, KIND, USER_ID).build();
5152
private static final Entity USER_RECORD = Entity.builder(USER_KEY)
5253
.set("id", USER_ID)
5354
.set("name", USER_NAME)
@@ -67,7 +68,7 @@ public static void beforeClass() throws IOException, InterruptedException {
6768
.host("http://localhost:" + PORT)
6869
.build()
6970
.service();
70-
userService = new UserService(datastore);
71+
userService = new UserService(datastore, KIND);
7172
}
7273

7374
@Before

0 commit comments

Comments
 (0)