From bc44bf0728be50e294f7bd5649ea42268fba4f63 Mon Sep 17 00:00:00 2001 From: Behzod Halil Date: Wed, 18 Oct 2023 11:46:25 +0900 Subject: [PATCH] feat: Add AccountUseCaseDomainArchitectureTest (#119) --- .../AccountUseCaseDomainArchitectureTest.kt | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 features/account/accountDomain/src/androidUnitTest/kotlin/AccountUseCaseDomainArchitectureTest.kt diff --git a/features/account/accountDomain/src/androidUnitTest/kotlin/AccountUseCaseDomainArchitectureTest.kt b/features/account/accountDomain/src/androidUnitTest/kotlin/AccountUseCaseDomainArchitectureTest.kt new file mode 100644 index 00000000..30fda4ab --- /dev/null +++ b/features/account/accountDomain/src/androidUnitTest/kotlin/AccountUseCaseDomainArchitectureTest.kt @@ -0,0 +1,62 @@ +import com.lemonappdev.konsist.api.Konsist +import com.lemonappdev.konsist.api.ext.list.withNameEndingWith +import com.lemonappdev.konsist.api.verify.assertTrue +import org.junit.Test + +class AccountUseCaseDomainArchitectureTest { + + @Test + fun `check account use case classes with 'UseCase' suffix in 'usecase' package`() { + Konsist + .scopeFromPackage("io.spherelabs.accountdomain.usecase") + .classes() + .run { + assertTrue { + it.hasNameEndingWith("UseCase") + } + assertTrue { + it.resideInPackage("..usecase..") + } + } + } + + @Test + fun `check account use case interfaces with 'UseCase' suffx in 'usecase' package`() { + Konsist + .scopeFromPackage("io.spherelabs.accountdomain.usecase") + .interfaces() + .run { + assertTrue { + it.hasNameEndingWith("UseCase") + } + assertTrue { + it.resideInPackage("..usecase..") + } + } + } + + + @Test + fun `check account interface with 'Repository' suffix in 'repository' package`() { + Konsist + .scopeFromPackage("io.spherelabs.accountdomain.repository") + .interfaces() + .withNameEndingWith("Repository") + .assertTrue { + it.resideInPackage("..repository..") + } + } + + @Test + fun `check use case function name is execute`() { + Konsist + .scopeFromPackage("io.spherelabs.accountdomain.usecase") + .classes() + .withNameEndingWith("UseCase") + .assertTrue { + it.hasFunction { function -> + function.name == "execute" && function.hasOverrideModifier + } + } + } +}