Ejemplo n.º 1
0
 public PollingProcessorTest()
 {
     _mockFeatureRequestor = new Mock <IFeatureRequestor>();
     _featureRequestor     = _mockFeatureRequestor.Object;
     _featureStore         = new InMemoryFeatureStore();
     _config = Configuration.Default("SDK_KEY");
 }
Ejemplo n.º 2
0
 public StreamProcessorTest()
 {
     _mockEventSource = new Mock <IEventSource>();
     _mockEventSource.Setup(es => es.StartAsync()).Returns(Task.CompletedTask);
     _eventSource   = _mockEventSource.Object;
     _mockRequestor = new Mock <IFeatureRequestor>();
     _requestor     = _mockRequestor.Object;
     _featureStore  = new InMemoryFeatureStore();
     _config        = Client.Configuration.Default(SDK_KEY).WithFeatureStore(_featureStore);
 }
Ejemplo n.º 3
0
 public StreamProcessorTest()
 {
     _mockEventSource = new Mock <IEventSource>();
     _mockEventSource.Setup(es => es.StartAsync()).Returns(Task.CompletedTask);
     _eventSource        = _mockEventSource.Object;
     _eventSourceFactory = new TestEventSourceFactory(_eventSource);
     _mockRequestor      = new Mock <IFeatureRequestor>();
     _requestor          = _mockRequestor.Object;
     _featureStore       = TestUtils.InMemoryFeatureStore();
     _config             = Client.Configuration.Builder(SDK_KEY)
                           .FeatureStoreFactory(TestUtils.SpecificFeatureStore(_featureStore))
                           .Build();
 }
Ejemplo n.º 4
0
        public void EvaluatingUnknownFlagGeneratesEvent()
        {
            IFeatureStore      featureStore = new InMemoryFeatureStore();
            MockEventProcessor ep           = new MockEventProcessor();
            LdClient           client       = MakeClient(featureStore, ep);

            User user = User.WithKey("user");

            client.StringVariation("badflag", user, "default");

            Assert.Collection(ep.Events,
                              e => CheckUnknownFlagEvent(e, "badflag", user, new JValue("default")));
        }
Ejemplo n.º 5
0
        public void OfflineClientGetsFlagFromFeatureStore()
        {
            var featureStore = new InMemoryFeatureStore();

            featureStore.Upsert(VersionedDataKind.Features,
                                new FeatureFlagBuilder("key").OffWithValue(new JValue(true)).Build());
            var config = Configuration.Default("SDK_KEY")
                         .WithOffline(true)
                         .WithFeatureStoreFactory(TestUtils.SpecificFeatureStore(featureStore));

            using (var client = new LdClient(config))
            {
                Assert.Equal(true, client.BoolVariation("key", User.WithKey("user"), false));
            }
        }
Ejemplo n.º 6
0
        public void AllFlagsReturnsNullIfNeitherClientNorFeatureStoreIsInited()
        {
            var featureStore = new InMemoryFeatureStore();
            var flag         = new FeatureFlagBuilder("key").OffWithValue(new JValue(1)).Build();

            featureStore.Upsert(VersionedDataKind.Features, flag); // but the store is still not inited

            var config = Configuration.Default("SDK_KEY").WithStartWaitTime(TimeSpan.Zero)
                         .WithFeatureStoreFactory(TestUtils.SpecificFeatureStore(featureStore))
                         .WithUpdateProcessorFactory(TestUtils.SpecificUpdateProcessor(updateProcessor))
                         .WithEventProcessorFactory(Components.NullEventProcessor);

            using (var client = new LdClient(config))
            {
                Assert.Null(client.AllFlags(User.WithKey("user")));
            }
        }
Ejemplo n.º 7
0
        public void EvaluationUsesFeatureStoreIfClientIsNotInitedButStoreIsInited()
        {
            var featureStore = new InMemoryFeatureStore();

            featureStore.Init(new Dictionary <IVersionedDataKind, IDictionary <string, IVersionedData> >());
            var flag = new FeatureFlagBuilder("key").OffWithValue(new JValue(1)).Build();

            featureStore.Upsert(VersionedDataKind.Features, flag);

            var config = Configuration.Default("SDK_KEY").WithStartWaitTime(TimeSpan.Zero)
                         .WithFeatureStoreFactory(TestUtils.SpecificFeatureStore(featureStore))
                         .WithUpdateProcessorFactory(TestUtils.SpecificUpdateProcessor(updateProcessor))
                         .WithEventProcessorFactory(Components.NullEventProcessor);

            using (var client = new LdClient(config))
            {
                Assert.Equal(1, client.IntVariation("key", User.WithKey("user"), 0));
            }
        }
Ejemplo n.º 8
0
        public void EvaluatingFlagWithNullUserGeneratesEvent()
        {
            IFeatureStore      featureStore = new InMemoryFeatureStore();
            MockEventProcessor ep           = new MockEventProcessor();
            LdClient           client       = MakeClient(featureStore, ep);

            FeatureFlag flag = new FeatureFlagBuilder("flagkey")
                               .OffVariation(0)
                               .Variations(new List <JToken> {
                new JValue("a"), new JValue("b")
            })
                               .Build();

            featureStore.Upsert(VersionedDataKind.Features, flag);

            client.StringVariation("flagkey", null, "default");

            Assert.Collection(ep.Events,
                              e => CheckFlagEvent(e, flag, flag.Version, null, null, new JValue("default"), new JValue("default")));
        }
Ejemplo n.º 9
0
 public FeatureServiceTests()
 {
     _store = new InMemoryFeatureStore();
     _sut   = new FeatureService(_store);
 }
 public InMemoryFeatureStoreTest()
 {
     store = new InMemoryFeatureStore();
 }