Example #1
0
            public void ReturnsRoutesAndLogsWithArgumentAndBasepathInAttribute()
            {
                var type     = typeof(TypeWithBasePath);
                var logger   = new InMemoryLogger();
                var basepath = "/override";
                var scanner  = new RouteScanner {
                    Logger = logger
                };

                logger.Logs.ShouldBeEmpty();

                var routes = scanner.ScanType(type, basepath);

                routes.ShouldNotBeNull();
                routes.Count.ShouldBe(1);

                var route = routes[0];

                route.HttpMethod.ShouldBe(HttpMethod.GET);
                route.PathInfo.ShouldBe($"{basepath}/with/stuff");

                logger.Logs.Count.ShouldBe(2);
                logger.Logs[0].Message.ShouldBe($"Generating routes from type {type.Name}");
                logger.Logs[1].Message.ShouldBe($"Generated route {route.HttpMethod} {route.PathInfo} > {route.Name}");
            }
Example #2
0
            public void ReturnsEmptyAndDoesNotLogNonClassType()
            {
                var logger  = new InMemoryLogger();
                var scanner = new RouteScanner {
                    Logger = logger
                };

                logger.Logs.ShouldBeEmpty();

                var routes = scanner.ScanType(typeof(IScannable));

                routes.ShouldNotBeNull();
                routes.ShouldBeEmpty();
                logger.Logs.ShouldBeEmpty();
            }
Example #3
0
            public void ReturnsRoutesAndLogsWithoutAttribute()
            {
                var type    = typeof(MethodsToScan);
                var logger  = new InMemoryLogger();
                var scanner = new RouteScanner {
                    Logger = logger
                };

                logger.Logs.ShouldBeEmpty();

                var routes = scanner.ScanType(type);

                routes.ShouldNotBeNull();
                routes.Count.ShouldBe(3);

                var route0 = routes[0];

                route0.HttpMethod.ShouldBe(HttpMethod.GET);
                route0.PathInfo.ShouldBe("/stuff");

                var route1 = routes[1];

                route1.HttpMethod.ShouldBe(HttpMethod.DELETE);
                route1.PathInfo.ShouldBe("/more/stuff");

                var route2 = routes[2];

                route2.HttpMethod.ShouldBe(HttpMethod.POST);
                route2.PathInfo.ShouldBe("/stuff/[id]");

                logger.Logs.Count.ShouldBe(4);
                logger.Logs[0].Message.ShouldBe($"Generating routes from type {type.Name}");
                logger.Logs[1].Message.ShouldBe($"Generated route {route0.HttpMethod} {route0.PathInfo} > {route0.Name}");
                logger.Logs[2].Message.ShouldBe($"Generated route {route1.HttpMethod} {route1.PathInfo} > {route1.Name}");
                logger.Logs[3].Message.ShouldBe($"Generated route {route2.HttpMethod} {route2.PathInfo} > {route2.Name}");
            }