コード例 #1
0
        public void SendBulkEventsTask_WithRetries()
        {
            var events = new List <Event>
            {
                new Event {
                    key = "key-01"
                },
                new Event {
                    key = "key-02"
                },
                new Event {
                    key = "key-03"
                },
                new Event {
                    key = "key-04"
                },
                new Event {
                    key = "key-05"
                },
                new Event {
                    key = "key-06"
                }
            };

            var data = "[{\"key\":\"key-01\",\"timestamp\":0},{\"key\":\"key-02\",\"timestamp\":0},{\"key\":\"key-03\",\"timestamp\":0},{\"key\":\"key-04\",\"timestamp\":0},{\"key\":\"key-05\",\"timestamp\":0},{\"key\":\"key-06\",\"timestamp\":0}]";

            using (var httpClientMock = new HttpClientMock())
            {
                httpClientMock.Post_Response("/api/events/bulk", 500, data, "fail");

                var eventSdkApiClient = new EventSdkApiClient("api-key-test", new Dictionary <string, string>(), httpClientMock.GetUrl(), 10000, 10000, _telemetryRuntimeProducer.Object, _tasksManger, _wrapperAdapter, 6);
                eventSdkApiClient.SendBulkEventsTask(events);

                Thread.Sleep(5000);

                var logs = httpClientMock.GetEventsLog();
                Assert.AreEqual(3, logs.Count);

                foreach (var log in logs)
                {
                    Assert.IsTrue(log.RequestMessage.Body.Equals(data));
                }
            }
        }
コード例 #2
0
        public void SendBulkEventsTask_With3Bulks()
        {
            var events = new List <Event>
            {
                new Event {
                    key = "key-01"
                },
                new Event {
                    key = "key-02"
                },
                new Event {
                    key = "key-03"
                },
                new Event {
                    key = "key-04"
                },
                new Event {
                    key = "key-05"
                },
                new Event {
                    key = "key-06"
                },
                new Event {
                    key = "key-07"
                },
                new Event {
                    key = "key-08"
                },
                new Event {
                    key = "key-09"
                },
                new Event {
                    key = "key-10"
                },
                new Event {
                    key = "key-11"
                },
                new Event {
                    key = "key-12"
                },
                new Event {
                    key = "key-13"
                },
            };

            var data1 = "[{\"key\":\"key-01\",\"timestamp\":0},{\"key\":\"key-02\",\"timestamp\":0},{\"key\":\"key-03\",\"timestamp\":0},{\"key\":\"key-04\",\"timestamp\":0},{\"key\":\"key-05\",\"timestamp\":0}]";
            var data2 = "[{\"key\":\"key-06\",\"timestamp\":0},{\"key\":\"key-07\",\"timestamp\":0},{\"key\":\"key-08\",\"timestamp\":0},{\"key\":\"key-09\",\"timestamp\":0},{\"key\":\"key-10\",\"timestamp\":0}]";
            var data3 = "[{\"key\":\"key-11\",\"timestamp\":0},{\"key\":\"key-12\",\"timestamp\":0},{\"key\":\"key-13\",\"timestamp\":0}]";

            using (var httpClientMock = new HttpClientMock())
            {
                httpClientMock.Post_Response("/api/events/bulk", 200, data1, "ok");
                httpClientMock.Post_Response("/api/events/bulk", 200, data2, "ok");
                httpClientMock.Post_Response("/api/events/bulk", 200, data3, "ok");

                var eventSdkApiClient = new EventSdkApiClient("api-key-test", new Dictionary <string, string>(), httpClientMock.GetUrl(), 10000, 10000, _telemetryRuntimeProducer.Object, _tasksManger, _wrapperAdapter, _bulkSize);
                eventSdkApiClient.SendBulkEventsTask(events);

                Thread.Sleep(5000);

                var logs = httpClientMock.GetEventsLog();
                Assert.AreEqual(3, logs.Count);

                Assert.IsTrue(logs.Any(l => l.RequestMessage.Body.Equals(data1)));
                Assert.IsTrue(logs.Any(l => l.RequestMessage.Body.Equals(data2)));
                Assert.IsTrue(logs.Any(l => l.RequestMessage.Body.Equals(data3)));
            }
        }