From 88f440f04e72d5687eb174db0ebd0a9a2d01e2b7 Mon Sep 17 00:00:00 2001 From: Emil Simeonov Date: Sat, 15 Feb 2025 23:53:58 +0100 Subject: [PATCH 1/6] Add dev.mokkery as a mocking library --- shared/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index c1fa830..4394213 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -1,6 +1,7 @@ plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidLibrary) + id("dev.mokkery") version "2.0.0" } kotlin { -- 2.39.5 From 0f31c57c6c9a2868da798aed830b535dbad7475e Mon Sep 17 00:00:00 2001 From: Emil Simeonov Date: Sun, 16 Feb 2025 00:16:40 +0100 Subject: [PATCH 2/6] Add kotlinx-datetime library --- shared/build.gradle.kts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index 4394213..7eaf2cc 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -1,3 +1,7 @@ +val versions = mapOf( + "kotlinx-datetime" to "0.6.2" +) + plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidLibrary) @@ -27,6 +31,7 @@ kotlin { sourceSets { commonMain.dependencies { //put your multiplatform dependencies here + implementation("org.jetbrains.kotlinx:kotlinx-datetime:${versions["kotlinx-datetime"]}") } commonTest.dependencies { implementation(libs.kotlin.test) -- 2.39.5 From b0c0c8464a3ad8b0d2df852b395d2ecadb31e684 Mon Sep 17 00:00:00 2001 From: Emil Simeonov Date: Sun, 16 Feb 2025 02:35:50 +0100 Subject: [PATCH 3/6] Remove comment --- shared/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index 7eaf2cc..31efdb8 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -30,7 +30,6 @@ kotlin { sourceSets { commonMain.dependencies { - //put your multiplatform dependencies here implementation("org.jetbrains.kotlinx:kotlinx-datetime:${versions["kotlinx-datetime"]}") } commonTest.dependencies { -- 2.39.5 From 6f762a40ebabb1ed20ed3b087157cdb1dbf7e8e4 Mon Sep 17 00:00:00 2001 From: Emil Simeonov Date: Sun, 16 Feb 2025 02:41:13 +0100 Subject: [PATCH 4/6] Add open-all plugin --- shared/build.gradle.kts | 6 ++++++ .../kotlin/com/tle/astrologylibrary/OpenForMokkery.kt | 3 +++ 2 files changed, 9 insertions(+) create mode 100644 shared/src/commonMain/kotlin/com/tle/astrologylibrary/OpenForMokkery.kt diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index 31efdb8..cc5d678 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -6,6 +6,7 @@ plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidLibrary) id("dev.mokkery") version "2.0.0" + kotlin("plugin.allopen") version "2.1.10" } kotlin { @@ -49,3 +50,8 @@ android { targetCompatibility = JavaVersion.VERSION_1_8 } } + +allOpen { + annotation("com.tle.astrologylibrary.OpenForMokkery") + // annotations("com.another.Annotation", "com.third.Annotation") +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/tle/astrologylibrary/OpenForMokkery.kt b/shared/src/commonMain/kotlin/com/tle/astrologylibrary/OpenForMokkery.kt new file mode 100644 index 0000000..f37a50d --- /dev/null +++ b/shared/src/commonMain/kotlin/com/tle/astrologylibrary/OpenForMokkery.kt @@ -0,0 +1,3 @@ +package com.tle.astrologylibrary + +annotation class OpenForMokkery() \ No newline at end of file -- 2.39.5 From 300bfbda1c8a0102082fb2dd9778c73cf603077a Mon Sep 17 00:00:00 2001 From: Emil Simeonov Date: Sun, 16 Feb 2025 02:41:40 +0100 Subject: [PATCH 5/6] Add unit tests with mocking --- .../kotlin/com/tle/astrologylibrary/Subject.kt | 10 ++++++++++ .../com/tle/astrologylibrary/SubjectTest.kt | 16 ++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 shared/src/commonMain/kotlin/com/tle/astrologylibrary/Subject.kt create mode 100644 shared/src/commonTest/kotlin/com/tle/astrologylibrary/SubjectTest.kt diff --git a/shared/src/commonMain/kotlin/com/tle/astrologylibrary/Subject.kt b/shared/src/commonMain/kotlin/com/tle/astrologylibrary/Subject.kt new file mode 100644 index 0000000..4f4d4d6 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/tle/astrologylibrary/Subject.kt @@ -0,0 +1,10 @@ +package com.tle.astrologylibrary + +@OpenForMokkery +class A constructor() +@OpenForMokkery +class B constructor() +class Subject(a: A, b: B) { + val a: A = a + val b: B = b +} \ No newline at end of file diff --git a/shared/src/commonTest/kotlin/com/tle/astrologylibrary/SubjectTest.kt b/shared/src/commonTest/kotlin/com/tle/astrologylibrary/SubjectTest.kt new file mode 100644 index 0000000..c655c8c --- /dev/null +++ b/shared/src/commonTest/kotlin/com/tle/astrologylibrary/SubjectTest.kt @@ -0,0 +1,16 @@ +package com.tle.astrologylibrary + +import dev.mokkery.mock +import kotlin.test.Test +import kotlin.test.assertEquals + +class SubjectTest { + @Test + fun testCreateSubject() { + val a = mock {} + val b = mock {} + val subject = Subject(a, b) + assertEquals(a, subject.a) + assertEquals(b, subject.b) + } +} -- 2.39.5 From 35726da0dcba26ddcbd31441ead1b0863982afeb Mon Sep 17 00:00:00 2001 From: Emil Simeonov Date: Sun, 16 Feb 2025 02:43:34 +0100 Subject: [PATCH 6/6] Simplify code --- .../commonMain/kotlin/com/tle/astrologylibrary/Subject.kt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/shared/src/commonMain/kotlin/com/tle/astrologylibrary/Subject.kt b/shared/src/commonMain/kotlin/com/tle/astrologylibrary/Subject.kt index 4f4d4d6..512113b 100644 --- a/shared/src/commonMain/kotlin/com/tle/astrologylibrary/Subject.kt +++ b/shared/src/commonMain/kotlin/com/tle/astrologylibrary/Subject.kt @@ -4,7 +4,4 @@ package com.tle.astrologylibrary class A constructor() @OpenForMokkery class B constructor() -class Subject(a: A, b: B) { - val a: A = a - val b: B = b -} \ No newline at end of file +class Subject(val a: A, val b: B) \ No newline at end of file -- 2.39.5