Skip to content

Restructure test files #327

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 19, 2024
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
33 changes: 0 additions & 33 deletions core/src/test/kotlin/SchemaTest.kt

This file was deleted.

10 changes: 5 additions & 5 deletions core/src/test/kotlin/org/neo4j/graphql/AugmentationTests.kt
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package org.neo4j.graphql

import demo.org.neo4j.graphql.utils.TestUtils.createTestsInPath
import org.junit.jupiter.api.TestFactory
import org.neo4j.graphql.utils.GraphQLSchemaTestSuite
import org.neo4j.graphql.factories.GraphQLSchemaTestFactory
import org.neo4j.graphql.utils.TestUtils.createTestsInPath

class AugmentationTests {

@TestFactory
fun `augmentation-tests`() = GraphQLSchemaTestSuite("augmentation-tests.adoc").generateTests()
fun `augmentation-tests`() = GraphQLSchemaTestFactory("augmentation-tests.adoc").generateTests()

@TestFactory
fun `schema-operations-tests`() = GraphQLSchemaTestSuite("schema-operations-tests.adoc").generateTests()
fun `schema-operations-tests`() = GraphQLSchemaTestFactory("schema-operations-tests.adoc").generateTests()

@TestFactory
fun `schema augmentation tests`() =
createTestsInPath("tck-test-files/schema", { GraphQLSchemaTestSuite(it).generateTests() })
createTestsInPath("tck-test-files/schema", { GraphQLSchemaTestFactory(it).generateTests() })
}
32 changes: 16 additions & 16 deletions core/src/test/kotlin/org/neo4j/graphql/CypherTests.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ package org.neo4j.graphql

import apoc.coll.Coll
import apoc.cypher.CypherFunctions
import demo.org.neo4j.graphql.utils.TestUtils.createTestsInPath
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.BeforeAll
import org.junit.jupiter.api.TestFactory
import org.junit.jupiter.api.TestInstance
import org.neo4j.graphql.utils.CypherTestSuite
import org.neo4j.graphql.factories.CypherTestFactory
import org.neo4j.graphql.utils.TestUtils.createTestsInPath
import org.neo4j.harness.Neo4j
import org.neo4j.harness.Neo4jBuilders
import java.nio.file.Path
Expand Down Expand Up @@ -36,48 +36,48 @@ class CypherTests {
}

@TestFactory
fun `cypher-directive-tests`() = CypherTestSuite("cypher-directive-tests.adoc", neo4j).generateTests()
fun `cypher-directive-tests`() = CypherTestFactory("cypher-directive-tests.adoc", neo4j).generateTests()

@TestFactory
fun `dynamic-property-tests`() = CypherTestSuite("dynamic-property-tests.adoc", neo4j).generateTests()
fun `dynamic-property-tests`() = CypherTestFactory("dynamic-property-tests.adoc", neo4j).generateTests()

@TestFactory
fun `filter-tests`() = CypherTestSuite("filter-tests.adoc", neo4j).generateTests()
fun `filter-tests`() = CypherTestFactory("filter-tests.adoc", neo4j).generateTests()

@TestFactory
fun `relationship-tests`() = CypherTestSuite("relationship-tests.adoc", neo4j).generateTests()
fun `relationship-tests`() = CypherTestFactory("relationship-tests.adoc", neo4j).generateTests()

@TestFactory
fun `movie-tests`() = CypherTestSuite("movie-tests.adoc", neo4j).generateTests()
fun `movie-tests`() = CypherTestFactory("movie-tests.adoc", neo4j).generateTests()

@TestFactory
fun `property-tests`() = CypherTestSuite("property-tests.adoc", neo4j).generateTests()
fun `property-tests`() = CypherTestFactory("property-tests.adoc", neo4j).generateTests()

@TestFactory
fun `translator-tests1`() = CypherTestSuite("translator-tests1.adoc", neo4j).generateTests()
fun `translator-tests1`() = CypherTestFactory("translator-tests1.adoc", neo4j).generateTests()

@TestFactory
fun `translator-tests2`() = CypherTestSuite("translator-tests2.adoc", neo4j).generateTests()
fun `translator-tests2`() = CypherTestFactory("translator-tests2.adoc", neo4j).generateTests()

@TestFactory
fun `translator-tests3`() = CypherTestSuite("translator-tests3.adoc", neo4j).generateTests()
fun `translator-tests3`() = CypherTestFactory("translator-tests3.adoc", neo4j).generateTests()

@TestFactory
fun `translator-tests-custom-scalars`() =
CypherTestSuite("translator-tests-custom-scalars.adoc", neo4j).generateTests()
CypherTestFactory("translator-tests-custom-scalars.adoc", neo4j).generateTests()

@TestFactory
fun `optimized-query-for-filter`() = CypherTestSuite("optimized-query-for-filter.adoc", neo4j).generateTests()
fun `optimized-query-for-filter`() = CypherTestFactory("optimized-query-for-filter.adoc", neo4j).generateTests()

@TestFactory
fun `custom-fields`() = CypherTestSuite("custom-fields.adoc", neo4j).generateTests()
fun `custom-fields`() = CypherTestFactory("custom-fields.adoc", neo4j).generateTests()

@TestFactory
fun `test issues`() = createTestsInPath("issues", { CypherTestSuite(it, neo4j).generateTests() })
fun `test issues`() = createTestsInPath("issues", { CypherTestFactory(it, neo4j).generateTests() })

@TestFactory
fun `new cypher tck tests`() =
createTestsInPath("tck-test-files/cypher", { CypherTestSuite(it, neo4j).generateTests() })
createTestsInPath("tck-test-files/cypher", { CypherTestFactory(it, neo4j).generateTests() })

companion object {
private val INTEGRATION_TESTS = System.getProperty("neo4j-graphql-java.integration-tests", "false") == "true"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package org.neo4j.graphql

import demo.org.neo4j.graphql.utils.asciidoc.ast.CodeBlock
import demo.org.neo4j.graphql.utils.asciidoc.ast.Section
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.DynamicNode
import org.junit.jupiter.api.DynamicTest
import org.junit.jupiter.api.TestFactory
import org.neo4j.graphql.utils.AsciiDocTestSuite
import org.neo4j.graphql.asciidoc.ast.CodeBlock
import org.neo4j.graphql.asciidoc.ast.Section
import org.neo4j.graphql.factories.AsciiDocTestFactory
import java.util.stream.Stream

class TranslatorExceptionTests : AsciiDocTestSuite<CodeBlock>("translator-tests1.adoc", emptyList()) {
class TranslatorExceptionTests : AsciiDocTestFactory<CodeBlock>("translator-tests1.adoc", emptyList()) {

override fun createTestCase(section: Section): CodeBlock? {
return findSetupCodeBlocks(section, "graphql", mapOf("schema" to "true")).firstOrNull() ?: return null
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package demo.org.neo4j.graphql.utils.asciidoc
package org.neo4j.graphql.asciidoc

import demo.org.neo4j.graphql.utils.asciidoc.ast.*
import org.neo4j.graphql.asciidoc.ast.*
import java.io.File
import java.net.URI
import java.util.regex.Pattern
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package demo.org.neo4j.graphql.utils.asciidoc.ast
package org.neo4j.graphql.asciidoc.ast

class Block(
parent: StructuralNode,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package demo.org.neo4j.graphql.utils.asciidoc.ast
package org.neo4j.graphql.asciidoc.ast

import java.net.URI

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package demo.org.neo4j.graphql.utils.asciidoc.ast
package org.neo4j.graphql.asciidoc.ast

import java.net.URI

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package demo.org.neo4j.graphql.utils.asciidoc.ast
package org.neo4j.graphql.asciidoc.ast

import java.net.URI

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package demo.org.neo4j.graphql.utils.asciidoc.ast
package org.neo4j.graphql.asciidoc.ast

sealed class StructuralNode(
open val parent: StructuralNode?
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package org.neo4j.graphql.asciidoc.ast

class ThematicBreak: StructuralNode(null)
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package org.neo4j.graphql.utils
package org.neo4j.graphql.factories

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.kotlin.registerKotlinModule
import com.intellij.rt.execution.junit.FileComparisonFailure
import demo.org.neo4j.graphql.utils.asciidoc.AsciiDocParser
import demo.org.neo4j.graphql.utils.asciidoc.ast.*
import org.junit.jupiter.api.DynamicContainer
import org.junit.jupiter.api.DynamicNode
import org.junit.jupiter.api.DynamicTest
import org.neo4j.graphql.asciidoc.AsciiDocParser
import org.neo4j.graphql.asciidoc.ast.*
import java.io.File
import java.io.FileWriter
import java.util.*
Expand All @@ -18,7 +18,7 @@ import kotlin.reflect.KMutableProperty1
* @param fileName the name of the test file
* @param relevantBlocks a list of pairs of filter functions and properties to set the found code blocks
*/
abstract class AsciiDocTestSuite<T>(
abstract class AsciiDocTestFactory<T>(
private val fileName: String,
private val relevantBlocks: List<CodeBlockMatcher<T>>,
) {
Expand Down Expand Up @@ -49,16 +49,16 @@ abstract class AsciiDocTestSuite<T>(
tests += DynamicTest.dynamicTest(
"Write updated Testfile",
srcLocation,
this@AsciiDocTestSuite::writeAdjustedTestFile
this@AsciiDocTestFactory::writeAdjustedTestFile
)
} else if (REFORMAT_TEST_FILE) {
tests += DynamicTest.dynamicTest("Reformat Testfile", srcLocation, this@AsciiDocTestSuite::reformatTestFile)
tests += DynamicTest.dynamicTest("Reformat Testfile", srcLocation, this@AsciiDocTestFactory::reformatTestFile)
} else if (GENERATE_TEST_FILE_DIFF) {
// this test prints out the adjusted test file
tests += DynamicTest.dynamicTest(
"Adjusted Tests",
srcLocation,
this@AsciiDocTestSuite::printAdjustedTestFile
this@AsciiDocTestFactory::printAdjustedTestFile
)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.neo4j.graphql.utils
package org.neo4j.graphql.factories

import demo.org.neo4j.graphql.utils.asciidoc.ast.CodeBlock
import demo.org.neo4j.graphql.utils.asciidoc.ast.Section
import graphql.ExecutionInput
import graphql.GraphQL
import graphql.schema.DataFetcher
Expand All @@ -19,6 +17,8 @@ import org.neo4j.cypherdsl.parser.Options
import org.neo4j.driver.internal.InternalIsoDuration
import org.neo4j.driver.types.IsoDuration
import org.neo4j.graphql.*
import org.neo4j.graphql.asciidoc.ast.CodeBlock
import org.neo4j.graphql.asciidoc.ast.Section
import org.neo4j.harness.Neo4j
import org.opentest4j.AssertionFailedError
import java.math.BigInteger
Expand All @@ -34,7 +34,7 @@ import java.util.function.Consumer
import java.util.regex.Matcher
import java.util.regex.Pattern

class CypherTestSuite(fileName: String, val neo4j: Neo4j? = null) : AsciiDocTestSuite<CypherTestSuite.TestCase>(
class CypherTestFactory(fileName: String, val neo4j: Neo4j? = null) : AsciiDocTestFactory<CypherTestFactory.TestCase>(
fileName,
listOf(
matcher("cypher", exactly = true) { t, c -> t.cypher.add(c) },
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.neo4j.graphql.utils
package org.neo4j.graphql.factories

import demo.org.neo4j.graphql.utils.asciidoc.ast.CodeBlock
import demo.org.neo4j.graphql.utils.asciidoc.ast.Section
import graphql.language.InterfaceTypeDefinition
import graphql.language.UnionTypeDefinition
import graphql.schema.GraphQLScalarType
Expand All @@ -19,10 +17,12 @@ import org.junit.jupiter.api.DynamicTest
import org.neo4j.graphql.NoOpCoercing
import org.neo4j.graphql.SchemaBuilder
import org.neo4j.graphql.SchemaConfig
import org.neo4j.graphql.asciidoc.ast.CodeBlock
import org.neo4j.graphql.asciidoc.ast.Section
import org.opentest4j.AssertionFailedError
import java.util.*

class GraphQLSchemaTestSuite(fileName: String) : AsciiDocTestSuite<GraphQLSchemaTestSuite.TestCase>(
class GraphQLSchemaTestFactory(fileName: String) : AsciiDocTestFactory<GraphQLSchemaTestFactory.TestCase>(
fileName,
listOf(
matcher("graphql", exactly = true, setter = TestCase::augmentedSchema),
Expand Down
2 changes: 1 addition & 1 deletion core/src/test/kotlin/org/neo4j/graphql/utils/TestUtils.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package demo.org.neo4j.graphql.utils
package org.neo4j.graphql.utils

import org.junit.jupiter.api.DynamicContainer
import org.junit.jupiter.api.DynamicNode
Expand Down

This file was deleted.

2 changes: 1 addition & 1 deletion readme.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ You find more usage examples in the:
Here is a minimalistic example in Groovy using the Neo4j-Java driver and Spark-Java as webserver.
It is running against a Neo4j instance at `bolt://localhost` (username: `neo4j`, password: `s3cr3t`) containing the `:play movies` graph.

(You can also use a link:core/src/test/kotlin/GraphQLServer.kt[Kotlin based server example].)
(You can also use a link:core/src/test/kotlin/demo/GraphQLServer.kt[Kotlin based server example].)

In case you wand to bind the neo4j driver directly to the graphql schema you can
link:core/src/test/kotlin/DataFetcherInterceptorDemo.kt[use the DataFetchingInterceptor to
Expand Down
Loading