Beispiel #1
0
        public void FlagsAreSavedToPersistentStorageByDefault()
        {
            var storage      = new MockPersistentDataStore();
            var initialFlags = new DataSetBuilder().Add("flag", 1, LdValue.Of(100), 0).Build();
            var config       = BasicConfig()
                               .DataSource(MockPollingProcessor.Factory(initialFlags))
                               .Persistence(Components.Persistence().Storage(storage.AsSingletonFactory()))
                               .Build();

            using (var client = TestUtil.CreateClient(config, BasicUser))
            {
                var storedData = storage.InspectUserData(config.MobileKey, BasicUser.Key);
                Assert.NotNull(storedData);
                AssertHelpers.DataSetsEqual(initialFlags, storedData.Value);
            }
        }
Beispiel #2
0
        public void EventsAreSentToCorrectEndpointAsync(
            string baseUriExtraPath,
            string expectedAnalyticsPath,
            string expectedDiagnosticsPath
            )
        {
            using (var server = HttpServer.Start(Handlers.Status(202)))
            {
                var config = BasicConfig()
                             .DataSource(MockPollingProcessor.Factory(DataSetBuilder.Empty))
                             .Events(Components.SendEvents())
                             .ServiceEndpoints(Components.ServiceEndpoints().Events(server.Uri.ToString().TrimEnd('/') + baseUriExtraPath))
                             .Build();

                using (var client = TestUtil.CreateClient(config, _user))
                {
                    client.Flush();
                    var req1 = server.Recorder.RequireRequest(TimeSpan.FromSeconds(5));
                    var req2 = server.Recorder.RequireRequest(TimeSpan.FromSeconds(5));

                    if (req1.Path.EndsWith("diagnostic"))
                    {
                        var temp = req1;
                        req1 = req2;
                        req2 = temp;
                    }

                    Assert.Equal("POST", req1.Method);
                    Assert.Equal(expectedAnalyticsPath, req1.Path);
                    Assert.Equal(LdValueType.Array, LdValue.Parse(req1.Body).Type);

                    Assert.Equal("POST", req2.Method);
                    Assert.Equal(expectedDiagnosticsPath, req2.Path);
                    Assert.Equal(LdValueType.Object, LdValue.Parse(req2.Body).Type);
                }
            }
        }