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