Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ jobs:

steps:
- uses: actions/checkout@v1
- name: Set up JDK 1.8
- name: Set up Java 11
uses: actions/setup-java@v1
with:
java-version: 1.8
java-version: '11.0.2'
- name: Build with Maven
run: mvn clean verify -PdefaultBuild -P!jdk8
run: ./mvnw clean verify -PdefaultBuild
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ open class FederatedSchemaGenerator(generatorConfig: FederatedSchemaGeneratorCon
.forEach {
this.additionalType(it)
}

scanResult.close()

return this
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,13 @@ open class SchemaGenerator(val config: SchemaGeneratorConfig) {

builder.additionalDirectives(state.directives.values.toSet())
builder.codeRegistry(codeRegistry.build())
return config.hooks.willBuildSchema(builder).build()

val schema = config.hooks.willBuildSchema(builder).build()

// Clean up the classpath scanner
subTypeMapper.close()

return schema
}

open fun function(fn: KFunction<*>, parentName: String, target: Any? = null, abstract: Boolean = false) =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ internal class SubTypeMapper(supportedPackages: List<String>) {
.filterNot { it.isAbstract }
}

fun close() = scanResult.close()

@Suppress("Detekt.SwallowedException")
private fun getImplementingClasses(classInfo: ClassInfo) =
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,11 @@ internal class TypesCache(private val supportedPackages: List<String>) {
return null
}

/**
* Clear the map of all saved values
*/
internal fun clear() = cache.clear()

fun doesNotContainGraphQLType(graphQLType: GraphQLType) =
cache.none { (_, v) -> v.graphQLType.name == graphQLType.name }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,25 +30,29 @@ import graphql.schema.GraphQLCodeRegistry
import io.mockk.every
import io.mockk.mockk
import io.mockk.spyk
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.TestInstance.Lifecycle
import java.lang.reflect.Field
import kotlin.reflect.KAnnotatedElement
import kotlin.reflect.KClass
import kotlin.reflect.KFunction
import kotlin.reflect.KParameter
import kotlin.reflect.KProperty
import kotlin.reflect.KType
import kotlin.test.BeforeTest

@Suppress(
"Detekt.UnsafeCast",
"Detekt.UnsafeCallOnNullableType",
"Detekt.LongMethod"
)
@TestInstance(Lifecycle.PER_CLASS)
internal open class TypeTestHelper {
private val subTypeMapper = SubTypeMapper(listOf("com.expediagroup.graphql"))
var generator = mockk<SchemaGenerator>()
var config = mockk<SchemaGeneratorConfig>()
var state = spyk(SchemaGeneratorState(listOf("com.expediagroup.graphql")))
var subTypeMapper = spyk(SubTypeMapper(listOf("com.expediagroup.graphql")))
var cache = spyk(TypesCache(listOf("com.expediagroup.graphql")))
val spyWiringFactory = spyk(KotlinDirectiveWiringFactory())
var hooks: SchemaGeneratorHooks = object : SchemaGeneratorHooks {
Expand All @@ -69,10 +73,12 @@ internal open class TypeTestHelper {
private var argumentBuilder: ArgumentBuilder? = null
private var inputObjectBuilder: InputObjectBuilder? = null

@BeforeTest
@BeforeEach
fun setup() {
beforeSetup()

cache.clear()

every { generator.state } returns state
every { state.cache } returns cache
every { generator.config } returns config
Expand Down Expand Up @@ -157,6 +163,11 @@ internal open class TypeTestHelper {
beforeTest()
}

@AfterAll
fun cleanup() {
subTypeMapper.close()
}

open fun beforeTest() {}

open fun beforeSetup() {}
Expand Down