Skip to content

Commit 9f34f34

Browse files
committed
add some more fine grained tests
1 parent 229fc25 commit 9f34f34

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

google-cloud-datastore/src/main/java/com/google/cloud/datastore/models/PlanSummary.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,19 @@
1919
import com.google.api.core.InternalApi;
2020
import com.google.cloud.Structs;
2121
import com.google.common.base.Objects;
22-
import java.util.ArrayList;
2322
import java.util.List;
2423
import java.util.Map;
24+
import java.util.stream.Collectors;
2525

2626
/** Model class for {@link com.google.datastore.v1.PlanSummary} */
2727
@BetaApi
2828
public class PlanSummary {
29-
private final List<Map<String, Object>> indexesUsed = new ArrayList<>();
29+
private final List<Map<String, Object>> indexesUsed;
3030

3131
@InternalApi
3232
public PlanSummary(com.google.datastore.v1.PlanSummary proto) {
33-
proto
34-
.getIndexesUsedList()
35-
.forEach(indexesUsed -> this.indexesUsed.add(Structs.asMap(indexesUsed)));
33+
this.indexesUsed =
34+
proto.getIndexesUsedList().stream().map(Structs::asMap).collect(Collectors.toList());
3635
}
3736

3837
/** Returns the indexes selected for the query. */

google-cloud-datastore/src/test/java/com/google/cloud/datastore/it/ITDatastoreTest.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ public void testQueryProfile() {
394394
Truth.assertThat(results.hasNext()).isTrue();
395395
Truth.assertThat(results.getExplainMetrics().isPresent()).isTrue();
396396
assertPlanSummary(results.getExplainMetrics().get().getPlanSummary());
397-
assertExecutionStats(results.getExplainMetrics().get().getExecutionStats().get());
397+
assertExecutionStats(results.getExplainMetrics().get().getExecutionStats().get(), 2, 2, "2");
398398

399399
QueryResults<Entity> results2 =
400400
datastore.run(simpleOrQuery, ExplainOptions.newBuilder().build());
@@ -421,7 +421,8 @@ public void testQueryProfile() {
421421
Truth.assertThat(resultsAggregation.size() > 0).isTrue();
422422

423423
assertPlanSummary(resultsAggregation.getExplainMetrics().get().getPlanSummary());
424-
assertExecutionStats(resultsAggregation.getExplainMetrics().get().getExecutionStats().get());
424+
assertExecutionStats(
425+
resultsAggregation.getExplainMetrics().get().getExecutionStats().get(), 1, 1, "2");
425426

426427
AggregationQuery aggregationQuery2 =
427428
Query.newAggregationQueryBuilder().over(simpleOrQuery).addAggregation(count()).build();
@@ -569,7 +570,7 @@ public void testTransactionExplainOptionsAnalyze() {
569570

570571
ExplainMetrics explainMetrics = baseResults.getExplainMetrics().get();
571572
assertPlanSummary(explainMetrics.getPlanSummary());
572-
assertExecutionStats(explainMetrics.getExecutionStats().get());
573+
assertExecutionStats(explainMetrics.getExecutionStats().get(), 1, 1, "1");
573574

574575
baseTransaction.add(ENTITY3);
575576
baseTransaction.commit();
@@ -585,7 +586,7 @@ public void testTransactionExplainOptionsAnalyze() {
585586
assertTrue(results.size() > 0);
586587

587588
assertPlanSummary(results.getExplainMetrics().get().getPlanSummary());
588-
assertExecutionStats(results.getExplainMetrics().get().getExecutionStats().get());
589+
assertExecutionStats(results.getExplainMetrics().get().getExecutionStats().get(), 1, 1, "1");
589590
aggregationTransaction.commit();
590591
}
591592

@@ -625,19 +626,25 @@ private void assertPlanSummary(PlanSummary planSummary) {
625626
each -> Truth.assertThat(each.keySet()).containsAtLeast("properties", "query_scope"));
626627
}
627628

628-
private void assertExecutionStats(ExecutionStats executionStats) {
629+
private void assertExecutionStats(
630+
ExecutionStats executionStats,
631+
long expectedReadOps,
632+
long expectedResultsReturned,
633+
String expectedIndexEntriesScanned) {
629634
Map<String, Object> debugStats = executionStats.getDebugStats();
630635
Truth.assertThat(debugStats.keySet())
631636
.containsAtLeast("billing_details", "documents_scanned", "index_entries_scanned");
637+
Truth.assertThat(debugStats.get("index_entries_scanned"))
638+
.isEqualTo(expectedIndexEntriesScanned);
632639

633640
Duration executionDuration = executionStats.getExecutionDuration();
634641
Truth.assertThat(executionDuration).isIn(Range.greaterThan(Duration.ofMillis(0)));
635642

636643
long readOperations = executionStats.getReadOperations();
637-
Truth.assertThat(readOperations).isIn(Range.atLeast(1L));
644+
Truth.assertThat(readOperations).isEqualTo(expectedReadOps);
638645

639646
long resultsReturned = executionStats.getResultsReturned();
640-
Truth.assertThat(resultsReturned).isIn(Range.atLeast(1L));
647+
Truth.assertThat(resultsReturned).isEqualTo(expectedResultsReturned);
641648
}
642649

643650
@Test
@@ -1824,7 +1831,7 @@ private void testCountAggregationReadTimeWith(Consumer<AggregationQuery.Builder>
18241831
Long oldCount = getOnlyElement(results).getLong("total_count");
18251832
assertThat(oldCount).isEqualTo(2L);
18261833
assertPlanSummary(results.getExplainMetrics().get().getPlanSummary());
1827-
assertExecutionStats(results.getExplainMetrics().get().getExecutionStats().get());
1834+
assertExecutionStats(results.getExplainMetrics().get().getExecutionStats().get(), 1, 1, "2");
18281835
} finally {
18291836
datastore.delete(entity1.getKey(), entity2.getKey(), entity3.getKey());
18301837
}

google-cloud-datastore/src/test/java/com/google/cloud/datastore/models/PlanSummaryTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public class PlanSummaryTest {
3131
private final Struct struct2 =
3232
Struct.newBuilder()
3333
.putFields("key2", Value.newBuilder().setStringValue("val2").build())
34+
.putFields("key3", Value.newBuilder().setStringValue("val3").build())
3435
.build();
3536
private final com.google.datastore.v1.PlanSummary proto =
3637
com.google.datastore.v1.PlanSummary.newBuilder()
@@ -43,6 +44,7 @@ public class PlanSummaryTest {
4344
public void testModel() {
4445
Truth.assertThat(planSummary.getIndexesUsed())
4546
.isEqualTo(Lists.newArrayList(Structs.asMap(struct1), Structs.asMap(struct2)));
47+
Truth.assertThat(planSummary.getIndexesUsed().get(0).get("key")).isEqualTo("val");
4648
}
4749

4850
@Test

0 commit comments

Comments
 (0)