@Test
  public void testSortedAndTransformedInsert() throws IOException {
    TableIdentifier identifier = TableIdentifier.of("default", "sort_table");

    SortOrder order = SortOrder.builderFor(HiveIcebergStorageHandlerTestUtils.CUSTOMER_SCHEMA)
        .asc(bucket("customer_id", 2), NULLS_FIRST)
        .desc(truncate("first_name", 4), NULLS_LAST)
        .asc("last_name", NULLS_LAST)
        .build();

    testTables.createTable(shell, identifier.name(), HiveIcebergStorageHandlerTestUtils.CUSTOMER_SCHEMA, order,
        PartitionSpec.unpartitioned(), fileFormat, ImmutableList.of(), formatVersion, ImmutableMap.of());

    StringBuilder insertQuery = new StringBuilder().append(String.format("INSERT INTO %s VALUES ", identifier.name()));
    HiveIcebergStorageHandlerTestUtils.OTHER_CUSTOMER_RECORDS_2.forEach(record -> insertQuery.append("(")
        .append(record.get(0)).append(",'")
        .append(record.get(1)).append("','")
        .append(record.get(2)).append("'),"));
    insertQuery.setLength(insertQuery.length() - 1);

    shell.executeStatement(insertQuery.toString());
    List<Record> expected = TestHelper.RecordsBuilder.newInstance(HiveIcebergStorageHandlerTestUtils.CUSTOMER_SCHEMA)
        .add(2L, "Susan", "Morrison").add(1L, "Sharon", "Taylor").add(1L, "Joanna", "Pierce")
        .add(2L, "Joanna", "Silver").add(2L, "Jake", "Donnel").add(2L, "Bob", "Silver").add(3L, "Trudy", "Henderson")
        .add(3L, "Trudy", "Johnson").add(3L, "Blake", "Burr").build();
    List<Object[]> result = shell.executeStatement(String.format("SELECT * FROM %s", identifier.name()));
    HiveIcebergTestUtils.validateData(expected,
        HiveIcebergTestUtils.valueForRow(HiveIcebergStorageHandlerTestUtils.CUSTOMER_SCHEMA, result));
  }
Runs insert queries against Iceberg tables. These should cover the various insertion methods of Hive including:
inserting values, inserting from select subqueries, insert overwrite table, etc...
iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergInserts.java