20
20
21
21
public class VcfWriterReaderTest {
22
22
23
- public static final String [] vcfStrings = new String [] {"##test=test" , VcfHeaderUtils .STANDARD_FINAL_HEADER_LINE };
23
+ public static final String [] vcfStrings = new String [] {"##test=test" , VcfHeaderUtils .STANDARD_FINAL_HEADER_LINE , };
24
+ private final String [] parms = {"chrY" ,"2675826" ,"." ,"TG" ,"CA" };
25
+
24
26
25
27
@ Rule
26
28
public TemporaryFolder testFolder = new TemporaryFolder ();
27
29
28
30
@ Test
29
- public void getHeaderFromZippedVcfFileUsingStreams () throws IOException {
31
+ public void getHeaderFromZippedVcfFile () throws IOException {
30
32
File file = testFolder .newFile ("header.vcf.gz" );
31
33
32
34
try (RecordWriter <VcfRecord > writer = new RecordWriter <>(file ) ){
@@ -38,21 +40,30 @@ public void getHeaderFromZippedVcfFileUsingStreams() throws IOException {
38
40
* Should be able to get the header back out
39
41
*/
40
42
VcfHeader header = null ;
43
+ int num = 0 ;
41
44
try (VcfFileReader reader = new VcfFileReader (file ) ){
42
45
header = reader .getVcfHeader ();
46
+ for (VcfRecord re : reader ) {
47
+ num ++;
48
+ }
49
+
43
50
}
44
51
assertEquals (true , null != header );
45
52
assertEquals (VcfHeaderUtils .STANDARD_FINAL_HEADER_LINE , header .getChrom ().toString ());
46
53
assertEquals (1 , header .getAllMetaRecords ().size ());
47
54
assertEquals ("##test=test" , header .getAllMetaRecords ().get (0 ).toString ());
55
+ assertEquals (0 , num ); //no record
48
56
}
49
57
50
58
@ Test
51
- public void getHeaderFromZippedVcfFile () throws IOException {
59
+ public void getHeaderFromInvalidVcfFile () throws IOException {
52
60
File file = testFolder .newFile ("header.vcf.gz" );
53
61
54
62
try (RecordWriter <VcfRecord > writer = new RecordWriter <>(file ) ){
55
63
writer .addHeader (Arrays .stream (vcfStrings ).collect (Collectors .joining ("\n " )));
64
+ writer .add (new VcfRecord (parms ));
65
+ writer .add (new VcfRecord (parms ));
66
+ writer .addHeader (Arrays .stream (vcfStrings ).collect (Collectors .joining ("\n " )));
56
67
}
57
68
assertEquals (true , FileUtils .isInputGZip (file ) );
58
69
@@ -61,14 +72,23 @@ public void getHeaderFromZippedVcfFile() throws IOException {
61
72
* Should be able to get the header back out
62
73
*/
63
74
VcfHeader header = null ;
64
-
65
75
try (VcfFileReader reader = new VcfFileReader (file ) ){
66
76
header = reader .getVcfHeader ();
67
77
}
68
78
assertEquals (true , null != header );
69
- assertEquals (VcfHeaderUtils .STANDARD_FINAL_HEADER_LINE , header .getChrom ().toString ());
70
79
assertEquals (1 , header .getAllMetaRecords ().size ());
71
- assertEquals ("##test=test" , header .getAllMetaRecords ().get (0 ).toString ());
80
+
81
+ int num = 0 ;
82
+ try (VcfFileReader reader = new VcfFileReader (file ) ){
83
+ for (VcfRecord re : reader ) {
84
+ num ++;
85
+ System .out .println (re .toSimpleString ());
86
+ }
87
+ fail ("expected exception should throw here! " );
88
+ }catch (IllegalArgumentException e ) {
89
+ //two valid record but exception happed when check next record before create second vcf record
90
+ assertEquals (1 , num ); //one valid record
91
+ }
72
92
}
73
93
74
94
@ Test
0 commit comments