SQOOP-3347: Make verify() more generic in AvroTestUtils
authorSzabolcs Vasas <vasas@apache.org>
Fri, 20 Jul 2018 14:56:47 +0000 (16:56 +0200)
committerSzabolcs Vasas <vasas@apache.org>
Fri, 20 Jul 2018 14:56:47 +0000 (16:56 +0200)
(Boglarka Egyed via Szabolcs Vasas)

src/test/org/apache/sqoop/importjob/avro/AvroImportForNumericTypesTest.java
src/test/org/apache/sqoop/manager/hsqldb/TestHsqldbAvroPadding.java
src/test/org/apache/sqoop/testutil/AvroTestUtils.java

index e04caf7..ff13dc3 100644 (file)
@@ -204,6 +204,7 @@ public class AvroImportForNumericTypesTest extends ImportJobTestCase {
   }
 
   private void verify() {
+    AvroTestUtils.registerDecimalConversionUsageForVerification();
     AvroTestUtils.verify(configuration.getExpectedResults(), getConf(), getTablePath());
   }
 }
index 7e42bf1..bb7cae4 100644 (file)
@@ -76,6 +76,7 @@ public class TestHsqldbAvroPadding extends ImportJobTestCase {
     builder.withProperty("sqoop.avro.decimal_padding.enable", "true");
     String[] args = builder.build();
     runImport(args);
+    AvroTestUtils.registerDecimalConversionUsageForVerification();
     AvroTestUtils.verify(AvroTestUtils.getExpectedResults(), getConf(), getTablePath());
   }
 }
index 75940bf..04a8494 100644 (file)
@@ -25,6 +25,8 @@ import org.apache.avro.generic.GenericDatumReader;
 import org.apache.avro.generic.GenericRecord;
 import org.apache.avro.io.DatumReader;
 import org.apache.avro.mapred.FsInput;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 
@@ -37,6 +39,11 @@ import static org.junit.Assert.assertEquals;
 
 public class AvroTestUtils {
 
+  private static final String OUTPUT_FILE_NAME = "part-m-00000.avro";
+
+  public static final Log LOG = LogFactory.getLog(
+          AvroTestUtils.class.getName());
+
   public static List<String[]> getInputData() {
     List<String[]> data = new ArrayList<>();
     data.add(new String[]{"1", "'Aaron'", "1000000.05", "'engineering'"});
@@ -63,9 +70,13 @@ public class AvroTestUtils {
         .withOption("table", testCase.getTableName());
   }
 
-  public static void verify(String[] expectedResults, Configuration conf, Path tablePath) {
-    Path outputFile = new Path(tablePath, "part-m-00000.avro");
+  public static void registerDecimalConversionUsageForVerification() {
     GenericData.get().addLogicalTypeConversion(new Conversions.DecimalConversion());
+  }
+
+  public static void verify(String[] expectedResults, Configuration conf, Path tablePath) {
+    Path outputFile = new Path(tablePath, OUTPUT_FILE_NAME);
+
     try (DataFileReader<GenericRecord> reader = read(outputFile, conf)) {
       GenericRecord record;
       if (!reader.hasNext() && expectedResults != null && expectedResults.length > 0) {
@@ -78,6 +89,7 @@ public class AvroTestUtils {
       }
     }
     catch (IOException ioe) {
+      LOG.error("Issue with verifying the output", ioe);
       throw new RuntimeException(ioe);
     }
   }