1 #ifndef BAMREADER_FILEOPSTEST_H
2 #define BAMREADER_FILEOPSTEST_H
4 #include "api/BamReader.h"
5 #include <gtest/gtest.h>
7 TEST(BamReaderFileOpsTest, Defaults) {
9 BamTools::BamReader reader;
10 EXPECT_FALSE(reader.IsOpen());
11 EXPECT_FALSE(reader.HasIndex());
12 EXPECT_EQ("", reader.GetFilename());
13 EXPECT_EQ("", reader.GetHeaderText());
14 EXPECT_EQ(0, reader.GetReferenceCount());
17 TEST(BamReaderFileOpsTest, NonExistentFile) {
19 BamTools::BamReader reader;
20 EXPECT_FALSE(reader.Open("../data/fake.bam"));
22 EXPECT_FALSE(reader.IsOpen());
23 EXPECT_FALSE(reader.HasIndex());
24 EXPECT_EQ("", reader.GetFilename());
25 EXPECT_EQ("", reader.GetHeaderText());
26 EXPECT_EQ(0, reader.GetReferenceCount());
29 TEST(BamReaderFileOpsTest, EmptyFile) {
31 BamTools::BamReader reader;
32 EXPECT_FALSE(reader.Open("../data/empty.bam"));
34 EXPECT_FALSE(reader.IsOpen());
35 EXPECT_FALSE(reader.HasIndex());
36 EXPECT_EQ("", reader.GetFilename());
37 EXPECT_EQ("", reader.GetHeaderText());
38 EXPECT_EQ(0, reader.GetReferenceCount());
41 TEST(BamReaderFileOpsTest, NormalFile_NoIndexNoHeader) {
43 BamTools::BamReader reader;
44 EXPECT_TRUE(reader.Open("../data/ex1.bam"));
46 EXPECT_TRUE(reader.IsOpen());
47 EXPECT_FALSE(reader.HasIndex());
48 EXPECT_EQ("../data/ex1.bam", reader.GetFilename());
49 EXPECT_EQ("", reader.GetHeaderText());
50 EXPECT_EQ(2, reader.GetReferenceCount());
53 TEST(BamReaderFileOpsTest, NormalFile_ExplicitIndexFilename) {
55 BamTools::BamReader reader;
56 EXPECT_TRUE(reader.Open("../data/ex1.bam"));
58 EXPECT_TRUE(reader.IsOpen());
59 EXPECT_FALSE(reader.HasIndex());
60 EXPECT_EQ("../data/ex1.bam", reader.GetFilename());
61 EXPECT_EQ("", reader.GetHeaderText());
62 EXPECT_EQ(2, reader.GetReferenceCount());
64 EXPECT_TRUE(reader.OpenIndex("../data/ex1.bam.bai"));
66 EXPECT_TRUE(reader.IsOpen());
67 EXPECT_TRUE(reader.HasIndex());
68 EXPECT_EQ("../data/ex1.bam", reader.GetFilename());
69 EXPECT_EQ("", reader.GetHeaderText());
70 EXPECT_EQ(2, reader.GetReferenceCount());
73 #endif // BAMREADER_FILEOPSTEST_H