// Path: src/main/java/com/hortonworks/spark/sql/hive/llap/util/SerializableHadoopConfiguration.java
// public class SerializableHadoopConfiguration implements Serializable {
//   Configuration conf;
// 
//   public SerializableHadoopConfiguration(Configuration hadoopConf) {
//     this.conf = hadoopConf;
// 
//     if (this.conf == null) {
//       this.conf = new Configuration();
//     }
//   }
// 
//   public SerializableHadoopConfiguration() {
//     this.conf = new Configuration();
//   }
// 
//   public Configuration get() {
//     return this.conf;
//   }
// 
//   private void writeObject(java.io.ObjectOutputStream out) throws IOException {
//     this.conf.write(out);
//   }
// 
//   private void readObject(java.io.ObjectInputStream in) throws IOException {
//     this.conf = new Configuration();
//     this.conf.readFields(in);
//   }
// }
// 
// Path: src/test/java/com/hortonworks/spark/sql/hive/llap/MockHiveWarehouseConnector.java
// public static int[] testVector = {1, 2, 3, 4, 5};


import com.hortonworks.spark.sql.hive.llap.util.SerializableHadoopConfiguration;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.TaskAttemptContext;
import org.apache.spark.sql.catalyst.InternalRow;
import org.apache.spark.sql.execution.datasources.OutputWriter;
import org.apache.spark.sql.execution.datasources.orc.OrcOutputWriter;
import org.apache.spark.sql.sources.v2.writer.DataWriter;
import org.apache.spark.sql.sources.v2.writer.DataWriterFactory;
import org.apache.spark.sql.sources.v2.writer.WriterCommitMessage;
import org.apache.spark.sql.types.StructType;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import static com.hortonworks.spark.sql.hive.llap.MockHiveWarehouseConnector.testVector;
import static org.junit.Assert.assertEquals;
package com.hortonworks.spark.sql.hive.llap;




public class MockWriteSupport {

  public static class MockHiveWarehouseDataSourceWriter extends HiveWarehouseDataSourceWriter {

    public MockHiveWarehouseDataSourceWriter(Map<String, String> options, String jobId, StructType schema, Path path,
        Configuration conf) {
      super(options, jobId, schema, path, conf);
    }

    @Override
    public DataWriterFactory<InternalRow> createInternalRowWriterFactory() {
      return new MockHiveWarehouseDataWriterFactory(jobId, schema, path, new SerializableHadoopConfiguration(conf));
    }

    @Override public void commit(WriterCommitMessage[] messages) {

    }
  }

  public static class MockHiveWarehouseDataWriterFactory extends HiveWarehouseDataWriterFactory {

// Path: src/main/java/com/hortonworks/spark/sql/hive/llap/util/SerializableHadoopConfiguration.java
// public class SerializableHadoopConfiguration implements Serializable {
//   Configuration conf;
// 
//   public SerializableHadoopConfiguration(Configuration hadoopConf) {
//     this.conf = hadoopConf;
// 
//     if (this.conf == null) {
//       this.conf = new Configuration();
//     }
//   }
// 
//   public SerializableHadoopConfiguration() {
//     this.conf = new Configuration();
//   }
// 
//   public Configuration get() {
//     return this.conf;
//   }
// 
//   private void writeObject(java.io.ObjectOutputStream out) throws IOException {
//     this.conf.write(out);
//   }
// 
//   private void readObject(java.io.ObjectInputStream in) throws IOException {
//     this.conf = new Configuration();
//     this.conf.readFields(in);
//   }
// }
// 
// Path: src/test/java/com/hortonworks/spark/sql/hive/llap/MockHiveWarehouseConnector.java
// public static int[] testVector = {1, 2, 3, 4, 5};


// Path: src/test/java/com/hortonworks/spark/sql/hive/llap/MockWriteSupport.java
import com.hortonworks.spark.sql.hive.llap.util.SerializableHadoopConfiguration;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.TaskAttemptContext;
import org.apache.spark.sql.catalyst.InternalRow;
import org.apache.spark.sql.execution.datasources.OutputWriter;
import org.apache.spark.sql.execution.datasources.orc.OrcOutputWriter;
import org.apache.spark.sql.sources.v2.writer.DataWriter;
import org.apache.spark.sql.sources.v2.writer.DataWriterFactory;
import org.apache.spark.sql.sources.v2.writer.WriterCommitMessage;
import org.apache.spark.sql.types.StructType;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import static com.hortonworks.spark.sql.hive.llap.MockHiveWarehouseConnector.testVector;
import static org.junit.Assert.assertEquals;

package com.hortonworks.spark.sql.hive.llap;




public class MockWriteSupport {

  public static class MockHiveWarehouseDataSourceWriter extends HiveWarehouseDataSourceWriter {

    public MockHiveWarehouseDataSourceWriter(Map<String, String> options, String jobId, StructType schema, Path path,
        Configuration conf) {
      super(options, jobId, schema, path, conf);
    }

    @Override
    public DataWriterFactory<InternalRow> createInternalRowWriterFactory() {
      return new MockHiveWarehouseDataWriterFactory(jobId, schema, path, new SerializableHadoopConfiguration(conf));
    }

    @Override public void commit(WriterCommitMessage[] messages) {

    }
  }

  public static class MockHiveWarehouseDataWriterFactory extends HiveWarehouseDataWriterFactory {

    public MockHiveWarehouseDataWriterFactory(String jobId, StructType schema, Path path, SerializableHadoopConfiguration conf) {