From e553e0c86bb317c1c0cf91182fe4f60c658307e8 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Tue, 5 Nov 2024 19:50:09 +0100 Subject: [PATCH 01/19] add ascii tree to dclarations errors and hyperlinks instead of displaying only paths --- .../core/verify/KoArchitectureAssert.kt | 4 +- .../KoDeclarationAndProviderAssertCore.kt | 40 ++++++++++++++++--- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoArchitectureAssert.kt b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoArchitectureAssert.kt index 747377f444..7cee6094c6 100644 --- a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoArchitectureAssert.kt +++ b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoArchitectureAssert.kt @@ -150,7 +150,7 @@ private fun getFailureMessage( else -> emptyList() } - val asciiTreNodes = + val asciiTreeNodes = files.map { file -> val children = file @@ -163,7 +163,7 @@ private fun getFailureMessage( AsciiTreeCreator().invoke( AsciiTreeNode( getRootMessage(failure), - asciiTreNodes, + asciiTreeNodes, ), ) } diff --git a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt index 83b7d319b0..ec1f4fe429 100644 --- a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt +++ b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt @@ -8,10 +8,13 @@ import com.lemonappdev.konsist.api.provider.KoBaseProvider import com.lemonappdev.konsist.api.provider.KoContainingDeclarationProvider import com.lemonappdev.konsist.api.provider.KoLocationProvider import com.lemonappdev.konsist.api.provider.KoNameProvider +import com.lemonappdev.konsist.core.architecture.validator.ascii.AsciiTreeCreator +import com.lemonappdev.konsist.core.architecture.validator.ascii.AsciiTreeNode import com.lemonappdev.konsist.core.exception.KoAssertionFailedException import com.lemonappdev.konsist.core.exception.KoException import com.lemonappdev.konsist.core.exception.KoInternalException import com.lemonappdev.konsist.core.exception.KoPreconditionFailedException +import java.io.File internal fun List.assert( strict: Boolean, @@ -232,28 +235,53 @@ private fun getCheckFailedMessage( val customMessage = additionalMessage?.let { "\n$it\n" } ?: " " val times = if (failedItems.size == 1) "time" else "times" - return "Assert '$testName' was violated (${failedItems.size} $times).$customMessage" + - "Invalid $types:\n$failedDeclarationsMessage" + val getRootMessage = + "Assert '$testName' was violated (${failedItems.size} $times).$customMessage" + + "Invalid $types:" + + val asciiTreeNodes = failedDeclarationsMessage.map { AsciiTreeNode(it, emptyList()) } + + return AsciiTreeCreator().invoke( + AsciiTreeNode( + getRootMessage, + asciiTreeNodes, + ), + ) } -private fun processFailedItems(failedItems: List<*>): Pair { +private fun processFailedItems(failedItems: List<*>): Pair> { var types = "" val failedDeclarationsMessage = - failedItems.joinToString("\n") { item -> + failedItems.map { item -> when (item) { is KoFileDeclaration -> { types = "files" - "${item.path} ${getFailedNameWithDeclarationType(item.nameWithExtension, item.getDeclarationType())}" + val absolutePath = File(item.path).absolutePath + val hyperlinkUrl = "file://$absolutePath" + + "$hyperlinkUrl ${ + getFailedNameWithDeclarationType( + item.nameWithExtension, + item.getDeclarationType(), + ) + }" } + is KoBaseProvider -> { types = "declarations" val name = (item as? KoNameProvider)?.name val location = (item as? KoLocationProvider)?.location - "$location ${getFailedNameWithDeclarationType(name, item.getDeclarationType())}" + + val absolutePath = location?.let { File(it).absolutePath } + val hyperlinkUrl = "file://$absolutePath" + + "$hyperlinkUrl ${getFailedNameWithDeclarationType(name, item.getDeclarationType())}" } + else -> "" } } + return Pair(types, failedDeclarationsMessage) } From 2d76e7183438656130f8fb9e4143a1d59e853788 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Tue, 5 Nov 2024 20:12:55 +0100 Subject: [PATCH 02/19] upd unused snippets test failure message --- .../konsist/core/snippet/SnippetTest.kt | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt index c582af2206..c44201601d 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt @@ -1,5 +1,7 @@ package com.lemonappdev.konsist.core.snippet +import com.lemonappdev.konsist.core.architecture.validator.ascii.AsciiTreeCreator +import com.lemonappdev.konsist.core.architecture.validator.ascii.AsciiTreeNode import com.lemonappdev.konsist.core.util.FileExtension import org.amshove.kluent.assertSoftly import org.amshove.kluent.shouldBeEqualTo @@ -20,7 +22,10 @@ class SnippetTest { val snippetPaths = snippets - .map { it.path } + .map { + val absolutePath = File(it.path).absolutePath + "file://$absolutePath" + } val snippetNames = snippets @@ -53,8 +58,15 @@ class SnippetTest { // then assertSoftly { - sut shouldBeEqualTo emptySet() - require(sut.isEmpty()) { "Unused snippets: ${sut.map { snippetMap[it] }}" } + val asciiTreeNodes = sut.mapNotNull { snippetMap[it]?.let { path -> AsciiTreeNode(path, emptyList()) } } + + val asciiTree = AsciiTreeCreator().invoke( + AsciiTreeNode( + "Unused snippets:", + asciiTreeNodes, + ), + ) + require(sut.isEmpty()) { asciiTree } } } From d9ec36251165377b49a86bc91da0a4e12615477d Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Tue, 5 Nov 2024 21:27:36 +0100 Subject: [PATCH 03/19] fix snippet test and remove unused snippets --- ...lass-interfaces-and-external-parent.kttest | 9 --- ...e-has-internal-and-external-parents.kttest | 12 ---- ...lass-interfaces-and-external-parent.kttest | 9 --- ...nForKoContainingDeclarationProviderTest.kt | 1 + ...larationForKoContainingFileProviderTest.kt | 1 + ...entDeclarationForKoLocationProviderTest.kt | 1 + ...oParentDeclarationForKoNameProviderTest.kt | 1 + ...oParentDeclarationForKoPathProviderTest.kt | 1 + ...eclarationForKoTypeArgumentProviderTest.kt | 1 + ...lass-with-multiline-external-parent.kttest | 5 -- ...ass-with-multiline-parent-from-file.kttest | 5 -- ...s-with-multiline-parent-from-import.kttest | 5 -- ...ject-with-multiline-external-parent.kttest | 5 -- ...ect-with-multiline-parent-from-file.kttest | 5 -- ...t-with-multiline-parent-from-import.kttest | 5 -- ...lass-with-multiline-external-parent.kttest | 5 -- ...ationForKoSourceDeclarationProviderTest.kt | 38 ++++++++++ .../konsist/core/snippet/SnippetTest.kt | 71 +++++++++++-------- 18 files changed, 87 insertions(+), 93 deletions(-) delete mode 100644 lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koclass/snippet/forkoparentprovider/class-has-parent-class-interfaces-and-external-parent.kttest delete mode 100644 lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/kointerface/snippet/forkoparentprovider/interface-has-internal-and-external-parents.kttest delete mode 100644 lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koobject/snippet/forkoparentprovider/object-has-parent-class-interfaces-and-external-parent.kttest delete mode 100644 lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/class-with-multiline-external-parent.kttest delete mode 100644 lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/class-with-multiline-parent-from-file.kttest delete mode 100644 lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/class-with-multiline-parent-from-import.kttest delete mode 100644 lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/object-with-multiline-external-parent.kttest delete mode 100644 lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/object-with-multiline-parent-from-file.kttest delete mode 100644 lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/object-with-multiline-parent-from-import.kttest delete mode 100644 lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkointerfacedelegateprovider/class-with-multiline-external-parent.kttest diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koclass/snippet/forkoparentprovider/class-has-parent-class-interfaces-and-external-parent.kttest b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koclass/snippet/forkoparentprovider/class-has-parent-class-interfaces-and-external-parent.kttest deleted file mode 100644 index 89d488e76a..0000000000 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koclass/snippet/forkoparentprovider/class-has-parent-class-interfaces-and-external-parent.kttest +++ /dev/null @@ -1,9 +0,0 @@ -import com.lemonappdev.konsist.externalsample.SampleExternalInterface - -class SampleClass : SampleParentClass(), SampleParentInterface1, SampleParentInterface2, SampleExternalInterface - -open class SampleParentClass - -interface SampleParentInterface1 - -interface SampleParentInterface2 diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/kointerface/snippet/forkoparentprovider/interface-has-internal-and-external-parents.kttest b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/kointerface/snippet/forkoparentprovider/interface-has-internal-and-external-parents.kttest deleted file mode 100644 index cf80bc591b..0000000000 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/kointerface/snippet/forkoparentprovider/interface-has-internal-and-external-parents.kttest +++ /dev/null @@ -1,12 +0,0 @@ -import com.lemonappdev.konsist.externalsample.SampleExternalGenericInterface -import com.lemonappdev.konsist.externalsample.SampleExternalInterface - -interface SampleInterface : - SampleParentInterface1, - SampleParentInterface2, - SampleExternalInterface, - SampleExternalGenericInterface - -interface SampleParentInterface1 - -interface SampleParentInterface2 diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koobject/snippet/forkoparentprovider/object-has-parent-class-interfaces-and-external-parent.kttest b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koobject/snippet/forkoparentprovider/object-has-parent-class-interfaces-and-external-parent.kttest deleted file mode 100644 index 6180a29f24..0000000000 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koobject/snippet/forkoparentprovider/object-has-parent-class-interfaces-and-external-parent.kttest +++ /dev/null @@ -1,9 +0,0 @@ -import com.lemonappdev.konsist.externalsample.SampleExternalInterface - -object SampleObject : SampleParentClass(), SampleParentInterface1, SampleParentInterface2, SampleExternalInterface - -open class SampleParentClass - -interface SampleParentInterface1 - -interface SampleParentInterface2 diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoContainingDeclarationProviderTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoContainingDeclarationProviderTest.kt index ea879d4785..094a66ca11 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoContainingDeclarationProviderTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoContainingDeclarationProviderTest.kt @@ -87,6 +87,7 @@ class KoParentDeclarationForKoContainingDeclarationProviderTest { arguments("class-with-external-parent-interface"), arguments("class-with-generic-external-parent-interface"), arguments("class-with-external-parent-by-delegation"), + arguments("class-with-multiline-external-parent"), arguments("class-with-typealias-parent"), arguments("class-with-import-alias-parent"), ) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoContainingFileProviderTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoContainingFileProviderTest.kt index 51a6294e4e..b4fff759f7 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoContainingFileProviderTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoContainingFileProviderTest.kt @@ -96,6 +96,7 @@ class KoParentDeclarationForKoContainingFileProviderTest { arguments("class-with-external-parent-interface"), arguments("class-with-generic-external-parent-interface"), arguments("class-with-external-parent-by-delegation"), + arguments("class-with-multiline-external-parent"), arguments("class-with-typealias-parent"), arguments("class-with-import-alias-parent"), ) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoLocationProviderTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoLocationProviderTest.kt index f2b930cc5c..034156aa65 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoLocationProviderTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoLocationProviderTest.kt @@ -90,6 +90,7 @@ class KoParentDeclarationForKoLocationProviderTest { arguments("class-with-external-parent-interface", "3:23"), arguments("class-with-generic-external-parent-interface", "3:23"), arguments("class-with-external-parent-by-delegation", "3:62"), + arguments("class-with-multiline-external-parent", "3:23"), arguments("class-with-typealias-parent", "3:23"), arguments("class-with-import-alias-parent", "3:23"), ) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoNameProviderTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoNameProviderTest.kt index 7a712c5d89..5364650fa6 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoNameProviderTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoNameProviderTest.kt @@ -99,6 +99,7 @@ class KoParentDeclarationForKoNameProviderTest { arguments("class-with-external-parent-interface", "SampleExternalInterface"), arguments("class-with-generic-external-parent-interface", "SampleExternalGenericInterface"), arguments("class-with-external-parent-by-delegation", "SampleExternalInterface"), + arguments("class-with-multiline-external-parent", "SampleExternalClassWithParameter"), arguments("class-with-typealias-parent", "SampleTypeAlias"), arguments("class-with-import-alias-parent", "SampleImportAlias"), ) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoPathProviderTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoPathProviderTest.kt index 47d37664f1..47ef0688cd 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoPathProviderTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoPathProviderTest.kt @@ -103,6 +103,7 @@ class KoParentDeclarationForKoPathProviderTest { arguments("class-with-external-parent-interface", "SampleExternalInterface"), arguments("class-with-generic-external-parent-interface", "SampleExternalGenericInterface"), arguments("class-with-external-parent-by-delegation", "SampleExternalInterface"), + arguments("class-with-multiline-external-parent", "SampleExternalClassWithParameter"), arguments("class-with-typealias-parent", "SampleTypeAlias"), arguments("class-with-import-alias-parent", "SampleImportAlias"), ) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoTypeArgumentProviderTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoTypeArgumentProviderTest.kt index e701b7be9e..36708d59b4 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoTypeArgumentProviderTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoTypeArgumentProviderTest.kt @@ -262,6 +262,7 @@ class KoParentDeclarationForKoTypeArgumentProviderTest { arguments("class-with-parametrized-external-parent-class"), arguments("class-with-external-parent-interface"), arguments("class-with-external-parent-by-delegation"), + arguments("class-with-multiline-external-parent"), arguments("class-with-typealias-parent"), arguments("class-with-import-alias-parent"), ) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/class-with-multiline-external-parent.kttest b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/class-with-multiline-external-parent.kttest deleted file mode 100644 index 2caea629ba..0000000000 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/class-with-multiline-external-parent.kttest +++ /dev/null @@ -1,5 +0,0 @@ -import com.lemonappdev.konsist.externalsample.SampleExternalClassWithParameter - -class SomeClass(): SampleExternalClassWithParameter( - "some parent constructor param here" -) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/class-with-multiline-parent-from-file.kttest b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/class-with-multiline-parent-from-file.kttest deleted file mode 100644 index b71fcba11d..0000000000 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/class-with-multiline-parent-from-file.kttest +++ /dev/null @@ -1,5 +0,0 @@ -class SomeClass(): SomeParentClass( - "some parent constructor param here" -) - -open class SomeParentClass(val param: String) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/class-with-multiline-parent-from-import.kttest b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/class-with-multiline-parent-from-import.kttest deleted file mode 100644 index 7ea5eee84c..0000000000 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/class-with-multiline-parent-from-import.kttest +++ /dev/null @@ -1,5 +0,0 @@ -import com.lemonappdev.konsist.testdata.SampleClassWithParameter - -class SomeClass(): SampleClassWithParameter( - "some parent constructor param here" -) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/object-with-multiline-external-parent.kttest b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/object-with-multiline-external-parent.kttest deleted file mode 100644 index 74c6a6c2ae..0000000000 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/object-with-multiline-external-parent.kttest +++ /dev/null @@ -1,5 +0,0 @@ -import com.lemonappdev.konsist.externalsample.SampleExternalClassWithParameter - -object SampleObject: SampleExternalClassWithParameter( - "some parent constructor param here" -) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/object-with-multiline-parent-from-file.kttest b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/object-with-multiline-parent-from-file.kttest deleted file mode 100644 index a4942e95da..0000000000 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/object-with-multiline-parent-from-file.kttest +++ /dev/null @@ -1,5 +0,0 @@ -object SampleObject: SomeParentClass( - "some parent constructor param here" -) - -open class SomeParentClass(val param: String) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/object-with-multiline-parent-from-import.kttest b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/object-with-multiline-parent-from-import.kttest deleted file mode 100644 index 89cad126f5..0000000000 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkodeclarationcastprovider/object-with-multiline-parent-from-import.kttest +++ /dev/null @@ -1,5 +0,0 @@ -import com.lemonappdev.konsist.testdata.SampleClassWithParameter - -object SampleObject: SampleClassWithParameter( - "some parent constructor param here" -) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkointerfacedelegateprovider/class-with-multiline-external-parent.kttest b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkointerfacedelegateprovider/class-with-multiline-external-parent.kttest deleted file mode 100644 index 2caea629ba..0000000000 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/snippet/forkointerfacedelegateprovider/class-with-multiline-external-parent.kttest +++ /dev/null @@ -1,5 +0,0 @@ -import com.lemonappdev.konsist.externalsample.SampleExternalClassWithParameter - -class SomeClass(): SampleExternalClassWithParameter( - "some parent constructor param here" -) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/type/kotype/KoTypeDeclarationForKoSourceDeclarationProviderTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/type/kotype/KoTypeDeclarationForKoSourceDeclarationProviderTest.kt index e19d3ef84d..50b8a2ffe2 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/type/kotype/KoTypeDeclarationForKoSourceDeclarationProviderTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/type/kotype/KoTypeDeclarationForKoSourceDeclarationProviderTest.kt @@ -237,6 +237,44 @@ class KoTypeDeclarationForKoSourceDeclarationProviderTest { } } + @Test + fun `nullable-function-type`() { + // given + val sut = + getSnippetFile("nullable-function-type") + .classes() + .first() + .primaryConstructor + ?.parameters + ?.first() + ?.type + + // then + assertSoftly(sut) { + it?.hasSourceDeclaration { declaration -> declaration.name == "(SampleObject) -> Unit" } shouldBeEqualTo false + it?.hasSourceDeclarationOf(String::class) shouldBeEqualTo false + } + } + + @Test + fun `not-nullable-function-type`() { + // given + val sut = + getSnippetFile("not-nullable-function-type") + .classes() + .first() + .primaryConstructor + ?.parameters + ?.first() + ?.type + + // then + assertSoftly(sut) { + it?.hasSourceDeclaration { declaration -> declaration.name == "(SampleObject) -> Unit" } shouldBeEqualTo false + it?.hasSourceDeclarationOf(String::class) shouldBeEqualTo false + } + } + @Test fun `star-projection-type`() { // given diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt index c44201601d..2be7dd4d21 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt @@ -20,19 +20,12 @@ class SnippetTest { .filterNot { it.path.contains("lib/src/snippet/") } .toList() - val snippetPaths = - snippets - .map { - val absolutePath = File(it.path).absolutePath - "file://$absolutePath" - } - - val snippetNames = - snippets - .map { it.name.removeSuffix(FileExtension.KOTLIN_TEST_SNIPPET) } + val snippetPaths: List = snippets.map { + val path = it.path.removePrefix("../lib/") + val absolutePath = File(path).absolutePath - val snippetMap = mutableMapOf() - snippetNames.forEachIndexed { index, s -> snippetMap[s] = snippetPaths[index] } + "file://$absolutePath" + } /* Matches calls to the `getSnippetFile` function, capturing the argument passed to it. @@ -48,21 +41,21 @@ class SnippetTest { */ val argumentsRegex = Regex("""arguments\(\s*"([^"]+)"""") - val withGetSnippetMethod = snippetNamesFromFiles(getSnippetFileRegex, "getSnippetFile(") - val withArgument = snippetNamesFromFiles(argumentsRegex, "arguments(") + val withGetSnippetMethod = snippetPathsFromFiles(getSnippetFileRegex, "getSnippetFile(") + val withArgument = snippetPathsFromFiles(argumentsRegex, "arguments(") val snippetNamesUsedInTests = (withGetSnippetMethod + withArgument).toSet() // when - val sut = snippetMap.keys.toSet() - snippetNamesUsedInTests + val sut = snippetPaths.toSet() - snippetNamesUsedInTests // then assertSoftly { - val asciiTreeNodes = sut.mapNotNull { snippetMap[it]?.let { path -> AsciiTreeNode(path, emptyList()) } } + val asciiTreeNodes = sut.map { AsciiTreeNode(it, emptyList()) } val asciiTree = AsciiTreeCreator().invoke( AsciiTreeNode( - "Unused snippets:", + "Unused snippets (${sut.size}):", asciiTreeNodes, ), ) @@ -70,19 +63,41 @@ class SnippetTest { } } - private fun snippetNamesFromFiles( + private fun snippetPathsFromFiles( regex: Regex, prefix: String, - ) = File("../") - .walk() - .filter { it.isKotlinNotSnippetFile } - .map { it.readText() } - .flatMap { regex.findAll(it) } - .map { it.value } - .map { it.removePrefix(prefix) } - .map { it.trim() } - .map { it.removePrefix("\"") } - .map { it.substringBefore("\"") } + ): List { + val getSnippetFileRegex = Regex("""getSnippetKoScope\(\s*"(.+?)"""") + + return File("../") + .walk() + .filter { it.isKotlinNotSnippetFile } + .flatMap { file -> + val fileText = file.readText() + val filePath = getSnippetFileRegex.find(fileText)?.groupValues?.get(1).orEmpty() + + if (filePath.isNotEmpty()) { + regex.findAll(fileText) + .map { match -> + val cleanedMatch = match + .value + .removePrefix(prefix) + .trim() + .removePrefix("\"") + .substringBefore("\"") + + val testSourceSetPath = "src/integrationTest/kotlin/com/lemonappdev/konsist/" + val path = "$testSourceSetPath$filePath$cleanedMatch${FileExtension.KOTLIN_TEST_SNIPPET}" + val absolutePath = File(path).absolutePath + "file://$absolutePath" + } + } else { + emptySequence() + } + } + .toList() + } + companion object { private val File.isKotlinSnippetFile: Boolean get() = isFile && name.endsWith(FileExtension.KOTLIN_TEST_SNIPPET) From d00c2438b8bc06d33eb12b73774a834640941d1b Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Tue, 5 Nov 2024 21:30:22 +0100 Subject: [PATCH 04/19] clean code --- ...entDeclarationForKoLocationProviderTest.kt | 2 +- .../konsist/core/snippet/SnippetTest.kt | 52 +++++++++++-------- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoLocationProviderTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoLocationProviderTest.kt index 034156aa65..adaa48291e 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoLocationProviderTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/declaration/koparent/KoParentDeclarationForKoLocationProviderTest.kt @@ -90,7 +90,7 @@ class KoParentDeclarationForKoLocationProviderTest { arguments("class-with-external-parent-interface", "3:23"), arguments("class-with-generic-external-parent-interface", "3:23"), arguments("class-with-external-parent-by-delegation", "3:62"), - arguments("class-with-multiline-external-parent", "3:23"), + arguments("class-with-multiline-external-parent", "3:20"), arguments("class-with-typealias-parent", "3:23"), arguments("class-with-import-alias-parent", "3:23"), ) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt index 2be7dd4d21..def04058bf 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt @@ -4,7 +4,6 @@ import com.lemonappdev.konsist.core.architecture.validator.ascii.AsciiTreeCreato import com.lemonappdev.konsist.core.architecture.validator.ascii.AsciiTreeNode import com.lemonappdev.konsist.core.util.FileExtension import org.amshove.kluent.assertSoftly -import org.amshove.kluent.shouldBeEqualTo import org.junit.jupiter.api.Test import java.io.File @@ -20,12 +19,13 @@ class SnippetTest { .filterNot { it.path.contains("lib/src/snippet/") } .toList() - val snippetPaths: List = snippets.map { - val path = it.path.removePrefix("../lib/") - val absolutePath = File(path).absolutePath + val snippetPaths: List = + snippets.map { + val path = it.path.removePrefix("../lib/") + val absolutePath = File(path).absolutePath - "file://$absolutePath" - } + "file://$absolutePath" + } /* Matches calls to the `getSnippetFile` function, capturing the argument passed to it. @@ -53,12 +53,13 @@ class SnippetTest { assertSoftly { val asciiTreeNodes = sut.map { AsciiTreeNode(it, emptyList()) } - val asciiTree = AsciiTreeCreator().invoke( - AsciiTreeNode( - "Unused snippets (${sut.size}):", - asciiTreeNodes, - ), - ) + val asciiTree = + AsciiTreeCreator().invoke( + AsciiTreeNode( + "Unused snippets (${sut.size}):", + asciiTreeNodes, + ), + ) require(sut.isEmpty()) { asciiTree } } } @@ -74,17 +75,24 @@ class SnippetTest { .filter { it.isKotlinNotSnippetFile } .flatMap { file -> val fileText = file.readText() - val filePath = getSnippetFileRegex.find(fileText)?.groupValues?.get(1).orEmpty() + val filePath = + getSnippetFileRegex + .find(fileText) + ?.groupValues + ?.get(1) + .orEmpty() if (filePath.isNotEmpty()) { - regex.findAll(fileText) + regex + .findAll(fileText) .map { match -> - val cleanedMatch = match - .value - .removePrefix(prefix) - .trim() - .removePrefix("\"") - .substringBefore("\"") + val cleanedMatch = + match + .value + .removePrefix(prefix) + .trim() + .removePrefix("\"") + .substringBefore("\"") val testSourceSetPath = "src/integrationTest/kotlin/com/lemonappdev/konsist/" val path = "$testSourceSetPath$filePath$cleanedMatch${FileExtension.KOTLIN_TEST_SNIPPET}" @@ -94,11 +102,9 @@ class SnippetTest { } else { emptySequence() } - } - .toList() + }.toList() } - companion object { private val File.isKotlinSnippetFile: Boolean get() = isFile && name.endsWith(FileExtension.KOTLIN_TEST_SNIPPET) private val File.isKotlinNotSnippetFile: Boolean get() = isFile && !name.endsWith(FileExtension.KOTLIN_TEST_SNIPPET) From a26a2bf3462d5b1baee43ee329981c9b6c6a8be9 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Tue, 5 Nov 2024 22:11:48 +0100 Subject: [PATCH 05/19] extrack logic with hyperlinks to HyperlinkUtil --- .../lemonappdev/konsist/core/snippet/SnippetTest.kt | 8 ++++---- .../com/lemonappdev/konsist/core/util/HyperlinkUtil.kt | 10 ++++++++++ .../core/verify/KoDeclarationAndProviderAssertCore.kt | 8 +++----- 3 files changed, 17 insertions(+), 9 deletions(-) create mode 100644 lib/src/main/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtil.kt diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt index def04058bf..a8cb7d64a1 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/snippet/SnippetTest.kt @@ -3,6 +3,7 @@ package com.lemonappdev.konsist.core.snippet import com.lemonappdev.konsist.core.architecture.validator.ascii.AsciiTreeCreator import com.lemonappdev.konsist.core.architecture.validator.ascii.AsciiTreeNode import com.lemonappdev.konsist.core.util.FileExtension +import com.lemonappdev.konsist.core.util.HyperlinkUtil import org.amshove.kluent.assertSoftly import org.junit.jupiter.api.Test import java.io.File @@ -22,9 +23,8 @@ class SnippetTest { val snippetPaths: List = snippets.map { val path = it.path.removePrefix("../lib/") - val absolutePath = File(path).absolutePath - "file://$absolutePath" + HyperlinkUtil.toHyperlink(path) } /* @@ -96,8 +96,8 @@ class SnippetTest { val testSourceSetPath = "src/integrationTest/kotlin/com/lemonappdev/konsist/" val path = "$testSourceSetPath$filePath$cleanedMatch${FileExtension.KOTLIN_TEST_SNIPPET}" - val absolutePath = File(path).absolutePath - "file://$absolutePath" + + HyperlinkUtil.toHyperlink(path) } } else { emptySequence() diff --git a/lib/src/main/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtil.kt b/lib/src/main/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtil.kt new file mode 100644 index 0000000000..0062a9e1a4 --- /dev/null +++ b/lib/src/main/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtil.kt @@ -0,0 +1,10 @@ +package com.lemonappdev.konsist.core.util + +import java.io.File + +object HyperlinkUtil { + fun toHyperlink(path: String): String { + val absolutePath = File(path).absolutePath + return "file://$absolutePath" + } +} diff --git a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt index ec1f4fe429..f10cb72f7f 100644 --- a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt +++ b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt @@ -14,6 +14,7 @@ import com.lemonappdev.konsist.core.exception.KoAssertionFailedException import com.lemonappdev.konsist.core.exception.KoException import com.lemonappdev.konsist.core.exception.KoInternalException import com.lemonappdev.konsist.core.exception.KoPreconditionFailedException +import com.lemonappdev.konsist.core.util.HyperlinkUtil import java.io.File internal fun List.assert( @@ -256,8 +257,7 @@ private fun processFailedItems(failedItems: List<*>): Pair> when (item) { is KoFileDeclaration -> { types = "files" - val absolutePath = File(item.path).absolutePath - val hyperlinkUrl = "file://$absolutePath" + val hyperlinkUrl = HyperlinkUtil.toHyperlink(item.path) "$hyperlinkUrl ${ getFailedNameWithDeclarationType( @@ -271,9 +271,7 @@ private fun processFailedItems(failedItems: List<*>): Pair> types = "declarations" val name = (item as? KoNameProvider)?.name val location = (item as? KoLocationProvider)?.location - - val absolutePath = location?.let { File(it).absolutePath } - val hyperlinkUrl = "file://$absolutePath" + val hyperlinkUrl = location?.let { HyperlinkUtil.toHyperlink(it) } "$hyperlinkUrl ${getFailedNameWithDeclarationType(name, item.getDeclarationType())}" } From e985962a13ad6a746fd13ffeb6f657fa79ea941c Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Tue, 5 Nov 2024 22:12:07 +0100 Subject: [PATCH 06/19] clean code --- .../konsist/core/verify/KoDeclarationAndProviderAssertCore.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt index f10cb72f7f..59eecd1bdd 100644 --- a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt +++ b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt @@ -15,7 +15,6 @@ import com.lemonappdev.konsist.core.exception.KoException import com.lemonappdev.konsist.core.exception.KoInternalException import com.lemonappdev.konsist.core.exception.KoPreconditionFailedException import com.lemonappdev.konsist.core.util.HyperlinkUtil -import java.io.File internal fun List.assert( strict: Boolean, From e092e8f97117f02cdd2e7bbbc2c3bc4ac53f83fc Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Tue, 5 Nov 2024 22:41:19 +0100 Subject: [PATCH 07/19] clean code --- .../konsist/core/verify/KoDeclarationAndProviderAssertCore.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt index 59eecd1bdd..98fefc4148 100644 --- a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt +++ b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt @@ -256,6 +256,7 @@ private fun processFailedItems(failedItems: List<*>): Pair> when (item) { is KoFileDeclaration -> { types = "files" + val hyperlinkUrl = HyperlinkUtil.toHyperlink(item.path) "$hyperlinkUrl ${ @@ -270,6 +271,7 @@ private fun processFailedItems(failedItems: List<*>): Pair> types = "declarations" val name = (item as? KoNameProvider)?.name val location = (item as? KoLocationProvider)?.location + val hyperlinkUrl = location?.let { HyperlinkUtil.toHyperlink(it) } "$hyperlinkUrl ${getFailedNameWithDeclarationType(name, item.getDeclarationType())}" From 74dd6b8d5139a023588e5e6677b65a2d24df0128 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Wed, 6 Nov 2024 08:33:59 +0100 Subject: [PATCH 08/19] rename asciiTreeNodes to failedDeclarationAsciiTreeNodes --- .../konsist/core/verify/KoDeclarationAndProviderAssertCore.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt index 98fefc4148..715015453b 100644 --- a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt +++ b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt @@ -239,12 +239,12 @@ private fun getCheckFailedMessage( "Assert '$testName' was violated (${failedItems.size} $times).$customMessage" + "Invalid $types:" - val asciiTreeNodes = failedDeclarationsMessage.map { AsciiTreeNode(it, emptyList()) } + val failedDeclarationAsciiTreeNodes = failedDeclarationsMessage.map { AsciiTreeNode(it, emptyList()) } return AsciiTreeCreator().invoke( AsciiTreeNode( getRootMessage, - asciiTreeNodes, + failedDeclarationAsciiTreeNodes, ), ) } From 58d963d0d67528e7f3be51c13b8079bf9c259536 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Wed, 6 Nov 2024 08:38:40 +0100 Subject: [PATCH 09/19] change format of declaration error message --- .../core/verify/KoDeclarationAndProviderAssertCore.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt index 715015453b..a731e280b9 100644 --- a/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt +++ b/lib/src/main/kotlin/com/lemonappdev/konsist/core/verify/KoDeclarationAndProviderAssertCore.kt @@ -259,12 +259,12 @@ private fun processFailedItems(failedItems: List<*>): Pair> val hyperlinkUrl = HyperlinkUtil.toHyperlink(item.path) - "$hyperlinkUrl ${ + "${ getFailedNameWithDeclarationType( item.nameWithExtension, item.getDeclarationType(), ) - }" + } $hyperlinkUrl" } is KoBaseProvider -> { @@ -274,7 +274,7 @@ private fun processFailedItems(failedItems: List<*>): Pair> val hyperlinkUrl = location?.let { HyperlinkUtil.toHyperlink(it) } - "$hyperlinkUrl ${getFailedNameWithDeclarationType(name, item.getDeclarationType())}" + "${getFailedNameWithDeclarationType(name, item.getDeclarationType())} $hyperlinkUrl" } else -> "" @@ -287,7 +287,7 @@ private fun processFailedItems(failedItems: List<*>): Pair> private fun getFailedNameWithDeclarationType( name: String?, declarationType: String?, -) = if (name != null) "($declarationType '$name')" else "($declarationType)" +) = if (name != null) "$declarationType $name" else "$declarationType" private fun getEmptyResult( items: List<*>, From c45938c783abc52d3fa7111debc416cd718aacf5 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Wed, 6 Nov 2024 08:39:53 +0100 Subject: [PATCH 10/19] uppercase names in AsciiTreeNode --- .../core/architecture/validator/ascii/AsciiTreeNode.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/src/main/kotlin/com/lemonappdev/konsist/core/architecture/validator/ascii/AsciiTreeNode.kt b/lib/src/main/kotlin/com/lemonappdev/konsist/core/architecture/validator/ascii/AsciiTreeNode.kt index 5410905eac..9ce2cc7756 100644 --- a/lib/src/main/kotlin/com/lemonappdev/konsist/core/architecture/validator/ascii/AsciiTreeNode.kt +++ b/lib/src/main/kotlin/com/lemonappdev/konsist/core/architecture/validator/ascii/AsciiTreeNode.kt @@ -11,7 +11,7 @@ data class AsciiTreeNode( koFileDeclaration: KoFileDeclaration, children: List, ) : this( - "file ${koFileDeclaration.path}", + "File ${koFileDeclaration.path}", children, ) @@ -19,7 +19,7 @@ data class AsciiTreeNode( koImportDeclaration: KoImportDeclaration, children: List, ) : this( - "import ${koImportDeclaration.name}", + "Import ${koImportDeclaration.name}", children, ) } From 6f761682131f3bf84f8d872a73de377dde155035 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Wed, 13 Nov 2024 13:08:31 +0100 Subject: [PATCH 11/19] update toHyperlink logic --- .../com/lemonappdev/konsist/core/util/HyperlinkUtil.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/src/main/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtil.kt b/lib/src/main/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtil.kt index 0062a9e1a4..cb505836f5 100644 --- a/lib/src/main/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtil.kt +++ b/lib/src/main/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtil.kt @@ -3,8 +3,14 @@ package com.lemonappdev.konsist.core.util import java.io.File object HyperlinkUtil { + private const val FILE_PREFIX = "file://" + fun toHyperlink(path: String): String { val absolutePath = File(path).absolutePath - return "file://$absolutePath" + return if (!absolutePath.startsWith(FILE_PREFIX)) { + "$FILE_PREFIX$absolutePath" + } else { + absolutePath + } } } From 983447a86e47d5e3ca036291a18adff157eb5bdd Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Mon, 18 Nov 2024 10:42:03 +0100 Subject: [PATCH 12/19] add HyperlinkUtilTest --- .../konsist/core/util/HyperlinkUtil.kt | 5 +- .../konsist/core/util/HyperlinkUtilTest.kt | 73 +++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 lib/src/test/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtilTest.kt diff --git a/lib/src/main/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtil.kt b/lib/src/main/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtil.kt index cb505836f5..3a436169ed 100644 --- a/lib/src/main/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtil.kt +++ b/lib/src/main/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtil.kt @@ -6,7 +6,10 @@ object HyperlinkUtil { private const val FILE_PREFIX = "file://" fun toHyperlink(path: String): String { - val absolutePath = File(path).absolutePath + val pathWithoutFilePrefix = path.removePrefix(FILE_PREFIX) + + val absolutePath = File(pathWithoutFilePrefix).absolutePath + return if (!absolutePath.startsWith(FILE_PREFIX)) { "$FILE_PREFIX$absolutePath" } else { diff --git a/lib/src/test/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtilTest.kt b/lib/src/test/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtilTest.kt new file mode 100644 index 0000000000..c4ffc76ad4 --- /dev/null +++ b/lib/src/test/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtilTest.kt @@ -0,0 +1,73 @@ +package com.lemonappdev.konsist.core.util + +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Test +import java.io.File + +class HyperlinkUtilTest { + + @Test + fun `should add prefix when path does not have it`() { + // Given + val path = "src/main/kotlin/com/lemonappdev/sample/AppClass.kt" + val absolutePath = File(path).absolutePath + val expected = "file://$absolutePath" + + // When + val result = HyperlinkUtil.toHyperlink(path) + + // Then + assertEquals(expected, result) + } + + @Test + fun `should not add prefix when path already has it`() { + // Given + val absolutePath = File("src/main/kotlin/com/lemonappdev/sample/sampleFile.kt").absolutePath + val prefixedPath = "file://$absolutePath" + + // When + val result = HyperlinkUtil.toHyperlink(prefixedPath) + + // Then + assertEquals(prefixedPath, result) + } + + @Test + fun `should handle empty path correctly`() { + // Given + val path = "" + val expected = "file://${File("").absolutePath}" + + // When + val result = HyperlinkUtil.toHyperlink(path) + + // Then + assertEquals(expected, result) + } + @Test + fun `should handle absolute path without prefix`() { + // Given + val absolutePath = File("src/main/kotlin/com/lemonappdev/sample/sampleFile.kt").absolutePath + val expected = "file://$absolutePath" + + // When + val result = HyperlinkUtil.toHyperlink(absolutePath) + + // Then + assertEquals(expected, result) + } + + @Test + fun `should handle file prefix for an absolute path`() { + // Given + val absolutePath = File("src/main/kotlin/com/lemonappdev/sample/sampleFile.kt").absolutePath + val pathWithPrefix = "file://$absolutePath" + + // When + val result = HyperlinkUtil.toHyperlink(pathWithPrefix) + + // Then + assertEquals(pathWithPrefix, result) + } +} From 96f0798a254d8402bf5c1c5df639db816457eb21 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Mon, 18 Nov 2024 11:08:57 +0100 Subject: [PATCH 13/19] fix integration tests --- .../asserttrue/AssertTrueOnDeclarationListTest.kt | 4 ++-- .../asserttrue/AssertTrueOnDeclarationSequenceTest.kt | 4 ++-- .../asserttrue/AssertTrueOnSingleDeclarationTest.kt | 4 ++-- .../asserttrue/AssertTrueOnProviderListTest.kt | 2 +- .../asserttrue/AssertTrueOnSingleProviderTest.kt | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/kodeclarationassert/asserttrue/AssertTrueOnDeclarationListTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/kodeclarationassert/asserttrue/AssertTrueOnDeclarationListTest.kt index 410a8dc524..00e1943443 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/kodeclarationassert/asserttrue/AssertTrueOnDeclarationListTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/kodeclarationassert/asserttrue/AssertTrueOnDeclarationListTest.kt @@ -170,7 +170,7 @@ class AssertTrueOnDeclarationListTest { try { sut.assertTrue { false } } catch (e: Exception) { - e.message?.shouldContain("(Class 'SampleClass')") + e.message?.shouldContain("Class SampleClass") ?: throw e } } @@ -186,7 +186,7 @@ class AssertTrueOnDeclarationListTest { try { sut.assertTrue { false } } catch (e: Exception) { - e.message?.shouldContain("(File 'file-declaration-assert-displaying-correct-failed-declaration-type.kt')") + e.message?.shouldContain("File file-declaration-assert-displaying-correct-failed-declaration-type.kt") ?: throw e } } diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/kodeclarationassert/asserttrue/AssertTrueOnDeclarationSequenceTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/kodeclarationassert/asserttrue/AssertTrueOnDeclarationSequenceTest.kt index cdff244693..da739a5151 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/kodeclarationassert/asserttrue/AssertTrueOnDeclarationSequenceTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/kodeclarationassert/asserttrue/AssertTrueOnDeclarationSequenceTest.kt @@ -179,7 +179,7 @@ class AssertTrueOnDeclarationSequenceTest { try { sut.assertTrue { false } } catch (e: Exception) { - e.message?.shouldContain("(Class 'SampleClass')") + e.message?.shouldContain("Class SampleClass") ?: throw e } } @@ -196,7 +196,7 @@ class AssertTrueOnDeclarationSequenceTest { try { sut.assertTrue { false } } catch (e: Exception) { - e.message?.shouldContain("(File 'file-declaration-assert-displaying-correct-failed-declaration-type.kt'") + e.message?.shouldContain("File file-declaration-assert-displaying-correct-failed-declaration-type.kt") ?: throw e } } diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/kodeclarationassert/asserttrue/AssertTrueOnSingleDeclarationTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/kodeclarationassert/asserttrue/AssertTrueOnSingleDeclarationTest.kt index 8df7eba1db..b78ff21e57 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/kodeclarationassert/asserttrue/AssertTrueOnSingleDeclarationTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/kodeclarationassert/asserttrue/AssertTrueOnSingleDeclarationTest.kt @@ -179,7 +179,7 @@ class AssertTrueOnSingleDeclarationTest { try { sut.assertTrue { false } } catch (e: Exception) { - e.message?.shouldContain("(Class 'SampleClass')") + e.message?.shouldContain("Class SampleClass") ?: throw e } } @@ -196,7 +196,7 @@ class AssertTrueOnSingleDeclarationTest { try { sut.assertTrue { false } } catch (e: Exception) { - e.message?.shouldContain("(File 'file-declaration-assert-displaying-correct-failed-declaration-type.kt')") + e.message?.shouldContain("File file-declaration-assert-displaying-correct-failed-declaration-type.kt") ?: throw e } } diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/koproviderassert/asserttrue/AssertTrueOnProviderListTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/koproviderassert/asserttrue/AssertTrueOnProviderListTest.kt index 9cbde54d85..6d5867bec6 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/koproviderassert/asserttrue/AssertTrueOnProviderListTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/koproviderassert/asserttrue/AssertTrueOnProviderListTest.kt @@ -104,7 +104,7 @@ class AssertTrueOnProviderListTest { try { sut.assertTrue { false } } catch (e: Exception) { - e.message?.shouldContain("(Class 'SampleClass')") + e.message?.shouldContain("Class SampleClass") ?: throw e } } diff --git a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/koproviderassert/asserttrue/AssertTrueOnSingleProviderTest.kt b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/koproviderassert/asserttrue/AssertTrueOnSingleProviderTest.kt index 903388031c..b031a3eb97 100644 --- a/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/koproviderassert/asserttrue/AssertTrueOnSingleProviderTest.kt +++ b/lib/src/integrationTest/kotlin/com/lemonappdev/konsist/core/verify/koproviderassert/asserttrue/AssertTrueOnSingleProviderTest.kt @@ -114,7 +114,7 @@ class AssertTrueOnSingleProviderTest { try { sut.assertTrue { false } } catch (e: Exception) { - e.message?.shouldContain("(Class 'SampleClass')") + e.message?.shouldContain("Class SampleClass") ?: throw e } } From a0453701e37cf266920c216b86914f0c4a70f486 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Mon, 18 Nov 2024 11:14:21 +0100 Subject: [PATCH 14/19] fix api tests --- .../architecture2/Architecture2Test.kt | 48 +++++++------- .../architecture4/Architecture4Test.kt | 32 +++++----- .../OptionalParametersTest.kt | 64 +++++++++---------- 3 files changed, 72 insertions(+), 72 deletions(-) diff --git a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt index 9e578a0325..80efab7df2 100644 --- a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt +++ b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt @@ -245,9 +245,9 @@ class Architecture2Test { "'fails when dependency is set that domain layer is depend on presentation layer (parameter scope)' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + "project.domain.DomainFirstClass", ) } @@ -273,9 +273,9 @@ class Architecture2Test { "test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + "project.domain.DomainFirstClass", ) } @@ -304,9 +304,9 @@ class Architecture2Test { "test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + "project.domain.DomainFirstClass", ) } @@ -337,9 +337,9 @@ class Architecture2Test { "test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", ) } @@ -364,9 +364,9 @@ class Architecture2Test { "'fails when dependency is set that presentation layer not depends on domain (lambda scope)' " + "test has failed. \n" + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + "project.domain.DomainFirstClass", ) } @@ -391,9 +391,9 @@ class Architecture2Test { "'fails when dependency is set that presentation layer not depends on domain (lambda files)' " + "test has failed. \n" + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + "project.domain.DomainFirstClass", ) } @@ -421,9 +421,9 @@ class Architecture2Test { "'fails when dependency is set that presentation layer not depends on domain (parameter scope)' " + "test has failed. \n" + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + "project.domain.DomainFirstClass", ) } @@ -453,9 +453,9 @@ class Architecture2Test { "'fails when dependency is set that presentation layer not depends on domain (parameter files)' " + "test has failed. \n" + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + "project.domain.DomainFirstClass", ) } @@ -525,9 +525,9 @@ class Architecture2Test { "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (lambda scope)' " + "test has failed. \n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", ) } @@ -547,9 +547,9 @@ class Architecture2Test { "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (lambda files)' " + "test has failed. \n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", ) } @@ -573,9 +573,9 @@ class Architecture2Test { "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (parameter scope)' " + "test has failed. \n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", ) } @@ -599,9 +599,9 @@ class Architecture2Test { "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (parameter files)' " + "test has failed. \n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", ) } // endregion diff --git a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture4/Architecture4Test.kt b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture4/Architecture4Test.kt index 2e0c85f647..310e9184da 100644 --- a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture4/Architecture4Test.kt +++ b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture4/Architecture4Test.kt @@ -158,9 +158,9 @@ class Architecture4Test { "Layer 'Presentation' does not depends on 'Data' layer.\n" + "Layer 'Domain' does not depends on 'Data' layer.\n" + "'Data' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/" + "architecture4/project/data/sample/DataThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + "project.domain.DomainFirstClass", ) } @@ -187,9 +187,9 @@ class Architecture4Test { "Layer 'Presentation' does not depends on 'Data' layer.\n" + "Layer 'Domain' does not depends on 'Data' layer.\n" + "'Data' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/data/sample/DataThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + "project.domain.DomainFirstClass", ) } @@ -218,9 +218,9 @@ class Architecture4Test { "Layer 'Presentation' does not depends on 'Data' layer.\n" + "Layer 'Domain' does not depends on 'Data' layer.\n" + "'Data' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/data/sample/DataThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + "project.domain.DomainFirstClass", ) } @@ -251,9 +251,9 @@ class Architecture4Test { "Layer 'Presentation' does not depends on 'Data' layer.\n" + "Layer 'Domain' does not depends on 'Data' layer.\n" + "'Data' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/data/sample/DataThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + "project.domain.DomainFirstClass", ) } @@ -277,9 +277,9 @@ class Architecture4Test { .shouldBeEqualTo( "'fails when using doesNotDependsOn (lambda scope)' test has failed. \n" + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + "project.domain.DomainFirstClass", ) } @@ -302,9 +302,9 @@ class Architecture4Test { .shouldBeEqualTo( "'fails when using doesNotDependsOn (lambda files)' test has failed. \n" + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + "project.domain.DomainFirstClass", ) } @@ -330,9 +330,9 @@ class Architecture4Test { .shouldBeEqualTo( "'fails when using doesNotDependsOn (parameter scope)' test has failed. \n" + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + "project.domain.DomainFirstClass", ) } @@ -359,9 +359,9 @@ class Architecture4Test { .shouldBeEqualTo( "'fails when using doesNotDependsOn (parameter files)' test has failed. \n" + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + "project.domain.DomainFirstClass", ) } diff --git a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt index eb29f0061a..e18865888d 100644 --- a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt +++ b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt @@ -48,9 +48,9 @@ class OptionalParametersTest { "'error message when additionalMessage and testName parameters are not provided (scope)' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -73,9 +73,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -97,9 +97,9 @@ class OptionalParametersTest { "'SOME CUSTOM TEST NAME' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -125,9 +125,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -151,9 +151,9 @@ class OptionalParametersTest { "'error message when additionalMessage and testName parameters are not provided (files)' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -178,9 +178,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -204,9 +204,9 @@ class OptionalParametersTest { "'SOME CUSTOM TEST NAME' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -234,9 +234,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -263,9 +263,9 @@ class OptionalParametersTest { "as parameter (scope)' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -293,9 +293,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -321,9 +321,9 @@ class OptionalParametersTest { "'SOME CUSTOM TEST NAME' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -354,9 +354,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -385,9 +385,9 @@ class OptionalParametersTest { "as parameter (files)' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -417,9 +417,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/" + "project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -447,9 +447,9 @@ class OptionalParametersTest { "'SOME CUSTOM TEST NAME' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } @@ -482,9 +482,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── file $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", ) } } From e2df61bb45c892ccd919d3d741a398bf6759cf54 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Mon, 18 Nov 2024 11:15:59 +0100 Subject: [PATCH 15/19] clean code --- .../konsist/core/util/HyperlinkUtilTest.kt | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/src/test/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtilTest.kt b/lib/src/test/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtilTest.kt index c4ffc76ad4..43077ee37f 100644 --- a/lib/src/test/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtilTest.kt +++ b/lib/src/test/kotlin/com/lemonappdev/konsist/core/util/HyperlinkUtilTest.kt @@ -1,73 +1,73 @@ package com.lemonappdev.konsist.core.util -import org.junit.jupiter.api.Assertions.* +import org.amshove.kluent.internal.assertEquals import org.junit.jupiter.api.Test import java.io.File class HyperlinkUtilTest { - @Test fun `should add prefix when path does not have it`() { - // Given + // given val path = "src/main/kotlin/com/lemonappdev/sample/AppClass.kt" val absolutePath = File(path).absolutePath val expected = "file://$absolutePath" - // When + // when val result = HyperlinkUtil.toHyperlink(path) - // Then + // then assertEquals(expected, result) } @Test fun `should not add prefix when path already has it`() { - // Given + // given val absolutePath = File("src/main/kotlin/com/lemonappdev/sample/sampleFile.kt").absolutePath val prefixedPath = "file://$absolutePath" - // When + // when val result = HyperlinkUtil.toHyperlink(prefixedPath) - // Then + // then assertEquals(prefixedPath, result) } @Test fun `should handle empty path correctly`() { - // Given + // given val path = "" val expected = "file://${File("").absolutePath}" - // When + // when val result = HyperlinkUtil.toHyperlink(path) - // Then + // then assertEquals(expected, result) } + @Test fun `should handle absolute path without prefix`() { - // Given + // given val absolutePath = File("src/main/kotlin/com/lemonappdev/sample/sampleFile.kt").absolutePath val expected = "file://$absolutePath" - // When + // when val result = HyperlinkUtil.toHyperlink(absolutePath) - // Then + // then assertEquals(expected, result) } @Test fun `should handle file prefix for an absolute path`() { - // Given + // given val absolutePath = File("src/main/kotlin/com/lemonappdev/sample/sampleFile.kt").absolutePath val pathWithPrefix = "file://$absolutePath" - // When + // when val result = HyperlinkUtil.toHyperlink(pathWithPrefix) - // Then + // then assertEquals(pathWithPrefix, result) } } From b775da5743592bd1a87a09bfc640ec10e25a3cfc Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Fri, 22 Nov 2024 10:53:52 +0100 Subject: [PATCH 16/19] add hyperlink to assert architecture error message --- .../core/architecture/validator/ascii/AsciiTreeNode.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/src/main/kotlin/com/lemonappdev/konsist/core/architecture/validator/ascii/AsciiTreeNode.kt b/lib/src/main/kotlin/com/lemonappdev/konsist/core/architecture/validator/ascii/AsciiTreeNode.kt index 9ce2cc7756..7afb8c934e 100644 --- a/lib/src/main/kotlin/com/lemonappdev/konsist/core/architecture/validator/ascii/AsciiTreeNode.kt +++ b/lib/src/main/kotlin/com/lemonappdev/konsist/core/architecture/validator/ascii/AsciiTreeNode.kt @@ -2,6 +2,7 @@ package com.lemonappdev.konsist.core.architecture.validator.ascii import com.lemonappdev.konsist.api.declaration.KoFileDeclaration import com.lemonappdev.konsist.api.declaration.KoImportDeclaration +import com.lemonappdev.konsist.core.util.HyperlinkUtil data class AsciiTreeNode( val string: String, @@ -11,7 +12,7 @@ data class AsciiTreeNode( koFileDeclaration: KoFileDeclaration, children: List, ) : this( - "File ${koFileDeclaration.path}", + "File ${HyperlinkUtil.toHyperlink(koFileDeclaration.path)}", children, ) @@ -19,7 +20,7 @@ data class AsciiTreeNode( koImportDeclaration: KoImportDeclaration, children: List, ) : this( - "Import ${koImportDeclaration.name}", + "Import ${koImportDeclaration.name} (${HyperlinkUtil.toHyperlink(koImportDeclaration.location)})", children, ) } From 69c8daf175793e678835c8cd97320f58bca93be7 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Fri, 22 Nov 2024 11:18:33 +0100 Subject: [PATCH 17/19] fix architecture message tests --- .../architecture2/Architecture2Test.kt | 183 ++++++++------ .../architecture4/Architecture4Test.kt | 113 +++++---- .../OptionalParametersTest.kt | 226 ++++++++++-------- 3 files changed, 303 insertions(+), 219 deletions(-) diff --git a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt index 80efab7df2..b1ca5df6b7 100644 --- a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt +++ b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt @@ -99,8 +99,8 @@ class Architecture2Test { .message .shouldBeEqualTo( "'fails when dependency is set that domain layer depend on presentation domain layer (lambda scope)' " + - "test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.", + "test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.", ) } @@ -121,8 +121,8 @@ class Architecture2Test { .message .shouldBeEqualTo( "'fails when dependency is set that domain layer depend on presentation domain layer (lambda files)' " + - "test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.", + "test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.", ) } @@ -145,8 +145,8 @@ class Architecture2Test { .message .shouldBeEqualTo( "'fails when dependency is set to domain layer depends on presentation layer (parameter scope)' " + - "test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.", + "test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.", ) } @@ -171,7 +171,7 @@ class Architecture2Test { .message .shouldBeEqualTo( "'fails when dependency is set to domain layer depends on presentation layer (parameter files)' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.", + "Layer 'Domain' does not depends on 'Presentation' layer.", ) } @@ -239,16 +239,18 @@ class Architecture2Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when dependency is set that domain layer is depend on presentation layer (parameter scope)' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -266,17 +268,19 @@ class Architecture2Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when dependency is set that domain layer is depend on presentation layer (parameter files)' " + - "test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass", + "test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -297,17 +301,19 @@ class Architecture2Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when dependency is set that domain layer is depend on presentation layer (lambda scope)' " + - "test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass", + "test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -330,16 +336,19 @@ class Architecture2Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when dependency is set that domain layer is depend on presentation layer (lambda files)' " + - "test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", + "test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass " + + "($filepath:3:1)" ) } @@ -358,16 +367,18 @@ class Architecture2Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when dependency is set that presentation layer not depends on domain (lambda scope)' " + - "test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass", + "test has failed. \n" + + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -385,16 +396,18 @@ class Architecture2Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when dependency is set that presentation layer not depends on domain (lambda files)' " + - "test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass", + "test has failed. \n" + + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -415,16 +428,18 @@ class Architecture2Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when dependency is set that presentation layer not depends on domain (parameter scope)' " + - "test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass", + "test has failed. \n" + + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -447,16 +462,18 @@ class Architecture2Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when dependency is set that presentation layer not depends on domain (parameter files)' " + - "test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass", + "test has failed. \n" + + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -521,13 +538,16 @@ class Architecture2Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" + result.message.shouldBeEqualTo( "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (lambda scope)' " + - "test has failed. \n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", + "test has failed. \n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass " + + "($filepath:3:1)" ) } @@ -543,13 +563,16 @@ class Architecture2Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" + result.message.shouldBeEqualTo( "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (lambda files)' " + - "test has failed. \n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", + "test has failed. \n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass " + + "($filepath:3:1)" ) } @@ -569,13 +592,16 @@ class Architecture2Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" + result.message.shouldBeEqualTo( "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (parameter scope)' " + - "test has failed. \n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", + "test has failed. \n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass " + + "($filepath:3:1)" ) } @@ -595,13 +621,16 @@ class Architecture2Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" + result.message.shouldBeEqualTo( "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (parameter files)' " + - "test has failed. \n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass", + "test has failed. \n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass " + + "($filepath:3:1)" ) } // endregion diff --git a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture4/Architecture4Test.kt b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture4/Architecture4Test.kt index 310e9184da..9a6dd67101 100644 --- a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture4/Architecture4Test.kt +++ b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture4/Architecture4Test.kt @@ -151,17 +151,20 @@ class Architecture4Test { } // then + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/" + + "architecture4/project/data/sample/DataThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when (lambda scope)' test has failed. \n" + - "Layer 'Presentation' does not depends on 'Data' layer.\n" + - "Layer 'Domain' does not depends on 'Data' layer.\n" + - "'Data' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/" + - "architecture4/project/data/sample/DataThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass", + "Layer 'Presentation' does not depends on 'Data' layer.\n" + + "Layer 'Domain' does not depends on 'Data' layer.\n" + + "'Data' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -180,17 +183,19 @@ class Architecture4Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture4/project/data/sample/DataThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when (lambda files)' test has failed. \n" + - "Layer 'Presentation' does not depends on 'Data' layer.\n" + - "Layer 'Domain' does not depends on 'Data' layer.\n" + - "'Data' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture4/project/data/sample/DataThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass", + "Layer 'Presentation' does not depends on 'Data' layer.\n" + + "Layer 'Domain' does not depends on 'Data' layer.\n" + + "'Data' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -211,17 +216,19 @@ class Architecture4Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture4/project/data/sample/DataThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when (parameter scope)' test has failed. \n" + - "Layer 'Presentation' does not depends on 'Data' layer.\n" + - "Layer 'Domain' does not depends on 'Data' layer.\n" + - "'Data' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture4/project/data/sample/DataThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass", + "Layer 'Presentation' does not depends on 'Data' layer.\n" + + "Layer 'Domain' does not depends on 'Data' layer.\n" + + "'Data' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -244,17 +251,19 @@ class Architecture4Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture4/project/data/sample/DataThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when (parameter files)' test has failed. \n" + - "Layer 'Presentation' does not depends on 'Data' layer.\n" + - "Layer 'Domain' does not depends on 'Data' layer.\n" + - "'Data' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture4/project/data/sample/DataThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass", + "Layer 'Presentation' does not depends on 'Data' layer.\n" + + "Layer 'Domain' does not depends on 'Data' layer.\n" + + "'Data' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -272,15 +281,17 @@ class Architecture4Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when using doesNotDependsOn (lambda scope)' test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass", + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -297,15 +308,17 @@ class Architecture4Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when using doesNotDependsOn (lambda files)' test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass", + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -325,15 +338,17 @@ class Architecture4Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when using doesNotDependsOn (parameter scope)' test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass", + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -354,15 +369,17 @@ class Architecture4Test { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'fails when using doesNotDependsOn (parameter files)' test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass", + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } diff --git a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt index e18865888d..f80fc16011 100644 --- a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt +++ b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt @@ -42,15 +42,17 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'error message when additionalMessage and testName parameters are not provided (scope)' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -66,16 +68,18 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'error message when additionalMessage is provided and testName is not provided (scope)' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -91,15 +95,17 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -118,16 +124,18 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -145,15 +153,17 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'error message when additionalMessage and testName parameters are not provided (files)' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -171,16 +181,18 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'error message when additionalMessage is provided and testName is not provided (files)' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -198,15 +210,17 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -227,16 +241,18 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -256,16 +272,18 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'error message when additionalMessage and testName parameters are not provided and architecture is passed " + - "as parameter (scope)' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "as parameter (scope)' test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -281,21 +299,26 @@ class OptionalParametersTest { // when val result = shouldThrow { - scope.assertArchitecture(additionalMessage = "SOME ADDITIONAL MESSAGE", layerDependenciesFunc = layerDependencies) + scope.assertArchitecture( + additionalMessage = "SOME ADDITIONAL MESSAGE", + layerDependenciesFunc = layerDependencies + ) } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'error message when additionalMessage is provided, testName is not provided and architecture is passed as " + - "parameter (scope)' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "parameter (scope)' test has failed. \n" + + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -315,15 +338,17 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -347,16 +372,18 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -378,16 +405,18 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'error message when additionalMessage and testName parameters are not provided and architecture is passed " + - "as parameter (files)' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "as parameter (files)' test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -405,21 +434,26 @@ class OptionalParametersTest { shouldThrow { scope .files - .assertArchitecture(additionalMessage = "SOME ADDITIONAL MESSAGE", layerDependenciesFunc = layerDependencies) + .assertArchitecture( + additionalMessage = "SOME ADDITIONAL MESSAGE", + layerDependenciesFunc = layerDependencies + ) } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/" + + "project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'error message when additionalMessage is provided, testName is not provided and architecture is passed " + - "as parameter (files)' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/" + - "project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "as parameter (files)' test has failed. \n" + + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -441,15 +475,17 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -475,16 +511,18 @@ class OptionalParametersTest { } // then + val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" + result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + - "optionalparameters/project/presentation/sample/PresentationThirdClass.kt\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass", + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", ) } } From 37a654c7d483daaacd793eec939e5212a35aa8b2 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Fri, 22 Nov 2024 11:26:35 +0100 Subject: [PATCH 18/19] clean code --- .../architecture2/Architecture2Test.kt | 172 ++++++++------- .../architecture4/Architecture4Test.kt | 103 ++++----- .../OptionalParametersTest.kt | 204 ++++++++++-------- 3 files changed, 255 insertions(+), 224 deletions(-) diff --git a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt index b1ca5df6b7..4b660437b1 100644 --- a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt +++ b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt @@ -99,8 +99,8 @@ class Architecture2Test { .message .shouldBeEqualTo( "'fails when dependency is set that domain layer depend on presentation domain layer (lambda scope)' " + - "test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.", + "test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.", ) } @@ -121,8 +121,8 @@ class Architecture2Test { .message .shouldBeEqualTo( "'fails when dependency is set that domain layer depend on presentation domain layer (lambda files)' " + - "test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.", + "test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.", ) } @@ -145,8 +145,8 @@ class Architecture2Test { .message .shouldBeEqualTo( "'fails when dependency is set to domain layer depends on presentation layer (parameter scope)' " + - "test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.", + "test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.", ) } @@ -171,7 +171,7 @@ class Architecture2Test { .message .shouldBeEqualTo( "'fails when dependency is set to domain layer depends on presentation layer (parameter files)' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.", + "Layer 'Domain' does not depends on 'Presentation' layer.", ) } @@ -239,18 +239,19 @@ class Architecture2Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'fails when dependency is set that domain layer is depend on presentation layer (parameter scope)' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -268,19 +269,20 @@ class Architecture2Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'fails when dependency is set that domain layer is depend on presentation layer (parameter files)' " + - "test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -301,19 +303,20 @@ class Architecture2Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'fails when dependency is set that domain layer is depend on presentation layer (lambda scope)' " + - "test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -336,19 +339,20 @@ class Architecture2Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'fails when dependency is set that domain layer is depend on presentation layer (lambda files)' " + - "test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass " + - "($filepath:3:1)" + "test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project." + + "domain.DomainFirstClass ($filepath:3:1)", ) } @@ -367,18 +371,19 @@ class Architecture2Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'fails when dependency is set that presentation layer not depends on domain (lambda scope)' " + - "test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "test has failed. \n" + + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -396,18 +401,19 @@ class Architecture2Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'fails when dependency is set that presentation layer not depends on domain (lambda files)' " + - "test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "test has failed. \n" + + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -428,18 +434,19 @@ class Architecture2Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'fails when dependency is set that presentation layer not depends on domain (parameter scope)' " + - "test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "test has failed. \n" + + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -462,18 +469,19 @@ class Architecture2Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'fails when dependency is set that presentation layer not depends on domain (parameter files)' " + - "test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "test has failed. \n" + + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -538,16 +546,16 @@ class Architecture2Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" result.message.shouldBeEqualTo( "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (lambda scope)' " + - "test has failed. \n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass " + - "($filepath:3:1)" + "test has failed. \n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.assertarchitecture." + + "architecture2.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -563,16 +571,16 @@ class Architecture2Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" result.message.shouldBeEqualTo( "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (lambda files)' " + - "test has failed. \n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass " + - "($filepath:3:1)" + "test has failed. \n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.assertarchitecture." + + "architecture2.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -592,16 +600,16 @@ class Architecture2Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" result.message.shouldBeEqualTo( "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (parameter scope)' " + - "test has failed. \n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass " + - "($filepath:3:1)" + "test has failed. \n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.assertarchitecture." + + "architecture2.project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -621,16 +629,16 @@ class Architecture2Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture2/project/presentation/sample/PresentationThirdClass.kt" result.message.shouldBeEqualTo( "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (parameter files)' " + - "test has failed. \n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project.domain.DomainFirstClass " + - "($filepath:3:1)" + "test has failed. \n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.assertarchitecture." + + "architecture2.project.domain.DomainFirstClass ($filepath:3:1)", ) } // endregion diff --git a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture4/Architecture4Test.kt b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture4/Architecture4Test.kt index 9a6dd67101..c63381e412 100644 --- a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture4/Architecture4Test.kt +++ b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture4/Architecture4Test.kt @@ -153,18 +153,18 @@ class Architecture4Test { // then val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/" + - "architecture4/project/data/sample/DataThirdClass.kt" + "architecture4/project/data/sample/DataThirdClass.kt" result .message .shouldBeEqualTo( "'fails when (lambda scope)' test has failed. \n" + - "Layer 'Presentation' does not depends on 'Data' layer.\n" + - "Layer 'Domain' does not depends on 'Data' layer.\n" + - "'Data' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "Layer 'Presentation' does not depends on 'Data' layer.\n" + + "Layer 'Domain' does not depends on 'Data' layer.\n" + + "'Data' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -183,19 +183,20 @@ class Architecture4Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/data/sample/DataThirdClass.kt" result .message .shouldBeEqualTo( "'fails when (lambda files)' test has failed. \n" + - "Layer 'Presentation' does not depends on 'Data' layer.\n" + - "Layer 'Domain' does not depends on 'Data' layer.\n" + - "'Data' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "Layer 'Presentation' does not depends on 'Data' layer.\n" + + "Layer 'Domain' does not depends on 'Data' layer.\n" + + "'Data' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -216,19 +217,20 @@ class Architecture4Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/data/sample/DataThirdClass.kt" result .message .shouldBeEqualTo( "'fails when (parameter scope)' test has failed. \n" + - "Layer 'Presentation' does not depends on 'Data' layer.\n" + - "Layer 'Domain' does not depends on 'Data' layer.\n" + - "'Data' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "Layer 'Presentation' does not depends on 'Data' layer.\n" + + "Layer 'Domain' does not depends on 'Data' layer.\n" + + "'Data' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -251,19 +253,20 @@ class Architecture4Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/data/sample/DataThirdClass.kt" result .message .shouldBeEqualTo( "'fails when (parameter files)' test has failed. \n" + - "Layer 'Presentation' does not depends on 'Data' layer.\n" + - "Layer 'Domain' does not depends on 'Data' layer.\n" + - "'Data' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "Layer 'Presentation' does not depends on 'Data' layer.\n" + + "Layer 'Domain' does not depends on 'Data' layer.\n" + + "'Data' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -281,17 +284,18 @@ class Architecture4Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'fails when using doesNotDependsOn (lambda scope)' test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -308,17 +312,18 @@ class Architecture4Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'fails when using doesNotDependsOn (lambda files)' test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -338,17 +343,18 @@ class Architecture4Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'fails when using doesNotDependsOn (parameter scope)' test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -369,17 +375,18 @@ class Architecture4Test { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "assertarchitecture/architecture4/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'fails when using doesNotDependsOn (parameter files)' test has failed. \n" + - "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "'Presentation' layer does not depends on 'Domain' layer failed. Files that depend on 'Domain' layer:\n" + + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture4." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } diff --git a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt index f80fc16011..34f5ac90a8 100644 --- a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt +++ b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt @@ -42,17 +42,18 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'error message when additionalMessage and testName parameters are not provided (scope)' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -68,18 +69,19 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'error message when additionalMessage is provided and testName is not provided (scope)' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -95,17 +97,18 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -124,18 +127,19 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -153,17 +157,18 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'error message when additionalMessage and testName parameters are not provided (files)' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -181,18 +186,19 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'error message when additionalMessage is provided and testName is not provided (files)' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -210,17 +216,18 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -241,18 +248,19 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -272,18 +280,19 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'error message when additionalMessage and testName parameters are not provided and architecture is passed " + - "as parameter (scope)' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "as parameter (scope)' test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -301,24 +310,25 @@ class OptionalParametersTest { shouldThrow { scope.assertArchitecture( additionalMessage = "SOME ADDITIONAL MESSAGE", - layerDependenciesFunc = layerDependencies + layerDependenciesFunc = layerDependencies, ) } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'error message when additionalMessage is provided, testName is not provided and architecture is passed as " + - "parameter (scope)' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "parameter (scope)' test has failed. \n" + + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -338,17 +348,18 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -372,18 +383,19 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -405,18 +417,19 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'error message when additionalMessage and testName parameters are not provided and architecture is passed " + - "as parameter (files)' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "as parameter (files)' test has failed. \n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -436,24 +449,25 @@ class OptionalParametersTest { .files .assertArchitecture( additionalMessage = "SOME ADDITIONAL MESSAGE", - layerDependenciesFunc = layerDependencies + layerDependenciesFunc = layerDependencies, ) } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/" + "project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'error message when additionalMessage is provided, testName is not provided and architecture is passed " + - "as parameter (files)' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "as parameter (files)' test has failed. \n" + + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -475,17 +489,18 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } @@ -511,18 +526,19 @@ class OptionalParametersTest { } // then - val filepath = "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + + val filepath = + "file://$rootPath/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/" + "optionalparameters/project/presentation/sample/PresentationThirdClass.kt" result .message .shouldBeEqualTo( "'SOME CUSTOM TEST NAME' test has failed. \n" + - "SOME ADDITIONAL MESSAGE\n" + - "Layer 'Domain' does not depends on 'Presentation' layer.\n" + - "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n" + - " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain.DomainFirstClass ($filepath:3:1)", + "SOME ADDITIONAL MESSAGE\n" + + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + + "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + + "project.domain.DomainFirstClass ($filepath:3:1)", ) } } From bda531ac6e28b08d8be5425f854e7f9027779895 Mon Sep 17 00:00:00 2001 From: NataliaPeterwas <111683562+nataliapeterwas@users.noreply.github.com> Date: Fri, 22 Nov 2024 11:48:18 +0100 Subject: [PATCH 19/19] clean code --- .../architecture2/Architecture2Test.kt | 20 +++-- .../OptionalParametersTest.kt | 80 +++++++++++-------- 2 files changed, 60 insertions(+), 40 deletions(-) diff --git a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt index 4b660437b1..a350ff8f19 100644 --- a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt +++ b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/assertarchitecture/architecture2/Architecture2Test.kt @@ -554,8 +554,9 @@ class Architecture2Test { "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (lambda scope)' " + "test has failed. \n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.assertarchitecture." + - "architecture2.project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project." + + "domain.DomainFirstClass ($filepath:3:1)", ) } @@ -579,8 +580,9 @@ class Architecture2Test { "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (lambda files)' " + "test has failed. \n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.assertarchitecture." + - "architecture2.project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project." + + "domain.DomainFirstClass ($filepath:3:1)", ) } @@ -608,8 +610,9 @@ class Architecture2Test { "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (parameter scope)' " + "test has failed. \n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.assertarchitecture." + - "architecture2.project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project." + + "domain.DomainFirstClass ($filepath:3:1)", ) } @@ -637,8 +640,9 @@ class Architecture2Test { "'fails when dependency is set that presentation layer depends on nothing and domain layer is included (parameter files)' " + "test has failed. \n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.assertarchitecture." + - "architecture2.project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.assertarchitecture.architecture2.project." + + "domain.DomainFirstClass ($filepath:3:1)", ) } // endregion diff --git a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt index 34f5ac90a8..652bf0b0cd 100644 --- a/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt +++ b/lib/src/apiTest/kotlin/com/lemonappdev/konsist/architecture/optionalparameters/OptionalParametersTest.kt @@ -52,8 +52,9 @@ class OptionalParametersTest { "'error message when additionalMessage and testName parameters are not provided (scope)' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -80,8 +81,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -107,8 +109,9 @@ class OptionalParametersTest { "'SOME CUSTOM TEST NAME' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -138,8 +141,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -167,8 +171,9 @@ class OptionalParametersTest { "'error message when additionalMessage and testName parameters are not provided (files)' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -197,8 +202,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -226,8 +232,9 @@ class OptionalParametersTest { "'SOME CUSTOM TEST NAME' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -259,8 +266,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -291,8 +299,9 @@ class OptionalParametersTest { "as parameter (scope)' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -327,8 +336,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -358,8 +368,9 @@ class OptionalParametersTest { "'SOME CUSTOM TEST NAME' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -394,8 +405,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -428,8 +440,9 @@ class OptionalParametersTest { "as parameter (files)' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -466,8 +479,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -499,8 +513,9 @@ class OptionalParametersTest { "'SOME CUSTOM TEST NAME' test has failed. \n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } @@ -537,8 +552,9 @@ class OptionalParametersTest { "SOME ADDITIONAL MESSAGE\n" + "Layer 'Domain' does not depends on 'Presentation' layer.\n" + "'Presentation' layer should not depend on anything but has dependencies in files:\n" + - "└── File $filepath\n └── Import com.lemonappdev.konsist.architecture.optionalparameters." + - "project.domain.DomainFirstClass ($filepath:3:1)", + "└── File $filepath\n" + + " └── Import com.lemonappdev.konsist.architecture.optionalparameters.project.domain." + + "DomainFirstClass ($filepath:3:1)", ) } }