Skip to content

Commit 3efd61c

Browse files
samples: Add sample snippets for IN, NOT_EQUALS, and NOT_IN (#749)
* test: add samples for IN, NOT_IN, and NOT_EQUALS. * Set up another Datastore client for tests that require a real backend. * Add a method for setting up a test entity. Fix linting errors. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent 9a779d2 commit 3efd61c

File tree

1 file changed

+102
-1
lines changed

1 file changed

+102
-1
lines changed

samples/snippets/src/test/java/com/google/datastore/snippets/ConceptsTest.java

Lines changed: 102 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.google.cloud.datastore.Cursor;
2828
import com.google.cloud.datastore.Datastore;
2929
import com.google.cloud.datastore.DatastoreException;
30+
import com.google.cloud.datastore.DatastoreOptions;
3031
import com.google.cloud.datastore.Entity;
3132
import com.google.cloud.datastore.EntityQuery;
3233
import com.google.cloud.datastore.FullEntity;
@@ -83,6 +84,7 @@ public class ConceptsTest {
8384
private static final FullEntity<IncompleteKey> TEST_FULL_ENTITY = FullEntity.newBuilder().build();
8485

8586
private Datastore datastore;
87+
private Datastore datastoreRealBackend;
8688
private KeyFactory keyFactory;
8789
private Key taskKey;
8890
private Entity testEntity;
@@ -123,6 +125,8 @@ public void setUp() {
123125
endDate = Timestamp.of(calendar.getTime());
124126
calendar.set(1999, DECEMBER, 31);
125127
includedDate = Timestamp.of(calendar.getTime());
128+
// Create a client for tests that require a real backend
129+
datastoreRealBackend = DatastoreOptions.getDefaultInstance().getService();
126130
}
127131

128132
/**
@@ -384,7 +388,7 @@ private void setUpQueryTests() {
384388
.set(
385389
"description",
386390
StringValue.newBuilder("Learn Cloud Datastore").setExcludeFromIndexes(true).build())
387-
.set("tag", "fun", "l", "programming")
391+
.set("tag", "fun", "l", "programming", "learn")
388392
.build());
389393
}
390394

@@ -1044,4 +1048,101 @@ public void testPropertyFilteringRunQuery() {
10441048
ImmutableMap.of("Task", ImmutableSet.of("priority", "tag"));
10451049
assertEquals(expected, propertiesByKind);
10461050
}
1051+
1052+
@Test
1053+
public void testEqQuerySorted() {
1054+
setUpQueryTests();
1055+
// [START datastore_eq_query_sorted]
1056+
Query<Entity> query =
1057+
Query.newEntityQueryBuilder()
1058+
.setKind("Task")
1059+
.setFilter(PropertyFilter.eq("tag", "learn"))
1060+
.setOrderBy(OrderBy.asc("tag"))
1061+
.build();
1062+
// [END datastore_eq_query_sorted]
1063+
assertValidQuery(query);
1064+
}
1065+
1066+
/** Start tests using a real backend. */
1067+
private <V> V assertValidQueryRealBackend(Query<V> query) {
1068+
QueryResults<V> results = datastoreRealBackend.run(query);
1069+
V result = results.next();
1070+
// assertFalse(results.hasNext());
1071+
return result;
1072+
}
1073+
1074+
private void setUpQueryTestsRealBackend() {
1075+
Key taskKey =
1076+
datastoreRealBackend
1077+
.newKeyFactory()
1078+
.setKind("Task")
1079+
.addAncestors(PathElement.of("TaskList", "default"))
1080+
.newKey("someTask");
1081+
datastoreRealBackend.put(
1082+
Entity.newBuilder(taskKey)
1083+
.set("category", "Personal")
1084+
.set("done", false)
1085+
.set("completed", false)
1086+
.set("priority", 4)
1087+
.set("created", includedDate)
1088+
.set("percent_complete", 10.0)
1089+
.set(
1090+
"description",
1091+
StringValue.newBuilder("Learn Cloud Datastore").setExcludeFromIndexes(true).build())
1092+
.set("tag", "fun", "l", "programming", "learn")
1093+
.build());
1094+
}
1095+
1096+
@Test
1097+
public void testInQuery() {
1098+
setUpQueryTestsRealBackend();
1099+
// [START datastore_in_query]
1100+
Query<Entity> query =
1101+
Query.newEntityQueryBuilder()
1102+
.setKind("Task")
1103+
.setFilter(PropertyFilter.in("tag", ListValue.of("learn", "study")))
1104+
.build();
1105+
// [END datastore_in_query]
1106+
assertValidQueryRealBackend(query);
1107+
}
1108+
1109+
@Test
1110+
public void testNotEqualsQuery() {
1111+
setUpQueryTestsRealBackend();
1112+
// [START datastore_not_equals_query]
1113+
Query<Entity> query =
1114+
Query.newEntityQueryBuilder()
1115+
.setKind("Task")
1116+
.setFilter(PropertyFilter.neq("category", "Work"))
1117+
.build();
1118+
// [END datastore_not_equals_query]
1119+
assertValidQueryRealBackend(query);
1120+
}
1121+
1122+
@Test
1123+
public void testNotInQuery() {
1124+
setUpQueryTestsRealBackend();
1125+
// [START datastore_not_in_query]
1126+
Query<Entity> query =
1127+
Query.newEntityQueryBuilder()
1128+
.setKind("Task")
1129+
.setFilter(PropertyFilter.not_in("category", ListValue.of("Work", "Chores", "School")))
1130+
.build();
1131+
// [END datastore_not_in_query]
1132+
assertValidQueryRealBackend(query);
1133+
}
1134+
1135+
@Test
1136+
public void testInQuerySorted() {
1137+
setUpQueryTestsRealBackend();
1138+
// [START datastore_in_query_sorted]
1139+
Query<Entity> query =
1140+
Query.newEntityQueryBuilder()
1141+
.setKind("Task")
1142+
.setFilter(PropertyFilter.in("tag", ListValue.of("learn", "study")))
1143+
.setOrderBy(OrderBy.asc("tag"))
1144+
.build();
1145+
// [END datastore_in_query_sorted]
1146+
assertValidQueryRealBackend(query);
1147+
}
10471148
}

0 commit comments

Comments
 (0)