Beispiel #1
0
        public async void IdentifyWithKeylessAnonUserPassesGeneratedUserToDataSource()
        {
            MockPollingProcessor stub = new MockPollingProcessor(DataSetBuilder.Empty);

            var config = BasicConfig()
                         .DataSource(stub.AsFactory())
                         .DeviceInfo(new MockDeviceInfo())
                         .Build();

            using (var client = await LdClient.InitAsync(config, BasicUser))
            {
                await client.IdentifyAsync(KeylessAnonUser);

                AssertHelpers.UsersEqualExcludingAutoProperties(
                    User.Builder(KeylessAnonUser).Key(client.User.Key).Build(),
                    client.User);
                Assert.Equal(client.User, stub.ReceivedUser);
            }
        }
Beispiel #2
0
        public async void IdentifyPassesUserToDataSource()
        {
            MockPollingProcessor stub = new MockPollingProcessor(DataSetBuilder.Empty);
            User newUser = User.WithKey("new-user");

            var config = BasicConfig()
                         .DataSource(stub.AsFactory())
                         .Build();

            using (var client = await LdClient.InitAsync(config, BasicUser))
            {
                AssertHelpers.UsersEqualExcludingAutoProperties(BasicUser, client.User);
                Assert.Equal(client.User, stub.ReceivedUser);

                await client.IdentifyAsync(newUser);

                AssertHelpers.UsersEqualExcludingAutoProperties(newUser, client.User);
                Assert.Equal(client.User, stub.ReceivedUser);
            }
        }
Beispiel #3
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);
                }
            }
        }