Skip to content

Commit 9583e98

Browse files
authored
Add dataset_version property to new session endpoint (#192)
1 parent 83a7d26 commit 9583e98

3 files changed

Lines changed: 25 additions & 5 deletions

File tree

servers/jak/shared/common/main/java/com/couchbase/lite/mobiletest/TestApp.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,9 @@ public final TestContext getSession(@NonNull String client) {
155155
}
156156

157157
@NonNull
158-
public final TestContext newSession(@NonNull String client) {
158+
public final TestContext newSession(@NonNull String client, @Nullable String datasetVersion) {
159159
final TestContext ctxt = session;
160-
session = new TestContext(client);
160+
session = new TestContext(client, datasetVersion);
161161
if (ctxt != null) { ctxt.close(); }
162162
return session;
163163
}

servers/jak/shared/common/main/java/com/couchbase/lite/mobiletest/TestContext.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,13 @@
2828
public final class TestContext implements AutoCloseable {
2929
private static final String TAG = "CONTEXT";
3030

31+
private static final String DEFAULT_DATASET_VERSION = "3.2";
32+
33+
3134
@NonNull
3235
private final String client;
36+
@NonNull
37+
private final String datasetVersion;
3338
@Nullable
3439
private String testName;
3540
@Nullable
@@ -47,7 +52,11 @@ public final class TestContext implements AutoCloseable {
4752
@Nullable
4853
private Map<String, URLEndpointListener> openEndptListeners;
4954

50-
TestContext(@NonNull String client) { this.client = client; }
55+
TestContext(@NonNull String client, @Nullable String datasetVersion) {
56+
this.client = client;
57+
// !!! Unimplemented: this is completely ignored
58+
this.datasetVersion = (datasetVersion == null) ? DEFAULT_DATASET_VERSION : datasetVersion;
59+
}
5160

5261
@Override
5362
public void close() {
@@ -69,6 +78,9 @@ public void close() {
6978
@NonNull
7079
public String getClient() { return client; }
7180

81+
@NonNull
82+
public String getDatasetVersion() { return datasetVersion; }
83+
7284
public void setTestName(@Nullable String testName) { this.testName = testName; }
7385

7486
@Nullable

servers/jak/shared/common/main/java/com/couchbase/lite/mobiletest/endpoints/v1/Session.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,18 @@ public class Session {
4343
private static final String KEY_COLLECTIONS = "collections";
4444
private static final String KEY_DATASET = "dataset";
4545
private static final String KEY_ID = "id";
46+
private static final String KEY_DATASET_VERSION = "dataset_version";
4647
private static final String KEY_LOGGING = "logging";
48+
4749
private static final String KEY_URL = "url";
4850
private static final String KEY_TAG = "tag";
4951

52+
5053
private static final Set<String> LEGAL_SESSION_KEYS;
5154
static {
5255
final Set<String> l = new HashSet<>();
5356
l.add(KEY_ID);
57+
l.add(KEY_DATASET_VERSION);
5458
l.add(KEY_LOGGING);
5559
LEGAL_SESSION_KEYS = Collections.unmodifiableSet(l);
5660
}
@@ -103,7 +107,7 @@ public Map<String, Object> newSession(@NonNull String newClient, @NonNull TypedM
103107

104108
endSession(app);
105109

106-
final TestContext newCtxt = app.newSession(sessionId);
110+
final TestContext newCtxt = app.newSession(sessionId, req.getString(KEY_DATASET_VERSION));
107111
startSession(app, newCtxt);
108112

109113
final TypedMap logConfig = req.getMap(KEY_LOGGING);
@@ -121,11 +125,15 @@ public final Map<String, Object> reset(@NonNull String client, @NonNull TypedMap
121125

122126
final TestContext oldCtxt = app.getSession(client);
123127
String testName = oldCtxt.getTestName();
128+
124129
if (testName != null) { Log.p(TAG, "<<<<< END TEST: " + testName); }
125130

131+
// preserve the dataset version across resets
132+
final String datasetVersion = oldCtxt.getDatasetVersion();
133+
126134
endSession(app);
127135

128-
final TestContext newCtxt = app.newSession(client);
136+
final TestContext newCtxt = app.newSession(client, datasetVersion);
129137
final DatabaseService dbSvc = startSession(app, newCtxt);
130138
testName = req.getString(KEY_TEST_NAME);
131139
newCtxt.setTestName(testName);

0 commit comments

Comments
 (0)