tracks/scala/testgen/src/main/scala/testgen/TestSuiteBuilder.scala in trackler-2.2.1.30 vs tracks/scala/testgen/src/main/scala/testgen/TestSuiteBuilder.scala in trackler-2.2.1.31

- old
+ new

@@ -8,10 +8,11 @@ object TestSuiteBuilder { type TestSuiteTemplate = Template1[TestSuiteData, Txt] type ToTestCaseData = String => LabeledTestItem => TestCaseData + type ToTestCaseDataList = String => LabeledTestItem => List[TestCaseData] type ToOptionTestCaseData = String => LabeledTestItem => Option[TestCaseData] private val DefaultTemplate: TestSuiteTemplate = txt.funSuiteTemplate.asInstanceOf[Template1[TestSuiteData, Txt]] @@ -28,10 +29,26 @@ TestSuiteData(tsName, version, imports, testCases, statements) template.render(testSuiteData).toString } + + def buildFromList(file: File, toTestCaseData: ToTestCaseDataList, imports: Seq[String] = Seq(), statements: Seq[String] = Seq())( + implicit template: TestSuiteTemplate = DefaultTemplate): String = + { + val exercise @ Exercise(name, version, cases, comments) = + CanonicalDataParser.parse(file) + val tsName = testSuiteName(name) + val testCasesAllPending = cases.flatMap(toTestCaseData(sutName(name))) + val testCases = + testCasesAllPending updated(0, testCasesAllPending.head.copy(pending = false)) + val testSuiteData = + TestSuiteData(tsName, version, imports, testCases, statements) + + template.render(testSuiteData).toString + } + def buildFromOption(file: File, toTestCaseData: ToOptionTestCaseData, imports: Seq[String] = Seq())( implicit template: TestSuiteTemplate = DefaultTemplate): String = { val exercise @ Exercise(name, version, cases, comments) = CanonicalDataParser.parse(file) @@ -44,9 +61,12 @@ template.render(testSuiteData).toString } def withLabeledTest(f: String => LabeledTest => TestCaseData): ToTestCaseData = + sut => item => f(sut)(item.asInstanceOf[LabeledTest]) + + def withLabeledList(f: String => LabeledTest => List[TestCaseData]): ToTestCaseDataList = sut => item => f(sut)(item.asInstanceOf[LabeledTest]) def withLabeledTestOpt(f: String => LabeledTest => Option[TestCaseData]): ToOptionTestCaseData = sut => item => f(sut)(item.asInstanceOf[LabeledTest])