Skip to content

Commit 7ce1752

Browse files
authored
Automatically install spring-security-test when spring-security-core is present (#2624)
1 parent d514a7b commit 7ce1752

File tree

4 files changed

+38
-7
lines changed

4 files changed

+38
-7
lines changed

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/ExternalLibraryDescriptors.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,21 @@ fun springBootTestLibraryDescriptor(versionInProject: Version?): ExternalLibrary
5151
)
5252
}
5353

54+
private const val MIN_SUPPORTED_SPRING_VERSION = "2.5"
55+
5456
fun springTestLibraryDescriptor(versionInProject: Version?): ExternalLibraryDescriptor {
55-
val preferredVersion = if (versionInProject?.hasNumericOrEmptyPatch() == true) versionInProject?.plainText else "6.0.8"
57+
val preferredVersion = if (versionInProject?.hasNumericOrEmptyPatch() == true) versionInProject.plainText else "6.0.8"
5658
return ExternalLibraryDescriptor(
5759
"org.springframework", "spring-test",
58-
"2.5", null, preferredVersion
60+
MIN_SUPPORTED_SPRING_VERSION, null, preferredVersion
61+
)
62+
}
63+
64+
fun springSecurityLibraryDescriptor(versionInProject: Version?): ExternalLibraryDescriptor {
65+
val preferredVersion = if (versionInProject?.hasNumericOrEmptyPatch() == true) versionInProject.plainText else "6.0.8"
66+
return ExternalLibraryDescriptor(
67+
"org.springframework.security", "spring-security-test",
68+
MIN_SUPPORTED_SPRING_VERSION, null, preferredVersion
5969
)
6070
}
6171

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,7 @@ import org.utbot.framework.codegen.domain.MockitoStaticMocking
8686
import org.utbot.framework.codegen.domain.NoStaticMocking
8787
import org.utbot.framework.codegen.domain.ParametrizedTestSource
8888
import org.utbot.framework.codegen.domain.ProjectType
89-
import org.utbot.framework.codegen.domain.SpringModule.SPRING_BEANS
90-
import org.utbot.framework.codegen.domain.SpringModule.SPRING_BOOT
89+
import org.utbot.framework.codegen.domain.SpringModule.*
9190
import org.utbot.framework.codegen.domain.StaticsMocking
9291
import org.utbot.framework.codegen.domain.TestFramework
9392
import org.utbot.framework.codegen.domain.TestNg
@@ -112,6 +111,7 @@ import org.utbot.intellij.plugin.models.jUnit5ParametrizedTestsLibraryDescriptor
112111
import org.utbot.intellij.plugin.models.mockitoCoreLibraryDescriptor
113112
import org.utbot.intellij.plugin.models.packageName
114113
import org.utbot.intellij.plugin.models.springBootTestLibraryDescriptor
114+
import org.utbot.intellij.plugin.models.springSecurityLibraryDescriptor
115115
import org.utbot.intellij.plugin.models.springTestLibraryDescriptor
116116
import org.utbot.intellij.plugin.models.testNgNewLibraryDescriptor
117117
import org.utbot.intellij.plugin.models.testNgOldLibraryDescriptor
@@ -1020,6 +1020,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
10201020
val libraryDescriptor = when (springModule) {
10211021
SPRING_BOOT -> springBootTestLibraryDescriptor(frameworkVersionInProject)
10221022
SPRING_BEANS -> springTestLibraryDescriptor(frameworkVersionInProject)
1023+
SPRING_SECURITY -> springSecurityLibraryDescriptor(frameworkVersionInProject)
10231024
}
10241025

10251026
model.preClasspathCollectionPromises += addDependency(model.testModule, libraryDescriptor)

utbot-spring-framework/src/main/kotlin/org/utbot/framework/codegen/domain/SpringModule.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ enum class SpringModule(
88
),
99
SPRING_BOOT(
1010
testFrameworkDisplayName = "spring-boot-test",
11+
),
12+
SPRING_SECURITY(
13+
testFrameworkDisplayName = "spring-security-test"
1114
);
1215

1316
var isInstalled = false

utbot-spring-framework/src/main/kotlin/org/utbot/framework/plugin/api/utils/SpringDependencyPatterns.kt

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
package org.utbot.framework.plugin.api.utils
22

3-
import org.utbot.framework.codegen.domain.SpringModule.SPRING_BEANS
4-
import org.utbot.framework.codegen.domain.SpringModule.SPRING_BOOT
53
import org.utbot.framework.codegen.domain.SpringModule
4+
import org.utbot.framework.codegen.domain.SpringModule.*
65

76
fun SpringModule.patterns(): Patterns {
87
val moduleLibraryPatterns = when (this) {
98
SPRING_BOOT -> springBootModulePatterns
109
SPRING_BEANS -> springBeansModulePatterns
10+
SPRING_SECURITY -> springSecurityModulePatterns
1111
}
1212
val libraryPatterns = when (this) {
1313
SPRING_BOOT -> springBootPatterns
1414
SPRING_BEANS -> springBeansPatterns
15+
SPRING_SECURITY -> springSecurityPatterns
1516
}
1617

1718
return Patterns(moduleLibraryPatterns, libraryPatterns)
@@ -21,10 +22,12 @@ fun SpringModule.testPatterns(): Patterns {
2122
val moduleLibraryPatterns = when (this) {
2223
SPRING_BOOT -> springBootTestModulePatterns
2324
SPRING_BEANS -> springBeansTestModulePatterns
25+
SPRING_SECURITY -> springSecurityTestModulePatterns
2426
}
2527
val libraryPatterns = when (this) {
2628
SPRING_BOOT -> springBootTestPatterns
2729
SPRING_BEANS -> springBeansTestPatterns
30+
SPRING_SECURITY -> springSecurityTestPatterns
2831
}
2932

3033
return Patterns(moduleLibraryPatterns, libraryPatterns)
@@ -57,4 +60,18 @@ val SPRING_BOOT_TEST_MVN_PATTERN = Regex("org\\.springframework\\.boot:spring-bo
5760
val springBootTestPatterns = listOf(SPRING_BOOT_TEST_JAR_PATTERN, SPRING_BOOT_TEST_MVN_PATTERN)
5861

5962
val SPRING_BOOT_TEST_BASIC_MODULE_PATTERN = Regex("spring-boot-test")
60-
val springBootTestModulePatterns = listOf(SPRING_BOOT_TEST_BASIC_MODULE_PATTERN)
63+
val springBootTestModulePatterns = listOf(SPRING_BOOT_TEST_BASIC_MODULE_PATTERN)
64+
65+
val SPRING_SECURITY_JAR_PATTERN = Regex("spring-security-core-([0-9]+)(\\.[0-9]+){1,2}")
66+
val SPRING_SECURITY_MVN_PATTERN = Regex("org\\.springframework\\.security:spring-security-core:([0-9]+)(\\.[0-9]+){1,2}")
67+
val springSecurityPatterns = listOf(SPRING_SECURITY_JAR_PATTERN, SPRING_SECURITY_MVN_PATTERN)
68+
69+
val SPRING_SECURITY_BASIC_MODULE_PATTERN = Regex("spring-security-core")
70+
val springSecurityModulePatterns = listOf(SPRING_SECURITY_BASIC_MODULE_PATTERN)
71+
72+
val SPRING_SECURITY_TEST_JAR_PATTERN = Regex("spring-security-test-([0-9]+)(\\.[0-9]+){1,2}")
73+
val SPRING_SECURITY_TEST_MVN_PATTERN = Regex("org\\.springframework\\.security:spring-security-test:([0-9]+)(\\.[0-9]+){1,2}")
74+
val springSecurityTestPatterns = listOf(SPRING_SECURITY_TEST_JAR_PATTERN, SPRING_SECURITY_TEST_MVN_PATTERN)
75+
76+
val SPRING_SECURITY_TEST_BASIC_MODULE_PATTERN = Regex("spring-security-test")
77+
val springSecurityTestModulePatterns = listOf(SPRING_SECURITY_TEST_BASIC_MODULE_PATTERN)

0 commit comments

Comments
 (0)