public void HttpConfigurationIsAppliedToEvents()
 {
     TestHttpUtils.TestWithSpecialHttpConfigurations(
         EventsAcceptedResponse,
         (targetUri, httpConfig, server) =>
     {
         var config = BasicConfig()
                      .DiagnosticOptOut(true)
                      .Events(Components.SendEvents())
                      .Http(httpConfig)
                      .ServiceEndpoints(Components.ServiceEndpoints().Events(targetUri))
                      .StartWaitTime(TimeSpan.FromSeconds(5))
                      .Build();
         using (var client = new LdClient(config))
         {
             client.Identify(User.WithKey("userkey"));
             client.Flush();
             server.Recorder.RequireRequest();
         }
     },
         TestLogger
         );
 }
        public void EventsAreSentToCorrectEndpoints(
            string baseUriExtraPath,
            string expectedBasePath
            )
        {
            using (var server = HttpServer.Start(EventsAcceptedResponse))
            {
                var baseUri = server.Uri.ToString().TrimEnd('/') + baseUriExtraPath;
                var config  = BasicConfig()
                              .Events(Components.SendEvents())
                              .ServiceEndpoints(Components.ServiceEndpoints().Events(baseUri))
                              .StartWaitTime(TimeSpan.FromSeconds(5))
                              .Build();

                using (var client = new LdClient(config))
                {
                    client.Identify(User.WithKey("userkey"));
                    client.Flush();

                    var request1 = server.Recorder.RequireRequest();
                    var request2 = server.Recorder.RequireRequest();

                    if (request1.Path.EndsWith("diagnostic"))
                    {
                        var temp = request1;
                        request1 = request2;
                        request2 = temp;
                    }

                    Assert.Equal("POST", request1.Method.ToUpper());
                    Assert.Equal(expectedBasePath + "/bulk", request1.Path);

                    Assert.Equal("POST", request2.Method.ToUpper());
                    Assert.Equal(expectedBasePath + "/diagnostic", request2.Path);
                }
            }
        }