[Spec tests] Metadata refactoring: remove duplicated links in testMaps
This commit is contained in:
@@ -41,7 +41,7 @@ class LinkedSpecTest(
|
||||
testArea: TestArea,
|
||||
testType: TestType,
|
||||
val place: SpecPlace,
|
||||
val relevantPlaces: List<SpecPlace>?,
|
||||
val relevantPlaces: Set<SpecPlace>?,
|
||||
testNumber: Int,
|
||||
description: String,
|
||||
cases: SpecTestCasesSet,
|
||||
@@ -51,25 +51,6 @@ class LinkedSpecTest(
|
||||
helpers: Set<String>?,
|
||||
exception: TestsExceptionType?
|
||||
) : AbstractSpecTest(testArea, testType, place.sections, testNumber, description, cases, unexpectedBehavior, issues, helpers, exception) {
|
||||
companion object {
|
||||
fun getInstanceForImplementationTest(
|
||||
specVersion: String,
|
||||
testArea: TestArea,
|
||||
testType: TestType,
|
||||
specPlaces: List<SpecPlace>,
|
||||
filename: String
|
||||
): LinkedSpecTest {
|
||||
val description = filename[0].toUpperCase() +
|
||||
filename.substring(1).replace(Regex("""([A-Z])"""), " $1").toLowerCase()
|
||||
|
||||
return LinkedSpecTest(
|
||||
specVersion, testArea, testType, specPlaces.first(),
|
||||
if (specPlaces.size > 1) specPlaces.subList(1, specPlaces.size) else null, 0, description,
|
||||
SpecTestCasesSet(mutableMapOf(), mutableMapOf(), mutableMapOf()),
|
||||
unexpectedBehavior = false, unspecifiedBehavior = false, issues = setOf(), helpers = null, exception = null
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun checkPathConsistency(pathMatcher: Matcher) =
|
||||
testArea == TestArea.valueOf(pathMatcher.group("testArea").withUnderscores())
|
||||
|
||||
@@ -56,7 +56,7 @@ object CommonParser {
|
||||
|
||||
private fun parseRelevantPlaces(
|
||||
placesMatcher: Matcher?,
|
||||
relevantPlaces: MutableList<SpecPlace>
|
||||
relevantPlaces: MutableSet<SpecPlace>
|
||||
) {
|
||||
if (placesMatcher == null)
|
||||
return
|
||||
@@ -69,29 +69,36 @@ object CommonParser {
|
||||
}
|
||||
|
||||
fun parseLinkedSpecTest(testFilePath: String, testFiles: TestFiles, isImplementationTest: Boolean = false): LinkedSpecTest {
|
||||
val relevantAndAlternativePlaces = mutableListOf<SpecPlace>()
|
||||
val relevantPlaces = mutableSetOf<SpecPlace>()
|
||||
val parsedTestFile = tryParseTestInfo(testFilePath, testFiles, SpecTestLinkedType.LINKED, isImplementationTest)
|
||||
|
||||
val testInfoElements = parsedTestFile.testInfoElements
|
||||
|
||||
parseRelevantPlaces(
|
||||
testInfoElements[LinkedSpecTestFileInfoElementType.PRIMARY_LINKS]?.additionalMatcher,
|
||||
relevantAndAlternativePlaces
|
||||
relevantPlaces
|
||||
)
|
||||
|
||||
parseRelevantPlaces(
|
||||
testInfoElements[LinkedSpecTestFileInfoElementType.SECONDARY_LINKS]?.additionalMatcher,
|
||||
relevantAndAlternativePlaces
|
||||
relevantPlaces
|
||||
)
|
||||
|
||||
val placeMatcher = testInfoElements[LinkedSpecTestFileInfoElementType.MAIN_LINK]?.additionalMatcher
|
||||
|
||||
val mainPlace: SpecPlace
|
||||
if (placeMatcher != null) {
|
||||
mainPlace = createSpecPlace(placeMatcher)
|
||||
} else {
|
||||
mainPlace = relevantPlaces.first()
|
||||
relevantPlaces.remove(mainPlace)
|
||||
}
|
||||
return LinkedSpecTest(
|
||||
testInfoElements[LinkedSpecTestFileInfoElementType.SPEC_VERSION]!!.content,
|
||||
parsedTestFile.testArea,
|
||||
parsedTestFile.testType,
|
||||
if (placeMatcher != null) createSpecPlace(placeMatcher) else relevantAndAlternativePlaces.first(),
|
||||
relevantAndAlternativePlaces,
|
||||
mainPlace,
|
||||
relevantPlaces,
|
||||
parsedTestFile.testNumber,
|
||||
parsedTestFile.testDescription,
|
||||
parsedTestFile.testCasesSet,
|
||||
|
||||
Reference in New Issue
Block a user