|
5 | 5 | import dev.openfeature.contrib.providers.flagd.resolver.grpc.GrpcConnector;
|
6 | 6 | import dev.openfeature.contrib.providers.flagd.resolver.grpc.GrpcResolver;
|
7 | 7 | import dev.openfeature.contrib.providers.flagd.resolver.grpc.cache.Cache;
|
8 |
| -import dev.openfeature.flagd.grpc.Schema.EventStreamResponse; |
9 | 8 | import dev.openfeature.flagd.grpc.Schema.ResolveBooleanRequest;
|
10 | 9 | import dev.openfeature.flagd.grpc.Schema.ResolveBooleanResponse;
|
11 | 10 | import dev.openfeature.flagd.grpc.Schema.ResolveFloatResponse;
|
|
15 | 14 | import dev.openfeature.flagd.grpc.ServiceGrpc;
|
16 | 15 | import dev.openfeature.flagd.grpc.ServiceGrpc.ServiceBlockingStub;
|
17 | 16 | import dev.openfeature.flagd.grpc.ServiceGrpc.ServiceStub;
|
| 17 | +import dev.openfeature.sdk.EvaluationContext; |
18 | 18 | import dev.openfeature.sdk.FlagEvaluationDetails;
|
19 | 19 | import dev.openfeature.sdk.ImmutableContext;
|
20 | 20 | import dev.openfeature.sdk.ImmutableMetadata;
|
|
50 | 50 | import static org.mockito.ArgumentMatchers.argThat;
|
51 | 51 | import static org.mockito.Mockito.mock;
|
52 | 52 | import static org.mockito.Mockito.mockStatic;
|
| 53 | +import static org.mockito.Mockito.times; |
53 | 54 | import static org.mockito.Mockito.verify;
|
54 | 55 | import static org.mockito.Mockito.when;
|
55 | 56 |
|
@@ -788,7 +789,35 @@ void contextMerging() throws Exception {
|
788 | 789 | ctx -> ctx.asMap().entrySet().containsAll(expectedCtx.entrySet())));
|
789 | 790 | }
|
790 | 791 |
|
791 |
| - // test utils |
| 792 | + @Test |
| 793 | + void initializationAndShutdown() throws Exception{ |
| 794 | + // given |
| 795 | + final FlagdProvider provider = new FlagdProvider(); |
| 796 | + final EvaluationContext ctx = new ImmutableContext(); |
| 797 | + |
| 798 | + final Resolver resolverMock = mock(Resolver.class); |
| 799 | + |
| 800 | + Field flagResolver = FlagdProvider.class.getDeclaredField("flagResolver"); |
| 801 | + flagResolver.setAccessible(true); |
| 802 | + flagResolver.set(provider, resolverMock); |
| 803 | + |
| 804 | + // when |
| 805 | + |
| 806 | + // validate multiple initialization |
| 807 | + provider.initialize(ctx); |
| 808 | + provider.initialize(ctx); |
| 809 | + |
| 810 | + // validate multiple shutdowns |
| 811 | + provider.shutdown(); |
| 812 | + provider.shutdown(); |
| 813 | + |
| 814 | + // then |
| 815 | + verify(resolverMock, times(1)).init(); |
| 816 | + verify(resolverMock, times(1)).shutdown(); |
| 817 | + } |
| 818 | + |
| 819 | + |
| 820 | + // test helper |
792 | 821 |
|
793 | 822 | // create provider with given grpc connector
|
794 | 823 | private FlagdProvider createProvider(GrpcConnector grpc) {
|
|
0 commit comments