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}"); }
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}"); }
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"); }