From 684fe7c88803cd0a23bea33df3dd30243cef0e60 Mon Sep 17 00:00:00 2001
From: Peter van 't Hof <p.j.van_t_hof@lumc.nl>
Date: Thu, 14 Jan 2016 23:37:42 +0100
Subject: [PATCH] Adding tests for input files for summary

---
 .../biopet/core/summary/WriteSummary.scala    |  1 +
 .../core/summary/SummaryQScriptTest.scala     | 40 +++++++++++++++++++
 2 files changed, 41 insertions(+)

diff --git a/public/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/summary/WriteSummary.scala b/public/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/summary/WriteSummary.scala
index 02c860fdb..bb6e1bf56 100644
--- a/public/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/summary/WriteSummary.scala
+++ b/public/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/summary/WriteSummary.scala
@@ -184,6 +184,7 @@ class WriteSummary(val root: Configurable) extends InProcessFunction with Config
     map.toMap
   }
 }
+
 object WriteSummary {
   /** Retrive checksum from file */
   def parseChecksum(checksumFile: File): String = {
diff --git a/public/biopet-core/src/test/scala/nl/lumc/sasc/biopet/core/summary/SummaryQScriptTest.scala b/public/biopet-core/src/test/scala/nl/lumc/sasc/biopet/core/summary/SummaryQScriptTest.scala
index 1f3aec58a..ef97c8af8 100644
--- a/public/biopet-core/src/test/scala/nl/lumc/sasc/biopet/core/summary/SummaryQScriptTest.scala
+++ b/public/biopet-core/src/test/scala/nl/lumc/sasc/biopet/core/summary/SummaryQScriptTest.scala
@@ -2,6 +2,8 @@ package nl.lumc.sasc.biopet.core.summary
 
 import java.io.File
 
+import nl.lumc.sasc.biopet.core.BiopetQScript.InputFile
+import nl.lumc.sasc.biopet.core.extensions.Md5sum
 import nl.lumc.sasc.biopet.utils.config.{Config, Configurable}
 import org.broadinstitute.gatk.queue.{QScript, QSettings}
 import org.broadinstitute.gatk.queue.function.QFunction
@@ -32,6 +34,10 @@ class SummaryQScriptTest extends TestNGSuite with Matchers {
     SummaryQScript.md5sumCache.toMap shouldBe Map(
       new File(s".${File.separator}bla") -> new File(s".${File.separator}bla.md5"))
     script.functions.size shouldBe 2
+    assert(script.functions
+      .filter(_.isInstanceOf[Md5sum])
+      .map(_.asInstanceOf[Md5sum])
+      .exists(_.cmdLine.contains(" || ")))
   }
 
   @Test
@@ -44,6 +50,10 @@ class SummaryQScriptTest extends TestNGSuite with Matchers {
     SummaryQScript.md5sumCache.toMap shouldBe Map(
       new File(s".${File.separator}bla") -> new File(s".${File.separator}bla.md5"))
     script.functions.size shouldBe 2
+    assert(script.functions
+      .filter(_.isInstanceOf[Md5sum])
+      .map(_.asInstanceOf[Md5sum])
+      .exists(_.cmdLine.contains(" || ")))
   }
 
   @Test
@@ -58,9 +68,39 @@ class SummaryQScriptTest extends TestNGSuite with Matchers {
     SummaryQScript.md5sumCache.toMap shouldBe Map(
       new File(s".${File.separator}bla") -> new File(s".${File.separator}bla.md5"))
     script.functions.size shouldBe 2
+    assert(script.functions
+      .filter(_.isInstanceOf[Md5sum])
+      .map(_.asInstanceOf[Md5sum])
+      .exists(_.cmdLine.contains(" || ")))
   }
 
+  @Test
+  def testInputFile: Unit = {
+    SummaryQScript.md5sumCache.clear()
+    val file = new File(s".${File.separator}bla")
+    val script = makeQscript()
+    script.addSummarizable(makeSummarizable(files = Map("file" -> file, "file2" -> file)), "test")
+    script.summarizables.size shouldBe 1
+    script.inputFiles :+= InputFile(file, Some("md5sum"))
+    script.inputFiles :+= InputFile(file, None)
+    script.addSummaryJobs()
+    SummaryQScript.md5sumCache should not be empty
+    SummaryQScript.md5sumCache.toMap shouldBe Map(
+      new File(s".${File.separator}bla") -> new File(s".${File.separator}bla.md5"))
+    script.functions.size shouldBe 3
+    assert(script.functions
+      .filter(_.isInstanceOf[Md5sum])
+      .map(_.asInstanceOf[Md5sum])
+      .exists(_.cmdLine.contains(" || ")))
+  }
 
+  @Test
+  def testAddQscript: Unit = {
+    SummaryQScript.md5sumCache.clear()
+    val script = makeQscript()
+    script.addSummaryQScript(script)
+    script.summaryQScripts.head shouldBe script
+  }
 }
 
 object SummaryQScriptTest {
-- 
GitLab