[Spec tests] Metadata refactoring: remove duplicated links in testMaps

This commit is contained in:
anastasiia.spaseeva
2020-04-06 20:17:49 +03:00
parent d32aca87d1
commit 3a31150df4
7 changed files with 14 additions and 495 deletions
@@ -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,