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])