### Question:
S3SelectRecordCursor extends GenericHiveRecordCursor<K, V> { @VisibleForTesting static Properties updateSplitSchema(Properties splitSchema, List<HiveColumnHandle> columns) { requireNonNull(splitSchema, "splitSchema is null"); requireNonNull(columns, "columns is null"); Properties updatedSchema = new Properties(); updatedSchema.putAll(splitSchema); updatedSchema.setProperty(LIST_COLUMNS, buildColumns(columns)); updatedSchema.setProperty(LIST_COLUMN_TYPES, buildColumnTypes(columns)); ThriftTable thriftTable = parseThriftDdl(splitSchema.getProperty(SERIALIZATION_DDL)); updatedSchema.setProperty(SERIALIZATION_DDL, thriftTableToDdl(pruneThriftTable(thriftTable, columns))); return updatedSchema; } S3SelectRecordCursor(
            Configuration configuration,
            Path path,
            RecordReader<K, V> recordReader,
            long totalBytes,
            Properties splitSchema,
            List<HiveColumnHandle> columns);   }### Answer:
@Test(expectedExceptions = NullPointerException.class) public void shouldThrowNullPointerExceptionWhenColumnsIsNull() { updateSplitSchema(new Properties(), null); }
@Test(expectedExceptions = NullPointerException.class) public void shouldThrowNullPointerExceptionWhenSchemaIsNull() { updateSplitSchema(null, ImmutableList.of()); }