@Test
  public void testUpdateForSupportedTypes() throws IOException {
    Assume.assumeTrue(formatVersion == 2);

    for (int i = 0; i < SUPPORTED_TYPES.size(); i++) {
      Type type = SUPPORTED_TYPES.get(i);

      // TODO: remove this filter when issue #1881 is resolved
      if (type == Types.UUIDType.get() &&
            (fileFormat == FileFormat.PARQUET || fileFormat == FileFormat.ORC && isVectorized) ||
          type == Types.TimeType.get() &&
            fileFormat == FileFormat.PARQUET  && isVectorized) {
        continue;
      }

      // TODO: remove this filter when we figure out how we could test binary types
      if (type == Types.BinaryType.get() || type.equals(Types.FixedType.ofLength(5))) {
        continue;
      }

      String tableName = type.typeId().toString().toLowerCase() + "_table_" + i;
      String columnName = type.typeId().toString().toLowerCase() + "_column";

      Schema schema = new Schema(required(1, columnName, type));
      List<Record> originalRecords = TestHelper.generateRandomRecords(schema, 1, 0L);
      Table table = testTables.createTable(shell, tableName, schema, PartitionSpec.unpartitioned(), fileFormat,
          originalRecords, formatVersion);

      List<Record> newRecords = TestHelper.generateRandomRecords(schema, 1, 3L);
      shell.executeStatement(testTables.getUpdateQuery(tableName, newRecords.get(0)));
      HiveIcebergTestUtils.validateData(table, newRecords, 0);
    }
  }
Tests Format specific features, such as reading/writing tables, using delete files, etc.
iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestHiveIcebergCRUD.java