1 package org.broadinstitute.hellbender.tools; 2 3 import org.broadinstitute.hellbender.CommandLineProgramTest; 4 import org.broadinstitute.hellbender.engine.ReadsDataSource; 5 import org.broadinstitute.hellbender.engine.ReadsPathDataSource; 6 import org.broadinstitute.hellbender.utils.read.GATKRead; 7 import org.testng.Assert; 8 import org.testng.annotations.Test; 9 10 import java.io.File; 11 import java.util.Arrays; 12 import java.util.List; 13 14 public class ConvertHeaderlessHadoopBamShardToBamIntegrationTest extends CommandLineProgramTest { 15 16 @Test testConvertHeaderlessHadoopBamShardToBam()17 public void testConvertHeaderlessHadoopBamShardToBam() { 18 final File bamShard = new File(publicTestDir + "org/broadinstitute/hellbender/utils/spark/reads_data_source_test1.bam.headerless.part-r-00000"); 19 final File output = createTempFile("testConvertHeaderlessHadoopBamShardToBam", ".bam"); 20 final File headerSource = new File(publicTestDir + "org/broadinstitute/hellbender/engine/reads_data_source_test1.bam"); 21 final int expectedReadCount = 11; 22 23 List<String> args = Arrays.asList( 24 "--" + ConvertHeaderlessHadoopBamShardToBam.BAM_SHARD_LONG_NAME, bamShard.getAbsolutePath(), 25 "--" + ConvertHeaderlessHadoopBamShardToBam.BAM_WITH_HEADER_LONG_NAME, headerSource.getAbsolutePath(), 26 "-" + ConvertHeaderlessHadoopBamShardToBam.OUTPUT_SHORT_NAME, output.getAbsolutePath() 27 ); 28 runCommandLine(args); 29 30 int actualCount = 0; 31 try ( final ReadsDataSource readsSource = new ReadsPathDataSource(output.toPath()) ) { 32 for ( final GATKRead read : readsSource ) { ++actualCount; } 33 } 34 35 Assert.assertEquals(actualCount, expectedReadCount, "Wrong number of reads in final BAM file"); 36 } 37 } 38