]> git.donarmstrong.com Git - bamtools.git/blobdiff - src/test/api/BamReaderFileOpsTest.h
Reorganized test suite source tree
[bamtools.git] / src / test / api / BamReaderFileOpsTest.h
diff --git a/src/test/api/BamReaderFileOpsTest.h b/src/test/api/BamReaderFileOpsTest.h
new file mode 100644 (file)
index 0000000..8c574e2
--- /dev/null
@@ -0,0 +1,73 @@
+#ifndef BAMREADER_FILEOPSTEST_H
+#define BAMREADER_FILEOPSTEST_H
+
+#include "api/BamReader.h"
+#include <gtest/gtest.h>
+
+TEST(BamReaderFileOpsTest, Defaults) {
+
+    BamTools::BamReader reader;
+    EXPECT_FALSE(reader.IsOpen());
+    EXPECT_FALSE(reader.HasIndex());
+    EXPECT_EQ("", reader.GetFilename());
+    EXPECT_EQ("", reader.GetHeaderText());
+    EXPECT_EQ(0,  reader.GetReferenceCount());
+}
+
+TEST(BamReaderFileOpsTest, NonExistentFile) {
+
+    BamTools::BamReader reader;
+    EXPECT_FALSE(reader.Open("../data/fake.bam"));
+
+    EXPECT_FALSE(reader.IsOpen());
+    EXPECT_FALSE(reader.HasIndex());
+    EXPECT_EQ("", reader.GetFilename());
+    EXPECT_EQ("", reader.GetHeaderText());
+    EXPECT_EQ(0,  reader.GetReferenceCount());
+}
+
+TEST(BamReaderFileOpsTest, EmptyFile) {
+
+    BamTools::BamReader reader;
+    EXPECT_FALSE(reader.Open("../data/empty.bam"));
+
+    EXPECT_FALSE(reader.IsOpen());
+    EXPECT_FALSE(reader.HasIndex());
+    EXPECT_EQ("", reader.GetFilename());
+    EXPECT_EQ("", reader.GetHeaderText());
+    EXPECT_EQ(0,  reader.GetReferenceCount());
+}
+
+TEST(BamReaderFileOpsTest, NormalFile_NoIndexNoHeader) {
+
+    BamTools::BamReader reader;
+    EXPECT_TRUE(reader.Open("../data/ex1.bam"));
+
+    EXPECT_TRUE(reader.IsOpen());
+    EXPECT_FALSE(reader.HasIndex());
+    EXPECT_EQ("../data/ex1.bam", reader.GetFilename());
+    EXPECT_EQ("", reader.GetHeaderText());
+    EXPECT_EQ(2,  reader.GetReferenceCount());
+}
+
+TEST(BamReaderFileOpsTest, NormalFile_ExplicitIndexFilename) {
+
+    BamTools::BamReader reader;
+    EXPECT_TRUE(reader.Open("../data/ex1.bam"));
+
+    EXPECT_TRUE(reader.IsOpen());
+    EXPECT_FALSE(reader.HasIndex());
+    EXPECT_EQ("../data/ex1.bam", reader.GetFilename());
+    EXPECT_EQ("", reader.GetHeaderText());
+    EXPECT_EQ(2,  reader.GetReferenceCount());
+
+    EXPECT_TRUE(reader.OpenIndex("../data/ex1.bam.bai"));
+
+    EXPECT_TRUE(reader.IsOpen());
+    EXPECT_TRUE(reader.HasIndex());
+    EXPECT_EQ("../data/ex1.bam", reader.GetFilename());
+    EXPECT_EQ("", reader.GetHeaderText());
+    EXPECT_EQ(2,  reader.GetReferenceCount());
+}
+
+#endif // BAMREADER_FILEOPSTEST_H