Skip to content

Commit

Permalink
Assert For String to Actual and Other Fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
pawankashyapollion committed Feb 10, 2025
1 parent aaca043 commit e8a5207
Showing 1 changed file with 142 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ public class SpannerToCassandraSourceDbIT extends SpannerToSourceDbITBase {
"SpannerToCassandraSourceIT/cassandra-config-template.conf";

private static final String USER_TABLE = "Users";
private static final String USER_TABLE_2 = "Users2";
private static final String ALL_DATA_TYPES_TABLE = "AllDatatypeColumns";
private static final String ALL_DATA_TYPES_CUSTOM_CONVERSION_TABLE = "AllDatatypeTransformation";
private static final HashSet<SpannerToCassandraSourceDbIT> testInstances = new HashSet<>();
Expand Down Expand Up @@ -183,8 +184,20 @@ public void spannerToCasandraSourceDbDeleteOperation() throws InterruptedExcepti

/** De basic rows to multiple tables in Google Cloud Spanner. */
private void writeDeleteInSpanner() {

Mutation insertOrUpdateMutation =
Mutation.newInsertOrUpdateBuilder(USER_TABLE_2)
.set("id")
.to(4)
.set("full_name")
.to("GG")
.set("from")
.to("BB")
.build();
spannerResourceManager.write(insertOrUpdateMutation);

KeySet allRows = KeySet.all();
Mutation deleteAllMutation = Mutation.delete(USER_TABLE, allRows);
Mutation deleteAllMutation = Mutation.delete(USER_TABLE_2, allRows);
spannerResourceManager.write(deleteAllMutation);
}

Expand Down Expand Up @@ -277,7 +290,7 @@ private long getRowCount(String tableName) {
*/
private void writeBasicRowInSpanner() {
Mutation m1 =
Mutation.newInsertOrUpdateBuilder("users")
Mutation.newInsertOrUpdateBuilder(USER_TABLE)
.set("id")
.to(1)
.set("full_name")
Expand All @@ -288,7 +301,7 @@ private void writeBasicRowInSpanner() {
spannerResourceManager.write(m1);

Mutation m2 =
Mutation.newInsertOrUpdateBuilder("users2")
Mutation.newInsertOrUpdateBuilder(USER_TABLE)
.set("id")
.to(2)
.set("full_name")
Expand All @@ -313,7 +326,7 @@ private void writeBasicRowInSpanner() {
(TransactionRunner.TransactionCallable<Void>)
transaction -> {
Mutation m3 =
Mutation.newInsertOrUpdateBuilder("users")
Mutation.newInsertOrUpdateBuilder(USER_TABLE_2)
.set("id")
.to(3)
.set("full_name")
Expand Down Expand Up @@ -348,7 +361,7 @@ private void assertBasicRowInCassandraDB() throws InterruptedException {
PipelineOperator.Result result =
pipelineOperator()
.waitForCondition(
createConfig(jobInfo, Duration.ofMinutes(10)), () -> getRowCount(USER_TABLE) == 1);
createConfig(jobInfo, Duration.ofMinutes(10)), () -> getRowCount(USER_TABLE) == 2);
assertThatResult(result).meetsConditions();
Iterable<Row> rows;
try {
Expand Down Expand Up @@ -992,6 +1005,129 @@ private void assertStringToActualRowsInCassandraDB() throws MultipleFailureExcep
Row row = rows.iterator().next();
assertAll(
() -> assertThat(row.getString("varchar_column")).isEqualTo("SampleVarchar2"),
() -> assertThat(row.getByte("tinyint_column")).isEqualTo((byte) 127));
() -> assertThat(row.getByte("tinyint_column")).isEqualTo((byte) 127),
() -> assertThat(row.getLong("bigint_column")).isEqualTo(9223372036854775807L),
() -> assertThat(row.getBoolean("bool_column")).isTrue(),
() -> assertThat(row.getString("char_column")).isEqualTo("CHAR_DATA"),
() ->
assertThat(row.getLocalDate("date_column"))
.isEqualTo(java.time.LocalDate.of(2025, 1, 27)),
() ->
assertThat(row.getInstant("datetime_column"))
.isEqualTo(java.time.Instant.parse("2025-01-27T10:30:00.000Z")),
() ->
assertThat(row.getBigDecimal("decimal_column")).isEqualTo(new BigDecimal("12345.6789")),
() -> assertThat(row.getDouble("double_column")).isEqualTo(2.718281828459045),
() -> assertThat(row.getFloat("float_column")).isEqualTo(3.14159f),

// Collections (frozen, list, set, map)
() ->
assertThat(row.getList("frozen_list_bigint_column", Long.class))
.isEqualTo(Arrays.asList(123456789012345L, 987654321012345L)),
() ->
assertThat(row.getSet("frozen_set_bool_column", Boolean.class))
.isEqualTo(new HashSet<>(Arrays.asList(false, true))),
() ->
assertThat(row.getMap("frozen_map_int_to_bool_column", Integer.class, Boolean.class))
.isEqualTo(Map.of(1, true, 2, false)),
() ->
assertThat(row.getMap("frozen_map_text_to_list_column", String.class, List.class))
.isEqualTo(Map.of("fruits", Arrays.asList("apple", "banana"))),
() ->
assertThat(row.getMap("frozen_map_text_to_set_column", String.class, Set.class))
.isEqualTo(Map.of("vegetables", new HashSet<>(Arrays.asList("carrot", "spinach")))),
() ->
assertThat(row.getSet("frozen_set_of_maps_column", Map.class))
.isEqualTo(
new HashSet<>(
Arrays.asList(
Map.of("key1", 10, "key2", 20), Map.of("keyA", 5, "keyB", 10)))),

// Lists and Sets
() ->
assertThat(row.getList("list_int_column", Integer.class))
.isEqualTo(Arrays.asList(1, 2, 3, 4, 5)),
() ->
assertThat(row.getList("list_text_column", String.class))
.isEqualTo(Arrays.asList("apple", "banana", "cherry")),
() ->
assertThat(row.getList("list_of_sets_column", Set.class))
.isEqualTo(
Arrays.asList(
new HashSet<>(Arrays.asList("apple", "banana")),
new HashSet<>(Arrays.asList("carrot", "spinach")))),

// Maps
() ->
assertThat(
row.getMap("map_date_to_text_column", java.time.LocalDate.class, String.class))
.isEqualTo(
Map.of(
java.time.LocalDate.parse("2025-01-27"), "event1",
java.time.LocalDate.parse("2025-02-01"), "event2")),
() ->
assertThat(row.getMap("map_text_to_int_column", String.class, Integer.class))
.isEqualTo(Map.of("key1", 10, "key2", 20)),
() ->
assertThat(row.getMap("map_text_to_list_column", String.class, List.class))
.isEqualTo(
Map.of(
"color",
Arrays.asList("red", "green"),
"fruit",
Arrays.asList("apple", "banana"))),
() ->
assertThat(row.getMap("map_text_to_set_column", String.class, Set.class))
.isEqualTo(
Map.of(
"fruit",
new HashSet<>(Arrays.asList("apple", "banana")),
"vegetables",
new HashSet<>(Arrays.asList("carrot", "spinach")))),

// Sets
() ->
assertThat(row.getSet("set_date_column", java.time.LocalDate.class))
.isEqualTo(
new HashSet<>(
Arrays.asList(
java.time.LocalDate.parse("2025-01-27"),
java.time.LocalDate.parse("2025-02-01")))),
() ->
assertThat(row.getSet("set_text_column", String.class))
.isEqualTo(new HashSet<>(Arrays.asList("apple", "orange", "banana"))),
() ->
assertThat(row.getSet("set_of_maps_column", Map.class))
.isEqualTo(
new HashSet<>(
Arrays.asList(
Map.of("key1", 10, "key2", 20), Map.of("keyA", 5, "keyB", 10)))),

// Other Basic Types
() -> assertThat(row.getShort("smallint_column")).isEqualTo((short) 32767),
() -> assertThat(row.getInt("mediumint_column")).isEqualTo(8388607),
() -> assertThat(row.getInt("int_column")).isEqualTo(2147483647),
() -> assertThat(row.getString("enum_column")).isEqualTo("OptionA"),
() -> assertThat(row.getString("year_column")).isEqualTo("2025"),
() ->
assertThat(row.getString("longtext_column"))
.isEqualTo(
"Very long text data that exceeds the medium text column length for long text."),
() -> assertThat(row.getString("tinytext_column")).isEqualTo("Short text for tinytext."),
() ->
assertThat(row.getString("mediumtext_column"))
.isEqualTo("Longer text data for mediumtext column."),
() ->
assertThat(row.getString("text_column"))
.isEqualTo("This is some sample text data for the text column."),
() ->
assertThat(row.getLocalTime("time_column"))
.isEqualTo(java.time.LocalTime.parse("12:30:00.000000000")),
() ->
assertThat(row.getInstant("timestamp_column"))
.isEqualTo(java.time.Instant.parse("2025-01-27T10:30:00.123456Z")),
() ->
assertThat(row.getBigInteger("varint_column"))
.isEqualTo(java.math.BigInteger.valueOf(123456789L)));
}
}

0 comments on commit e8a5207

Please sign in to comment.