Skip to content

mongo tests updated #103

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -557,180 +557,4 @@ public void testContains() throws IOException {
|| document.toJson().contains("\"id\":\"testKey3\""));
});
}

@Test
public void test_bulkOperationOnArrayValue_addOperation() throws Exception {
datastore.createCollection(COLLECTION_NAME, null);
Collection collection = datastore.getCollection(COLLECTION_NAME);
Key key1 = new SingleValueKey("default", "testKey1");
Document key1InsertedDocument =
Utils.createDocument(
ImmutablePair.of("id", "testKey1"),
ImmutablePair.of(
"attributes",
Map.of(
"name",
"testKey1",
"labels",
ImmutablePair.of(
"valueList",
ImmutablePair.of(
"values",
List.of(ImmutablePair.of("value", Map.of("string", "Label1"))))))));
Document key1ExpectedDocument =
Utils.createDocument(
ImmutablePair.of("id", "testKey1"),
ImmutablePair.of(
"attributes",
Map.of(
"name",
"testKey1",
"labels",
ImmutablePair.of(
"valueList",
ImmutablePair.of(
"values",
List.of(
ImmutablePair.of("value", Map.of("string", "Label1")),
ImmutablePair.of("value", Map.of("string", "Label2")),
ImmutablePair.of("value", Map.of("string", "Label3"))))))));
collection.upsert(key1, key1InsertedDocument);

Key key2 = new SingleValueKey("default", "testKey2");
Document key2InsertedDocument =
Utils.createDocument(
ImmutablePair.of("id", "testKey2"),
ImmutablePair.of(
"attributes",
Map.of(
"name",
"testKey2",
"labels",
ImmutablePair.of(
"valueList",
ImmutablePair.of(
"values",
List.of(ImmutablePair.of("value", Map.of("string", "Label2"))))))));
Document key2ExpectedDocument =
Utils.createDocument(
ImmutablePair.of("id", "testKey2"),
ImmutablePair.of(
"attributes",
Map.of(
"name",
"testKey2",
"labels",
ImmutablePair.of(
"valueList",
ImmutablePair.of(
"values",
List.of(
ImmutablePair.of("value", Map.of("string", "Label2")),
ImmutablePair.of("value", Map.of("string", "Label3"))))))));
collection.upsert(key2, key2InsertedDocument);

Key key3 = new SingleValueKey("default", "testKey3");
Document key3InsertedDocument =
Utils.createDocument(
ImmutablePair.of("id", "testKey3"),
ImmutablePair.of("attributes", Map.of("name", "testKey3")));
Document key3ExpectedDocument =
Utils.createDocument(
ImmutablePair.of("id", "testKey3"),
ImmutablePair.of(
"attributes",
Map.of(
"name",
"testKey3",
"labels",
ImmutablePair.of(
"valueList",
ImmutablePair.of(
"values",
List.of(
ImmutablePair.of("value", Map.of("string", "Label2")),
ImmutablePair.of("value", Map.of("string", "Label3"))))))));
collection.upsert(key3, key3InsertedDocument);

Key key4 = new SingleValueKey("default", "testKey4");
Document key4InsertedDocument =
Utils.createDocument(
ImmutablePair.of("id", "testKey4"),
ImmutablePair.of(
"attributes",
Map.of(
"name",
"testKey4",
"labels",
ImmutablePair.of(
"valueList",
ImmutablePair.of(
"values",
List.of(
ImmutablePair.of("value", Map.of("string", "Label1")),
ImmutablePair.of("value", Map.of("string", "Label2")),
ImmutablePair.of("value", Map.of("string", "Label3"))))))));
Document key4ExpectedDocument =
Utils.createDocument(
ImmutablePair.of("id", "testKey4"),
ImmutablePair.of(
"attributes",
Map.of(
"name",
"testKey4",
"labels",
ImmutablePair.of(
"valueList",
ImmutablePair.of(
"values",
List.of(
ImmutablePair.of("value", Map.of("string", "Label1")),
ImmutablePair.of("value", Map.of("string", "Label2")),
ImmutablePair.of("value", Map.of("string", "Label3"))))))));
collection.upsert(key4, key4InsertedDocument);

Document label2Document =
Utils.createDocument(ImmutablePair.of("value", Map.of("string", "Label2")));
Document label3Document =
Utils.createDocument(ImmutablePair.of("value", Map.of("string", "Label3")));
List<Document> subDocuments = List.of(label2Document, label3Document);

BulkArrayValueUpdateRequest bulkArrayValueUpdateRequest =
new BulkArrayValueUpdateRequest(
Set.of(key1, key2, key3, key4),
"attributes.labels.valueList.values",
ADD,
subDocuments);
BulkUpdateResult bulkUpdateResult =
collection.bulkOperationOnArrayValue(bulkArrayValueUpdateRequest);
assertEquals(4, bulkUpdateResult.getUpdatedCount());

// get all documents
Query query = new Query();
Iterator<Document> results = collection.search(query);
List<Document> documents = new ArrayList<>();
while (results.hasNext()) {
documents.add(results.next());
}

assertEquals(4, documents.size());

Map<String, JsonNode> actualDocs = convertToMap(documents, "id");
Map<String, JsonNode> expectedDocs =
convertToMap(
List.of(
key1ExpectedDocument,
key2ExpectedDocument,
key3ExpectedDocument,
key4ExpectedDocument),
"id");

// Verify that the documents returned are as expected
for (Map.Entry<String, JsonNode> entry : actualDocs.entrySet()) {
String key = entry.getKey();
JsonNode attributesJsonNode = entry.getValue().get("attributes");
JsonNode expectedAttributesJsonNode = expectedDocs.get(key).get("attributes");
assertEquals(expectedAttributesJsonNode, attributesJsonNode);
}
}
}