Пример #1
0
        public void TestEmpty()
        {
            HystrixRequestEvents request = new HystrixRequestEvents(new List <IHystrixInvokableInfo>());
            string actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[]", actual);
        }
Пример #2
0
 private HystrixRequestEventStreamController(IObservable <HystrixRequestEvents> observable)
     : base(observable.Map((requestEvents) =>
 {
     return(SerialHystrixRequestEvents.ToJsonString(requestEvents));
 }))
 {
 }
        public void TestSingleTimeoutFallbackSuccess()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>();

            executions.Add(new SimpleExecution(fooKey, 105, HystrixEventType.TIMEOUT, HystrixEventType.FALLBACK_SUCCESS));
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            String actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"TIMEOUT\",\"FALLBACK_SUCCESS\"],\"latencies\":[105]}]", actual);
        }
        public void TestSingleFailureFallbackFailure()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>();

            executions.Add(new SimpleExecution(fooKey, 104, HystrixEventType.FAILURE, HystrixEventType.FALLBACK_FAILURE));
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            String actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"FAILURE\",\"FALLBACK_FAILURE\"],\"latencies\":[104]}]", actual);
        }
        public void TestCollapsedBatchOfSix()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>();

            executions.Add(new SimpleExecution(fooKey, 53, collapserKey, 6, HystrixEventType.SUCCESS));
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            String actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[53],\"collapsed\":{\"name\":\"FooCollapser\",\"count\":6}}]", actual);
        }
        public void TestSingleSuccessMultipleEmitsAndFallbackEmits()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>();

            executions.Add(new SimpleExecution(fooKey, 100, HystrixEventType.EMIT, HystrixEventType.EMIT, HystrixEventType.EMIT, HystrixEventType.FAILURE, HystrixEventType.FALLBACK_EMIT, HystrixEventType.FALLBACK_EMIT, HystrixEventType.FALLBACK_SUCCESS));
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            String actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[{\"name\":\"EMIT\",\"count\":3},\"FAILURE\",{\"name\":\"FALLBACK_EMIT\",\"count\":2},\"FALLBACK_SUCCESS\"],\"latencies\":[100]}]", actual);
        }
        public void TestSingleShortCircuitedFallbackSuccess()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>();

            executions.Add(new SimpleExecution(fooKey, 1, HystrixEventType.SHORT_CIRCUITED, HystrixEventType.FALLBACK_SUCCESS));
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            String actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"SHORT_CIRCUITED\",\"FALLBACK_SUCCESS\"],\"latencies\":[1]}]", actual);
        }
        public void TestSingleBadRequest()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>();

            executions.Add(new SimpleExecution(fooKey, 50, HystrixEventType.BAD_REQUEST));
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            String actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"BAD_REQUEST\"],\"latencies\":[50]}]", actual);
        }
Пример #9
0
        public void TestSingleThreadPoolRejectedFallbackSuccess()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>
            {
                new SimpleExecution(FooKey, 1, HystrixEventType.THREAD_POOL_REJECTED, HystrixEventType.FALLBACK_SUCCESS)
            };
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            string actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"THREAD_POOL_REJECTED\",\"FALLBACK_SUCCESS\"],\"latencies\":[1]}]", actual);
        }
Пример #10
0
        public void TestSingleFailureFallbackRejected()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>
            {
                new SimpleExecution(FooKey, 103, HystrixEventType.FAILURE, HystrixEventType.FALLBACK_REJECTION)
            };
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            string actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"FAILURE\",\"FALLBACK_REJECTION\"],\"latencies\":[103]}]", actual);
        }
Пример #11
0
        public void TestSingleSuccess()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>
            {
                new SimpleExecution(FooKey, 100, HystrixEventType.SUCCESS)
            };
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            string actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[100]}]", actual);
        }
        public void TestSingleSemaphoreRejectedFallbackSuccess()
        {
            var executions = new List <IHystrixInvokableInfo>
            {
                new SimpleExecution(FooKey, 1, HystrixEventType.SEMAPHORE_REJECTED, HystrixEventType.FALLBACK_SUCCESS)
            };
            var request = new HystrixRequestEvents(executions);
            var actual  = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"SEMAPHORE_REJECTED\",\"FALLBACK_SUCCESS\"],\"latencies\":[1]}]", actual);
        }
        public void TestSingleFailureFallbackSuccess()
        {
            var executions = new List <IHystrixInvokableInfo>
            {
                new SimpleExecution(FooKey, 102, HystrixEventType.FAILURE, HystrixEventType.FALLBACK_SUCCESS)
            };
            var request = new HystrixRequestEvents(executions);
            var actual  = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"FAILURE\",\"FALLBACK_SUCCESS\"],\"latencies\":[102]}]", actual);
        }
        public void TestCollapsedBatchOfOne()
        {
            var executions = new List <IHystrixInvokableInfo>
            {
                new SimpleExecution(FooKey, 53, CollapserKey, 1, HystrixEventType.SUCCESS)
            };
            var request = new HystrixRequestEvents(executions);
            var actual  = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[53],\"collapsed\":{\"name\":\"FooCollapser\",\"count\":1}}]", actual);
        }
        public void TestSingleSuccessMultipleEmits()
        {
            var executions = new List <IHystrixInvokableInfo>
            {
                new SimpleExecution(FooKey, 100, HystrixEventType.EMIT, HystrixEventType.EMIT, HystrixEventType.EMIT, HystrixEventType.SUCCESS)
            };
            var request = new HystrixRequestEvents(executions);
            var actual  = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[{\"name\":\"EMIT\",\"count\":3},\"SUCCESS\"],\"latencies\":[100]}]", actual);
        }
Пример #16
0
        public void TestSingleResponseFromCache()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>();
            SimpleExecution foo1       = new SimpleExecution(FooKey, 23, "cacheKeyA", HystrixEventType.SUCCESS);
            SimpleExecution cachedFoo1 = new SimpleExecution(FooKey, "cacheKeyA");

            executions.Add(foo1);
            executions.Add(cachedFoo1);
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            string actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[23],\"cached\":1}]", actual);
        }
Пример #17
0
        public void TestTwoFailuresSameKey()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>();
            SimpleExecution foo1 = new SimpleExecution(FooKey, 56, HystrixEventType.FAILURE, HystrixEventType.FALLBACK_SUCCESS);
            SimpleExecution foo2 = new SimpleExecution(FooKey, 67, HystrixEventType.FAILURE, HystrixEventType.FALLBACK_SUCCESS);

            executions.Add(foo1);
            executions.Add(foo2);
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            string actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"FAILURE\",\"FALLBACK_SUCCESS\"],\"latencies\":[56,67]}]", actual);
        }
Пример #18
0
        public void TestTwoSuccessesSameKey()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>();
            SimpleExecution foo1 = new SimpleExecution(FooKey, 23, HystrixEventType.SUCCESS);
            SimpleExecution foo2 = new SimpleExecution(FooKey, 34, HystrixEventType.SUCCESS);

            executions.Add(foo1);
            executions.Add(foo2);
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            string actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.Equal("[{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[23,34]}]", actual);
        }
Пример #19
0
        public void TestTwoSuccessesDifferentKey()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>();
            SimpleExecution foo1 = new SimpleExecution(FooKey, 23, HystrixEventType.SUCCESS);
            SimpleExecution bar1 = new SimpleExecution(BarKey, 34, HystrixEventType.SUCCESS);

            executions.Add(foo1);
            executions.Add(bar1);
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            string actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.True(actual.Equals("[{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[23]},{\"name\":\"Bar\",\"events\":[\"SUCCESS\"],\"latencies\":[34]}]") ||
                        actual.Equals("[{\"name\":\"Bar\",\"events\":[\"SUCCESS\"],\"latencies\":[34]},{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[23]}]"));
        }
Пример #20
0
        public void TestTwoSuccessesOneFailureSameKey()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>();
            SimpleExecution foo1 = new SimpleExecution(FooKey, 10, HystrixEventType.SUCCESS);
            SimpleExecution foo2 = new SimpleExecution(FooKey, 67, HystrixEventType.FAILURE, HystrixEventType.FALLBACK_SUCCESS);
            SimpleExecution foo3 = new SimpleExecution(FooKey, 11, HystrixEventType.SUCCESS);

            executions.Add(foo1);
            executions.Add(foo2);
            executions.Add(foo3);
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            string actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.True(actual.Equals("[{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[10,11]},{\"name\":\"Foo\",\"events\":[\"FAILURE\",\"FALLBACK_SUCCESS\"],\"latencies\":[67]}]") ||
                        actual.Equals("[{\"name\":\"Foo\",\"events\":[\"FAILURE\",\"FALLBACK_SUCCESS\"],\"latencies\":[67]},{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[10,11]}]"));
        }
Пример #21
0
        public void TestMultipleCacheKeys()
        {
            List <IHystrixInvokableInfo> executions = new List <IHystrixInvokableInfo>();
            SimpleExecution foo1       = new SimpleExecution(FooKey, 23, "cacheKeyA", HystrixEventType.SUCCESS);
            SimpleExecution cachedFoo1 = new SimpleExecution(FooKey, "cacheKeyA");
            SimpleExecution foo2       = new SimpleExecution(FooKey, 67, "cacheKeyB", HystrixEventType.SUCCESS);
            SimpleExecution cachedFoo2 = new SimpleExecution(FooKey, "cacheKeyB");

            executions.Add(foo1);
            executions.Add(cachedFoo1);
            executions.Add(foo2);
            executions.Add(cachedFoo2);
            HystrixRequestEvents request = new HystrixRequestEvents(executions);
            string actual = SerialHystrixRequestEvents.ToJsonString(request);

            Assert.True(actual.Equals("[{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[67],\"cached\":1},{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[23],\"cached\":1}]") ||
                        actual.Equals("[{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[23],\"cached\":1},{\"name\":\"Foo\",\"events\":[\"SUCCESS\"],\"latencies\":[67],\"cached\":1}]"));
        }