private void testWriteAllFieldsMockDataToCassandra(boolean addLongTimestamp) {
final JavaRDD<AvroPayload> testData = AvroPayloadUtil.generateTestData(this.jsc.get(),
100,
StringTypes.EMPTY);
final List<String> schemaFields = AvroPayloadUtil.getSchemaFields();
final List<String> partitionKeys = Collections.singletonList(schemaFields.get(0));
final List<ClusterKey> clusteringKeys = Collections.singletonList(
new ClusterKey(schemaFields.get(1), ClusterKey.Order.DESC));
final List<String> requiredFields = Arrays.asList(schemaFields.get(0), schemaFields.get(1));
final Optional<String> timestamp = addLongTimestamp ? Optional.of(TEST_TIMESTAMP) : Optional.absent();
final TimestampInfo tsInfo = new TimestampInfo(timestamp, true);
final CassandraSinkDataConverter dataconverter =
new CassandraSinkDataConverter(AvroPayloadUtil.getAvroTestDataSchema(StringTypes.EMPTY),
new Configuration(),
Optional.of(new HashSet<>(schemaFields)),
requiredFields,
tsInfo, new ErrorExtractor());
final CassandraSchemaConverter schemaConverter = new CassandraSchemaConverter(KEY_SPACE, TABLE, tsInfo, Optional.absent());
final CassandraSchema schema = schemaConverter.convertToExternalSchema(
AvroPayloadUtil.getAvroTestDataSchema(StringTypes.EMPTY));
final Optional<Long> ttl = Optional.of(10000L);
final CassandraSinkSchemaManager schemaManager =
new CassandraSinkSchemaManager(schema, partitionKeys, clusteringKeys, ttl);
final CassandraSinkConfiguration conf = initializeConfiguration(false, addLongTimestamp);
final CassandraSSTableSink sink = new CassandraSSTableSink(dataconverter, schemaManager, conf);
sink.write(testData);
validateCassandraTable(100, false, addLongTimestamp);
}