Ejemplo n.º 1
0
        public async Task InternalRouteInformationEvaluator_should_ignore_route_if_any_regex_is_excluding_template()
        {
            // arrange
            var contextAccessor = new Mock <IAutoHealthCheckContextAccessor>();
            var context         = new Mock <IAutoHealthCheckContext>();
            var routeEvaluator  = new Mock <IRouteEvaluator>();

            routeEvaluator.Setup(c => c.Evaluate(It.IsAny <IRouteInformation>()))
            .Returns(Task.FromResult(true));

            contextAccessor.Setup(c => c.Context)
            .Returns(context.Object);

            context.Setup(c => c.Configurations)
            .Returns(new AutoHealthCheckConfigurations
            {
                ExcludeRouteRegexs = new List <Regex>
                {
                    new Regex("^[0-9]+$")
                }
            });

            var evaluator = new InternalRouteInformationEvaluator(contextAccessor.Object, routeEvaluator.Object);

            var routeInformation = new RouteInformation
            {
                RouteTemplate = "324234"
            };

            // act
            var include = await evaluator.Evaluate(routeInformation);

            // assert
            Assert.False(include); // route should be ignored as there is numbers
        }
Ejemplo n.º 2
0
        public async Task InternalRouteInformationEvaluator_should_not_ignore_route_if_regex_does_not_match()
        {
            // arrange
            var contextAccessor = new Mock <IAutoHealthCheckContextAccessor>();
            var context         = new Mock <IAutoHealthCheckContext>();
            var routeEvaluator  = new Mock <IRouteEvaluator>();

            routeEvaluator.Setup(c => c.Evaluate(It.IsAny <IRouteInformation>()))
            .Returns(Task.FromResult(true));

            contextAccessor.Setup(c => c.Context)
            .Returns(context.Object);

            context.Setup(c => c.Configurations)
            .Returns(new AutoHealthCheckConfigurations
            {
                ExcludeRouteRegexs = new List <Regex>
                {
                    new Regex("^[0-9]+$")
                }
            });

            var evaluator = new InternalRouteInformationEvaluator(contextAccessor.Object, routeEvaluator.Object);

            var routeInformation = new RouteInformation
            {
                RouteTemplate = "get/api/3123" // no only numbers
            };

            // act
            var include = await evaluator.Evaluate(routeInformation);

            // assert
            Assert.True(include); // this should be true as the regex does not match with the route
        }
Ejemplo n.º 3
0
        public async Task InternalRouteInformationEvaluator_should_ignore_route_if_evaluator_return_false()
        {
            // arrange
            var contextAccessor = new Mock <IAutoHealthCheckContextAccessor>();
            var context         = new Mock <IAutoHealthCheckContext>();
            var routeEvaluator  = new Mock <IRouteEvaluator>();

            routeEvaluator.Setup(c => c.Evaluate(It.IsAny <IRouteInformation>()))
            .Returns(Task.FromResult(false));

            contextAccessor.Setup(c => c.Context)
            .Returns(context.Object);

            context.Setup(c => c.Configurations)
            .Returns(new AutoHealthCheckConfigurations());

            var evaluator = new InternalRouteInformationEvaluator(contextAccessor.Object, routeEvaluator.Object);

            var routeInformation = new RouteInformation
            {
                RouteTemplate = "get/api/3123"
            };

            // act
            var include = await evaluator.Evaluate(routeInformation);

            // assert
            Assert.False(include);
        }