Skip to content

Commit

Permalink
Improve map assertions for map entries
Browse files Browse the repository at this point in the history
Use `AbstractMapAssert#containsEntry` instead of
`assertThat(map.get(...)).isEqualTo(...)`. The `isEqualTo` version
produces less useful error message, because it does not know the map key
being asserted.
  • Loading branch information
findepi committed Nov 21, 2023
1 parent ab9871a commit ccf6b62
Show file tree
Hide file tree
Showing 24 changed files with 173 additions and 177 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ public void testSetTimeZoneStringLiteral()

Map<String, String> setSessionProperties = stateMachine.getSetSessionProperties();
assertThat(setSessionProperties).hasSize(1);
assertThat(setSessionProperties.get(TIME_ZONE_ID)).isEqualTo("America/Los_Angeles");
assertThat(setSessionProperties).containsEntry(TIME_ZONE_ID, "America/Los_Angeles");
}

@Test
Expand All @@ -129,7 +129,7 @@ public void testSetTimeZoneVarcharFunctionCall()

Map<String, String> setSessionProperties = stateMachine.getSetSessionProperties();
assertThat(setSessionProperties).hasSize(1);
assertThat(setSessionProperties.get(TIME_ZONE_ID)).isEqualTo("America/Los_Angeles");
assertThat(setSessionProperties).containsEntry(TIME_ZONE_ID, "America/Los_Angeles");
}

@Test
Expand Down Expand Up @@ -170,7 +170,7 @@ public void testSetTimeZoneIntervalLiteral()

Map<String, String> setSessionProperties = stateMachine.getSetSessionProperties();
assertThat(setSessionProperties).hasSize(1);
assertThat(setSessionProperties.get(TIME_ZONE_ID)).isEqualTo("+10:00");
assertThat(setSessionProperties).containsEntry(TIME_ZONE_ID, "+10:00");
}

@Test
Expand All @@ -190,7 +190,7 @@ public void testSetTimeZoneIntervalDayTimeTypeFunctionCall()

Map<String, String> setSessionProperties = stateMachine.getSetSessionProperties();
assertThat(setSessionProperties).hasSize(1);
assertThat(setSessionProperties.get(TIME_ZONE_ID)).isEqualTo("+08:00");
assertThat(setSessionProperties).containsEntry(TIME_ZONE_ID, "+08:00");
}

@Test
Expand Down Expand Up @@ -246,7 +246,7 @@ public void testSetTimeIntervalLiteralZoneHourToMinute()

Map<String, String> setSessionProperties = stateMachine.getSetSessionProperties();
assertThat(setSessionProperties).hasSize(1);
assertThat(setSessionProperties.get(TIME_ZONE_ID)).isEqualTo("-08:00");
assertThat(setSessionProperties).containsEntry(TIME_ZONE_ID, "-08:00");
}

private QueryStateMachine createQueryStateMachine(String query)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ private static void assertOutputBuffers(PipelinedOutputBuffers outputBuffers)
Map<OutputBufferId, Integer> buffers = outputBuffers.getBuffers();
assertThat(buffers.size()).isEqualTo(4);
for (int partition = 0; partition < 4; partition++) {
assertThat(buffers.get(new OutputBufferId(partition))).isEqualTo(Integer.valueOf(partition));
assertThat(buffers).containsEntry(new OutputBufferId(partition), Integer.valueOf(partition));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ private void assertPartialTranslation(Expression expression, List<Expression> su
Map<NodeRef<Expression>, ConnectorExpression> translation = extractPartialTranslations(expression, TEST_SESSION, TYPE_ANALYZER, TYPE_PROVIDER, PLANNER_CONTEXT);
assertThat(subexpressions.size()).isEqualTo(translation.size());
for (Expression subexpression : subexpressions) {
assertThat(translation.get(NodeRef.of(subexpression))).isEqualTo(translate(TEST_SESSION, subexpression, TYPE_PROVIDER, PLANNER_CONTEXT, TYPE_ANALYZER).get());
assertThat(translation).containsEntry(NodeRef.of(subexpression), translate(TEST_SESSION, subexpression, TYPE_PROVIDER, PLANNER_CONTEXT, TYPE_ANALYZER).get());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ private void testSplitVertically(double width, double height)
Map<Integer, Rectangle> leafNodes = treeCopy.getLeaves();
assertThat(leafNodes.size()).isEqualTo(2);
assertThat(leafNodes.keySet()).isEqualTo(ImmutableSet.of(0, 1));
assertThat(leafNodes.get(0)).isEqualTo(new Rectangle(0, 0, 4.5, 4));
assertThat(leafNodes.get(1)).isEqualTo(new Rectangle(4.5, 0, 9, 4));
assertThat(leafNodes).containsEntry(0, new Rectangle(0, 0, 4.5, 4));
assertThat(leafNodes).containsEntry(1, new Rectangle(4.5, 0, 9, 4));

assertPartitions(treeCopy, new Rectangle(1, 1, 2, 2), ImmutableSet.of(0));
assertPartitions(treeCopy, new Rectangle(1, 1, 5, 2), ImmutableSet.of(0, 1));
Expand Down Expand Up @@ -125,8 +125,8 @@ private void testSplitHorizontally(double width, double height)
Map<Integer, Rectangle> leafNodes = tree.getLeaves();
assertThat(leafNodes.size()).isEqualTo(2);
assertThat(leafNodes.keySet()).isEqualTo(ImmutableSet.of(0, 1));
assertThat(leafNodes.get(0)).isEqualTo(new Rectangle(0, 0, 4, 4.5));
assertThat(leafNodes.get(1)).isEqualTo(new Rectangle(0, 4.5, 4, 9));
assertThat(leafNodes).containsEntry(0, new Rectangle(0, 0, 4, 4.5));
assertThat(leafNodes).containsEntry(1, new Rectangle(0, 4.5, 4, 9));

// points inside and outside partitions
assertPartitions(tree, new Rectangle(1, 1, 1, 1), ImmutableSet.of(0));
Expand Down Expand Up @@ -172,12 +172,12 @@ private void testEvenDistribution(double width, double height)
Map<Integer, Rectangle> leafNodes = tree.getLeaves();
assertThat(leafNodes.size()).isEqualTo(6);
assertThat(leafNodes.keySet()).isEqualTo(ImmutableSet.of(0, 1, 2, 3, 4, 5));
assertThat(leafNodes.get(0)).isEqualTo(new Rectangle(0, 0, 2.5, 2.5));
assertThat(leafNodes.get(1)).isEqualTo(new Rectangle(0, 2.5, 2.5, 4));
assertThat(leafNodes.get(2)).isEqualTo(new Rectangle(2.5, 0, 4.5, 4));
assertThat(leafNodes.get(3)).isEqualTo(new Rectangle(4.5, 0, 7.5, 2.5));
assertThat(leafNodes.get(4)).isEqualTo(new Rectangle(4.5, 2.5, 7.5, 4));
assertThat(leafNodes.get(5)).isEqualTo(new Rectangle(7.5, 0, 9, 4));
assertThat(leafNodes).containsEntry(0, new Rectangle(0, 0, 2.5, 2.5));
assertThat(leafNodes).containsEntry(1, new Rectangle(0, 2.5, 2.5, 4));
assertThat(leafNodes).containsEntry(2, new Rectangle(2.5, 0, 4.5, 4));
assertThat(leafNodes).containsEntry(3, new Rectangle(4.5, 0, 7.5, 2.5));
assertThat(leafNodes).containsEntry(4, new Rectangle(4.5, 2.5, 7.5, 4));
assertThat(leafNodes).containsEntry(5, new Rectangle(7.5, 0, 9, 4));
}

@Test
Expand Down Expand Up @@ -208,15 +208,15 @@ private void testSkewedDistribution(double width, double height)
Map<Integer, Rectangle> leafNodes = tree.getLeaves();
assertThat(leafNodes.size()).isEqualTo(9);
assertThat(leafNodes.keySet()).isEqualTo(ImmutableSet.of(0, 1, 2, 3, 4, 5, 6, 7, 8));
assertThat(leafNodes.get(0)).isEqualTo(new Rectangle(0, 0, 1.5, 2.5));
assertThat(leafNodes.get(1)).isEqualTo(new Rectangle(1.5, 0, 3.5, 2.5));
assertThat(leafNodes.get(2)).isEqualTo(new Rectangle(0, 2.5, 3.5, 4));
assertThat(leafNodes.get(3)).isEqualTo(new Rectangle(3.5, 0, 5.1, 1.75));
assertThat(leafNodes.get(4)).isEqualTo(new Rectangle(3.5, 1.75, 5.1, 4));
assertThat(leafNodes.get(5)).isEqualTo(new Rectangle(5.1, 0, 5.9, 1.75));
assertThat(leafNodes.get(6)).isEqualTo(new Rectangle(5.9, 0, 9, 1.75));
assertThat(leafNodes.get(7)).isEqualTo(new Rectangle(5.1, 1.75, 7.5, 4));
assertThat(leafNodes.get(8)).isEqualTo(new Rectangle(7.5, 1.75, 9, 4));
assertThat(leafNodes).containsEntry(0, new Rectangle(0, 0, 1.5, 2.5));
assertThat(leafNodes).containsEntry(1, new Rectangle(1.5, 0, 3.5, 2.5));
assertThat(leafNodes).containsEntry(2, new Rectangle(0, 2.5, 3.5, 4));
assertThat(leafNodes).containsEntry(3, new Rectangle(3.5, 0, 5.1, 1.75));
assertThat(leafNodes).containsEntry(4, new Rectangle(3.5, 1.75, 5.1, 4));
assertThat(leafNodes).containsEntry(5, new Rectangle(5.1, 0, 5.9, 1.75));
assertThat(leafNodes).containsEntry(6, new Rectangle(5.9, 0, 9, 1.75));
assertThat(leafNodes).containsEntry(7, new Rectangle(5.1, 1.75, 7.5, 4));
assertThat(leafNodes).containsEntry(8, new Rectangle(7.5, 1.75, 9, 4));
}

@Test
Expand All @@ -242,16 +242,16 @@ private void testCantSplitVertically(double width, double height)
Map<Integer, Rectangle> leafNodes = tree.getLeaves();
assertThat(leafNodes.size()).isEqualTo(10);
assertThat(leafNodes.keySet()).isEqualTo(ImmutableSet.of(0, 1, 2, 3, 4, 5, 6, 7, 8, 9));
assertThat(leafNodes.get(0)).isEqualTo(new Rectangle(0, 0, 4.5, 0.5));
assertThat(leafNodes.get(1)).isEqualTo(new Rectangle(0, 0.5, 4.5, 1.5));
assertThat(leafNodes.get(2)).isEqualTo(new Rectangle(0, 1.5, 4.5, 2.5));
assertThat(leafNodes.get(3)).isEqualTo(new Rectangle(0, 2.5, 4.5, 3.5));
assertThat(leafNodes.get(4)).isEqualTo(new Rectangle(0, 3.5, 4.5, 4 + height));
assertThat(leafNodes.get(5)).isEqualTo(new Rectangle(4.5, 0, 9 + width, 0.5));
assertThat(leafNodes.get(6)).isEqualTo(new Rectangle(4.5, 0.5, 9 + width, 1.5));
assertThat(leafNodes.get(7)).isEqualTo(new Rectangle(4.5, 1.5, 9 + width, 2.5));
assertThat(leafNodes.get(8)).isEqualTo(new Rectangle(4.5, 2.5, 9 + width, 3.5));
assertThat(leafNodes.get(9)).isEqualTo(new Rectangle(4.5, 3.5, 9 + width, 4 + height));
assertThat(leafNodes).containsEntry(0, new Rectangle(0, 0, 4.5, 0.5));
assertThat(leafNodes).containsEntry(1, new Rectangle(0, 0.5, 4.5, 1.5));
assertThat(leafNodes).containsEntry(2, new Rectangle(0, 1.5, 4.5, 2.5));
assertThat(leafNodes).containsEntry(3, new Rectangle(0, 2.5, 4.5, 3.5));
assertThat(leafNodes).containsEntry(4, new Rectangle(0, 3.5, 4.5, 4 + height));
assertThat(leafNodes).containsEntry(5, new Rectangle(4.5, 0, 9 + width, 0.5));
assertThat(leafNodes).containsEntry(6, new Rectangle(4.5, 0.5, 9 + width, 1.5));
assertThat(leafNodes).containsEntry(7, new Rectangle(4.5, 1.5, 9 + width, 2.5));
assertThat(leafNodes).containsEntry(8, new Rectangle(4.5, 2.5, 9 + width, 3.5));
assertThat(leafNodes).containsEntry(9, new Rectangle(4.5, 3.5, 9 + width, 4 + height));
}

@Test
Expand All @@ -277,7 +277,7 @@ private void testCantSplit(double width, double height)
Map<Integer, Rectangle> leafNodes = tree.getLeaves();
assertThat(leafNodes.size()).isEqualTo(2);
assertThat(leafNodes.keySet()).isEqualTo(ImmutableSet.of(0, 1));
assertThat(leafNodes.get(0)).isEqualTo(new Rectangle(0, 0, 4.5, 4 + height));
assertThat(leafNodes.get(1)).isEqualTo(new Rectangle(4.5, 0, 9 + width, 4 + height));
assertThat(leafNodes).containsEntry(0, new Rectangle(0, 0, 4.5, 4 + height));
assertThat(leafNodes).containsEntry(1, new Rectangle(4.5, 0, 9 + width, 4 + height));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ public void testNewDirectoryPermissionsMapping()
HdfsConfig expected = new HdfsConfig()
.setNewDirectoryPermissions("skip");

assertThat(properties.get("hive.fs.new-directory-permissions")).isEqualTo(expected.getNewDirectoryPermissions());
assertThat(properties).containsEntry("hive.fs.new-directory-permissions", expected.getNewDirectoryPermissions());
assertThat(Optional.empty()).isEqualTo(expected.getNewDirectoryFsPermissions());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -1006,8 +1006,8 @@ public void testNoColumnStatsMixedCase()
assertThat(transactionLogAfterUpdate).hasSize(2);
AddFileEntry updateAddFileEntry = transactionLogAfterUpdate.get(1).getAdd();
DeltaLakeFileStatistics updateStats = updateAddFileEntry.getStats().orElseThrow();
assertThat(updateStats.getMinValues().orElseThrow().get("c_Int")).isEqualTo(2);
assertThat(updateStats.getMaxValues().orElseThrow().get("c_Int")).isEqualTo(11);
assertThat(updateStats.getMinValues().orElseThrow()).containsEntry("c_Int", 2);
assertThat(updateStats.getMaxValues().orElseThrow()).containsEntry("c_Int", 11);
assertThat(updateStats.getNullCount("c_Int").orElseThrow()).isEqualTo(1);
assertThat(updateStats.getNullCount("c_Str").orElseThrow()).isEqualTo(1);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,8 +200,9 @@ private void testAddNestedColumnWithColumnMappingMode(String columnMappingMode)

assertUpdate("ALTER TABLE " + tableName + " ADD COLUMN second_col row(a array(integer), b map(integer, integer), c row(field integer))");
MetadataEntry metadata = loadMetadataEntry(1, tableLocation);
assertThat(metadata.getConfiguration().get("delta.columnMapping.maxColumnId"))
.isEqualTo("6"); // +5 comes from second_col + second_col.a + second_col.b + second_col.c + second_col.c.field
assertThat(metadata.getConfiguration()).containsEntry(
"delta.columnMapping.maxColumnId",
"6"); // +5 comes from second_col + second_col.a + second_col.b + second_col.c + second_col.c.field

JsonNode schema = OBJECT_MAPPER.readTree(metadata.getSchemaString());
List<JsonNode> fields = ImmutableList.copyOf(schema.get("fields").elements());
Expand Down Expand Up @@ -301,8 +302,8 @@ private void testOptimizeWithColumnMappingMode(String columnMappingMode)
assertThat(transactionLog.get(4).getAdd()).isNotNull();
AddFileEntry addFileEntry = transactionLog.get(4).getAdd();
DeltaLakeFileStatistics stats = addFileEntry.getStats().orElseThrow();
assertThat(stats.getMinValues().orElseThrow().get(physicalName)).isEqualTo(10);
assertThat(stats.getMaxValues().orElseThrow().get(physicalName)).isEqualTo(20);
assertThat(stats.getMinValues().orElseThrow()).containsEntry(physicalName, 10);
assertThat(stats.getMaxValues().orElseThrow()).containsEntry(physicalName, 20);
assertThat(stats.getNullCount(physicalName).orElseThrow()).isEqualTo(1);

// Verify optimized parquet file contains the expected physical id and name
Expand Down Expand Up @@ -347,8 +348,7 @@ private void testDropColumnWithColumnMappingMode(String columnMappingMode)

assertUpdate("ALTER TABLE " + tableName + " ADD COLUMN second_col row(a array(integer), b map(integer, integer), c row(field integer))");
MetadataEntry metadata = loadMetadataEntry(1, tableLocation);
assertThat(metadata.getConfiguration().get("delta.columnMapping.maxColumnId"))
.isEqualTo("6"); // +5 comes from second_col + second_col.a + second_col.b + second_col.c + second_col.c.field
assertThat(metadata.getConfiguration()).containsEntry("delta.columnMapping.maxColumnId", "6"); // +5 comes from second_col + second_col.a + second_col.b + second_col.c + second_col.c.field
assertThat(metadata.getSchemaString())
.containsPattern("(delta\\.columnMapping\\.id.*?){6}")
.containsPattern("(delta\\.columnMapping\\.physicalName.*?){6}");
Expand Down Expand Up @@ -401,8 +401,7 @@ private void testRenameColumnWithColumnMappingMode(String columnMappingMode)

assertUpdate("ALTER TABLE " + tableName + " ADD COLUMN second_col row(a array(integer), b map(integer, integer), c row(field integer))");
MetadataEntry metadata = loadMetadataEntry(1, tableLocation);
assertThat(metadata.getConfiguration().get("delta.columnMapping.maxColumnId"))
.isEqualTo("6"); // +5 comes from second_col + second_col.a + second_col.b + second_col.c + second_col.c.field
assertThat(metadata.getConfiguration()).containsEntry("delta.columnMapping.maxColumnId", "6"); // +5 comes from second_col + second_col.a + second_col.b + second_col.c + second_col.c.field
assertThat(metadata.getSchemaString())
.containsPattern("(delta\\.columnMapping\\.id.*?){6}")
.containsPattern("(delta\\.columnMapping\\.physicalName.*?){6}");
Expand Down Expand Up @@ -522,8 +521,8 @@ public void testStatisticsWithColumnCaseSensitivity()
assertThat(transactionLog).hasSize(2);
AddFileEntry addFileEntry = transactionLog.get(1).getAdd();
DeltaLakeFileStatistics stats = addFileEntry.getStats().orElseThrow();
assertThat(stats.getMinValues().orElseThrow().get("UPPER_CASE")).isEqualTo(10);
assertThat(stats.getMaxValues().orElseThrow().get("UPPER_CASE")).isEqualTo(20);
assertThat(stats.getMinValues().orElseThrow()).containsEntry("UPPER_CASE", 10);
assertThat(stats.getMaxValues().orElseThrow()).containsEntry("UPPER_CASE", 20);
assertThat(stats.getNullCount("UPPER_CASE").orElseThrow()).isEqualTo(1);

assertUpdate("UPDATE " + tableName + " SET upper_case = upper_case + 10", 3);
Expand All @@ -532,8 +531,8 @@ public void testStatisticsWithColumnCaseSensitivity()
assertThat(transactionLogAfterUpdate).hasSize(3);
AddFileEntry updateAddFileEntry = transactionLogAfterUpdate.get(2).getAdd();
DeltaLakeFileStatistics updateStats = updateAddFileEntry.getStats().orElseThrow();
assertThat(updateStats.getMinValues().orElseThrow().get("UPPER_CASE")).isEqualTo(20);
assertThat(updateStats.getMaxValues().orElseThrow().get("UPPER_CASE")).isEqualTo(30);
assertThat(updateStats.getMinValues().orElseThrow()).containsEntry("UPPER_CASE", 20);
assertThat(updateStats.getMaxValues().orElseThrow()).containsEntry("UPPER_CASE", 30);
assertThat(updateStats.getNullCount("UPPER_CASE").orElseThrow()).isEqualTo(1);

assertQuery(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,7 @@ private void testCreateTableColumnMappingMode(Consumer<String> createTable)
String tableLocation = getTableLocation(tableName);
MetadataEntry metadata = loadMetadataEntry(0, Path.of(tableLocation));

assertThat(metadata.getConfiguration().get("delta.columnMapping.maxColumnId"))
.isEqualTo("3"); // 3 comes from a_int + a_row + a_row.x
assertThat(metadata.getConfiguration()).containsEntry("delta.columnMapping.maxColumnId", "3"); // 3 comes from a_int + a_row + a_row.x

JsonNode schema = OBJECT_MAPPER.readTree(metadata.getSchemaString());
List<JsonNode> fields = ImmutableList.copyOf(schema.get("fields").elements());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4218,8 +4218,8 @@ protected void doCreateTable(SchemaTableName tableName, HiveStorageFormat storag

// verify the node version and query ID in table
Table table = getMetastoreClient().getTable(tableName.getSchemaName(), tableName.getTableName()).get();
assertThat(table.getParameters().get(PRESTO_VERSION_NAME)).isEqualTo(TEST_SERVER_VERSION);
assertThat(table.getParameters().get(PRESTO_QUERY_ID_NAME)).isEqualTo(queryId);
assertThat(table.getParameters()).containsEntry(PRESTO_VERSION_NAME, TEST_SERVER_VERSION);
assertThat(table.getParameters()).containsEntry(PRESTO_QUERY_ID_NAME, queryId);

// verify basic statistics
HiveBasicStatistics statistics = getBasicStatisticsForTable(transaction, tableName);
Expand Down Expand Up @@ -4282,8 +4282,8 @@ protected void doCreateEmptyTable(SchemaTableName tableName, HiveStorageFormat s
assertThat(table.getStorage().getStorageFormat().getInputFormat()).isEqualTo(storageFormat.getInputFormat());

// verify the node version and query ID
assertThat(table.getParameters().get(PRESTO_VERSION_NAME)).isEqualTo(TEST_SERVER_VERSION);
assertThat(table.getParameters().get(PRESTO_QUERY_ID_NAME)).isEqualTo(queryId);
assertThat(table.getParameters()).containsEntry(PRESTO_VERSION_NAME, TEST_SERVER_VERSION);
assertThat(table.getParameters()).containsEntry(PRESTO_QUERY_ID_NAME, queryId);

// verify the table is empty
List<ColumnHandle> columnHandles = filterNonHiddenColumnHandles(metadata.getColumnHandles(session, tableHandle).values());
Expand Down Expand Up @@ -4643,8 +4643,8 @@ private void doInsertIntoNewPartition(HiveStorageFormat storageFormat, SchemaTab
assertThat(partitions.size()).isEqualTo(partitionNames.size());
for (String partitionName : partitionNames) {
Partition partition = partitions.get(partitionName).get();
assertThat(partition.getParameters().get(PRESTO_VERSION_NAME)).isEqualTo(TEST_SERVER_VERSION);
assertThat(partition.getParameters().get(PRESTO_QUERY_ID_NAME)).isEqualTo(queryId);
assertThat(partition.getParameters()).containsEntry(PRESTO_VERSION_NAME, TEST_SERVER_VERSION);
assertThat(partition.getParameters()).containsEntry(PRESTO_QUERY_ID_NAME, queryId);
}

// load the new table
Expand Down
Loading

0 comments on commit ccf6b62

Please sign in to comment.