Skip to content

Commit 5472c08

Browse files
committed
Update tests to represent to non-throwing pattern and api dump
Signed-off-by: penguindan <[email protected]>
1 parent 870ae07 commit 5472c08

File tree

4 files changed

+30
-36
lines changed

4 files changed

+30
-36
lines changed

kotlin-sdk/api/android/kotlin-sdk.api

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -744,27 +744,26 @@ public final class dev/openfeature/kotlin/sdk/exceptions/OpenFeatureError$TypeMi
744744
public fun getMessage ()Ljava/lang/String;
745745
}
746746

747-
public final class dev/openfeature/kotlin/sdk/multiprovider/FirstMatchStrategy : dev/openfeature/kotlin/sdk/multiprovider/Strategy {
747+
public final class dev/openfeature/kotlin/sdk/multiprovider/FirstMatchStrategy : dev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Strategy {
748748
public fun <init> ()V
749749
public fun evaluate (Ljava/util/List;Ljava/lang/String;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlin/jvm/functions/Function4;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
750750
}
751751

752-
public final class dev/openfeature/kotlin/sdk/multiprovider/FirstSuccessfulStrategy : dev/openfeature/kotlin/sdk/multiprovider/Strategy {
752+
public final class dev/openfeature/kotlin/sdk/multiprovider/FirstSuccessfulStrategy : dev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Strategy {
753753
public fun <init> ()V
754754
public fun evaluate (Ljava/util/List;Ljava/lang/String;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlin/jvm/functions/Function4;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
755755
}
756756

757757
public final class dev/openfeature/kotlin/sdk/multiprovider/MultiProvider : dev/openfeature/kotlin/sdk/FeatureProvider {
758758
public static final field Companion Ldev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Companion;
759-
public fun <init> (Ljava/util/List;Ldev/openfeature/kotlin/sdk/multiprovider/Strategy;)V
760-
public synthetic fun <init> (Ljava/util/List;Ldev/openfeature/kotlin/sdk/multiprovider/Strategy;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
759+
public fun <init> (Ljava/util/List;Ldev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Strategy;)V
760+
public synthetic fun <init> (Ljava/util/List;Ldev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Strategy;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
761761
public fun getBooleanEvaluation (Ljava/lang/String;ZLdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
762762
public fun getDoubleEvaluation (Ljava/lang/String;DLdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
763763
public fun getHooks ()Ljava/util/List;
764764
public fun getIntegerEvaluation (Ljava/lang/String;ILdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
765765
public fun getMetadata ()Ldev/openfeature/kotlin/sdk/ProviderMetadata;
766766
public fun getObjectEvaluation (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/Value;Ldev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
767-
public final fun getProviderCount ()I
768767
public final fun getStatusFlow ()Lkotlinx/coroutines/flow/StateFlow;
769768
public fun getStringEvaluation (Ljava/lang/String;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
770769
public fun initialize (Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -794,7 +793,7 @@ public final class dev/openfeature/kotlin/sdk/multiprovider/MultiProvider$ChildF
794793
public final class dev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Companion {
795794
}
796795

797-
public abstract interface class dev/openfeature/kotlin/sdk/multiprovider/Strategy {
796+
public abstract interface class dev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Strategy {
798797
public abstract fun evaluate (Ljava/util/List;Ljava/lang/String;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlin/jvm/functions/Function4;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
799798
}
800799

kotlin-sdk/api/jvm/kotlin-sdk.api

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -744,27 +744,26 @@ public final class dev/openfeature/kotlin/sdk/exceptions/OpenFeatureError$TypeMi
744744
public fun getMessage ()Ljava/lang/String;
745745
}
746746

747-
public final class dev/openfeature/kotlin/sdk/multiprovider/FirstMatchStrategy : dev/openfeature/kotlin/sdk/multiprovider/Strategy {
747+
public final class dev/openfeature/kotlin/sdk/multiprovider/FirstMatchStrategy : dev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Strategy {
748748
public fun <init> ()V
749749
public fun evaluate (Ljava/util/List;Ljava/lang/String;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlin/jvm/functions/Function4;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
750750
}
751751

752-
public final class dev/openfeature/kotlin/sdk/multiprovider/FirstSuccessfulStrategy : dev/openfeature/kotlin/sdk/multiprovider/Strategy {
752+
public final class dev/openfeature/kotlin/sdk/multiprovider/FirstSuccessfulStrategy : dev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Strategy {
753753
public fun <init> ()V
754754
public fun evaluate (Ljava/util/List;Ljava/lang/String;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlin/jvm/functions/Function4;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
755755
}
756756

757757
public final class dev/openfeature/kotlin/sdk/multiprovider/MultiProvider : dev/openfeature/kotlin/sdk/FeatureProvider {
758758
public static final field Companion Ldev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Companion;
759-
public fun <init> (Ljava/util/List;Ldev/openfeature/kotlin/sdk/multiprovider/Strategy;)V
760-
public synthetic fun <init> (Ljava/util/List;Ldev/openfeature/kotlin/sdk/multiprovider/Strategy;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
759+
public fun <init> (Ljava/util/List;Ldev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Strategy;)V
760+
public synthetic fun <init> (Ljava/util/List;Ldev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Strategy;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
761761
public fun getBooleanEvaluation (Ljava/lang/String;ZLdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
762762
public fun getDoubleEvaluation (Ljava/lang/String;DLdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
763763
public fun getHooks ()Ljava/util/List;
764764
public fun getIntegerEvaluation (Ljava/lang/String;ILdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
765765
public fun getMetadata ()Ldev/openfeature/kotlin/sdk/ProviderMetadata;
766766
public fun getObjectEvaluation (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/Value;Ldev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
767-
public final fun getProviderCount ()I
768767
public final fun getStatusFlow ()Lkotlinx/coroutines/flow/StateFlow;
769768
public fun getStringEvaluation (Ljava/lang/String;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
770769
public fun initialize (Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -794,7 +793,7 @@ public final class dev/openfeature/kotlin/sdk/multiprovider/MultiProvider$ChildF
794793
public final class dev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Companion {
795794
}
796795

797-
public abstract interface class dev/openfeature/kotlin/sdk/multiprovider/Strategy {
796+
public abstract interface class dev/openfeature/kotlin/sdk/multiprovider/MultiProvider$Strategy {
798797
public abstract fun evaluate (Ljava/util/List;Ljava/lang/String;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Lkotlin/jvm/functions/Function4;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
799798
}
800799

kotlin-sdk/src/commonTest/kotlin/dev/openfeature/kotlin/sdk/multiprovider/FirstMatchStrategyTests.kt

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import dev.openfeature.kotlin.sdk.exceptions.OpenFeatureError
77
import dev.openfeature.kotlin.sdk.helpers.RecordingBooleanProvider
88
import kotlin.test.Test
99
import kotlin.test.assertEquals
10-
import kotlin.test.assertFailsWith
1110

1211
class FirstMatchStrategyTests {
1312

@@ -121,22 +120,21 @@ class FirstMatchStrategyTests {
121120
}
122121

123122
@Test
124-
fun bubblesUpNonNotFoundExceptions() {
123+
fun returnsErrorResultForNonNotFoundExceptions() {
125124
val strategy = FirstMatchStrategy()
126125
val throwsGeneral = RecordingBooleanProvider(
127126
name = "throws-general",
128127
behavior = { throw OpenFeatureError.GeneralError("fail") }
129128
)
130-
131-
assertFailsWith<OpenFeatureError.GeneralError> {
132-
strategy.evaluate(
133-
listOf(throwsGeneral),
134-
key = "flag",
135-
defaultValue = false,
136-
evaluationContext = null,
137-
flagEval = FeatureProvider::getBooleanEvaluation
138-
)
139-
}
129+
val result = strategy.evaluate(
130+
listOf(throwsGeneral),
131+
key = "flag",
132+
defaultValue = false,
133+
evaluationContext = null,
134+
flagEval = FeatureProvider::getBooleanEvaluation
135+
)
136+
assertEquals(false, result.value)
137+
assertEquals(ErrorCode.GENERAL, result.errorCode)
140138
assertEquals(1, throwsGeneral.booleanEvalCalls)
141139
}
142140

kotlin-sdk/src/commonTest/kotlin/dev/openfeature/kotlin/sdk/multiprovider/FirstSuccessfulStrategyTests.kt

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import dev.openfeature.kotlin.sdk.exceptions.OpenFeatureError
66
import dev.openfeature.kotlin.sdk.helpers.RecordingBooleanProvider
77
import kotlin.test.Test
88
import kotlin.test.assertEquals
9-
import kotlin.test.assertFailsWith
109

1110
class FirstSuccessfulStrategyTests {
1211

@@ -70,7 +69,7 @@ class FirstSuccessfulStrategyTests {
7069
}
7170

7271
@Test
73-
fun throwsWhenNoProviderReturnsSuccess() {
72+
fun returnsErrorWhenNoProviderReturnsSuccess() {
7473
val strategy = FirstSuccessfulStrategy()
7574
val error1 = RecordingBooleanProvider("e1") {
7675
throw OpenFeatureError.GeneralError("boom1")
@@ -81,16 +80,15 @@ class FirstSuccessfulStrategyTests {
8180
val notFound = RecordingBooleanProvider("nf") {
8281
dev.openfeature.kotlin.sdk.ProviderEvaluation(false, errorCode = ErrorCode.FLAG_NOT_FOUND)
8382
}
84-
85-
assertFailsWith<OpenFeatureError.GeneralError> {
86-
strategy.evaluate(
87-
listOf(error1, error2, notFound),
88-
key = "flag",
89-
defaultValue = false,
90-
evaluationContext = null,
91-
flagEval = FeatureProvider::getBooleanEvaluation
92-
)
93-
}
83+
val result = strategy.evaluate(
84+
listOf(error1, error2, notFound),
85+
key = "flag",
86+
defaultValue = false,
87+
evaluationContext = null,
88+
flagEval = FeatureProvider::getBooleanEvaluation
89+
)
90+
assertEquals(false, result.value)
91+
assertEquals(ErrorCode.FLAG_NOT_FOUND, result.errorCode)
9492
assertEquals(1, error1.booleanEvalCalls)
9593
assertEquals(1, error2.booleanEvalCalls)
9694
assertEquals(1, notFound.booleanEvalCalls)

0 commit comments

Comments
 (0)