From 47caf2629c0e7b926259fa47c4a2d234b69d2490 Mon Sep 17 00:00:00 2001 From: irineu silva Date: Thu, 17 Aug 2023 05:12:54 -0300 Subject: [PATCH 01/14] feat: create Resource --- src/main/kotlin/Resource.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/main/kotlin/Resource.kt diff --git a/src/main/kotlin/Resource.kt b/src/main/kotlin/Resource.kt new file mode 100644 index 0000000..a9efa29 --- /dev/null +++ b/src/main/kotlin/Resource.kt @@ -0,0 +1,11 @@ +sealed class Resource { + + sealed class Result : Resource() { + + data class Success(val data: T) : Result() + + data class Failure(val error: E) : Result() + } + + data object Loading : Resource() +} \ No newline at end of file From be549a830b19a8adbf0a67d9f52073da96c72c10 Mon Sep 17 00:00:00 2001 From: irineu silva Date: Thu, 17 Aug 2023 05:38:47 -0300 Subject: [PATCH 02/14] test: create Resource unit test --- src/test/kotlin/ResourceTest.kt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/test/kotlin/ResourceTest.kt diff --git a/src/test/kotlin/ResourceTest.kt b/src/test/kotlin/ResourceTest.kt new file mode 100644 index 0000000..cf06f79 --- /dev/null +++ b/src/test/kotlin/ResourceTest.kt @@ -0,0 +1,22 @@ +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.Test + +class ResourceTest { + + @Test + fun successResult_shouldHoldData() { + val success = Resource.Result.Success("Test Data") + assertEquals("Test Data", success.data) + } + + @Test + fun failureResult_shouldHoldError() { + val failure = Resource.Result.Failure("Test Error") + assertEquals("Test Error", failure.error) + } + + @Test + fun loadingResource_shouldBeLoading() { + assertEquals(Resource.Loading, Resource.Loading) + } +} \ No newline at end of file From 2c596c04a555def07b90509f63a4d7c44e9c2316 Mon Sep 17 00:00:00 2001 From: irineu silva Date: Thu, 17 Aug 2023 05:51:22 -0300 Subject: [PATCH 03/14] feat: create Result::toResource extension --- .idea/gradle.xml | 1 + src/main/kotlin/extension/Result.kt | 9 +++++++++ src/test/kotlin/extension/ResultKtTest.kt | 24 +++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 src/main/kotlin/extension/Result.kt create mode 100644 src/test/kotlin/extension/ResultKtTest.kt diff --git a/.idea/gradle.xml b/.idea/gradle.xml index f9163b4..ce1c62c 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,5 +1,6 @@ +