コード例 #1
0
            public void ReturnsRoutesAndLogsWithBaseUrlArgument()
            {
                var assembly = GetTestAssembly();
                var baseurl  = "/api";
                var logger   = new InMemoryLogger();
                var scanner  = new RouteScanner {
                    Logger = logger
                };

                logger.Logs.ShouldBeEmpty();

                var routes = scanner.ScanAssembly(assembly, baseurl);

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

                routes[0].HttpMethod.ShouldBe(HttpMethod.GET);
                routes[0].PathInfo.ShouldBe($"{baseurl}/todo/list");

                routes[4].HttpMethod.ShouldBe(HttpMethod.GET);
                routes[4].PathInfo.ShouldBe($"{baseurl}/user/list");

                logger.Logs.Count.ShouldBe(11);
                logger.Logs[0].Message.ShouldBe($"Generating routes for assembly {assembly.GetName().Name}");
            }
コード例 #2
0
            public void ReturnsEmptyWhenNoRoutesAreInAssembly()
            {
                var assembly = typeof(RouteScanner).Assembly;
                var logger   = new InMemoryLogger();
                var scanner  = new RouteScanner {
                    Logger = logger
                };

                logger.Logs.ShouldBeEmpty();

                var routes = scanner.ScanAssembly(assembly);

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

                logger.Logs.Count.ShouldBe(1);
                logger.Logs[0].Message.ShouldBe($"Generating routes for assembly {assembly.GetName().Name}");
            }
コード例 #3
0
            public void ReturnsEmptyIfAssemblyIsExcluded()
            {
                var assembly = GetTestAssembly();
                var type     = typeof(ToDoListRoutes);
                var logger   = new InMemoryLogger();
                var scanner  = new RouteScanner {
                    Logger = logger
                };

                logger.Logs.ShouldBeEmpty();

                scanner.Exclude(type);
                var routes = scanner.ScanAssembly(assembly);

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

                routes[0].HttpMethod.ShouldBe(HttpMethod.GET);
                routes[0].PathInfo.ShouldBe("/user/list");

                logger.Logs.Count.ShouldBe(7);
                logger.Logs[1].Message.ShouldBe($"Excluding type {type.Name} due to exclusion rules");
            }