Example #1
0
            public void SkipsDuplicateNamespaces()
            {
                const string ns1 = "Grapevine.Tests.Server";
                const string ns2 = "Grapevine.Tests.Client";

                var scanner = new RouteScanner();

                scanner.Logger = new XUnitLogger(_helper);
                scanner.ExcludedNamespaces().Count.ShouldBe(1);

                scanner.Exclude(ns1);

                scanner.ExcludedNamespaces().Count.ShouldBe(2);
                scanner.ExcludedNamespaces()[1].ShouldBe(ns1);

                scanner.Exclude(ns2);

                scanner.ExcludedNamespaces().Count.ShouldBe(3);
                scanner.ExcludedNamespaces()[1].ShouldBe(ns1);
                scanner.ExcludedNamespaces()[2].ShouldBe(ns2);

                scanner.Exclude(ns1);

                scanner.ExcludedNamespaces().Count.ShouldBe(3);
                scanner.ExcludedNamespaces()[1].ShouldBe(ns1);
                scanner.ExcludedNamespaces()[2].ShouldBe(ns2);
            }
Example #2
0
            public void SkipsDuplicateAssemblies()
            {
                var assemblies = AppDomain.CurrentDomain.GetAssemblies();
                var assembly1  = assemblies[0];
                var assembly2  = assemblies[1];

                var scanner = new RouteScanner();

                scanner.Logger = new XUnitLogger(_helper);
                scanner.ExcludedAssemblies().Count.ShouldBe(0);

                scanner.Exclude(assembly1);

                scanner.ExcludedAssemblies().Count.ShouldBe(1);
                scanner.ExcludedAssemblies()[0].ShouldBe(assembly1);

                scanner.Exclude(assembly2);

                scanner.ExcludedAssemblies().Count.ShouldBe(2);
                scanner.ExcludedAssemblies()[0].ShouldBe(assembly1);
                scanner.ExcludedAssemblies()[1].ShouldBe(assembly2);

                scanner.Exclude(assembly1);

                scanner.ExcludedAssemblies().Count.ShouldBe(2);
                scanner.ExcludedAssemblies()[0].ShouldBe(assembly1);
                scanner.ExcludedAssemblies()[1].ShouldBe(assembly2);
            }
Example #3
0
                public void ReturnsTrueWhenNamespaceIsExcluded()
                {
                    var scanner = new RouteScanner();

                    scanner.Exclude("Some.Random.Namespace");
                    scanner.CheckIsExcluded("Some.Random.Namespace").ShouldBeTrue();
                }
Example #4
0
                public void ReturnsTrueWhenGenericTypeIsExcluded()
                {
                    var scanner = new RouteScanner();

                    scanner.Exclude <Route>();
                    scanner.CheckIsExcluded(typeof(Route)).ShouldBeTrue();
                }
Example #5
0
                public void ReturnsFalseWhenNamespaceIsNotExcluded()
                {
                    var scanner = new RouteScanner();

                    scanner.Exclude("Some.Random.Namespace");
                    scanner.CheckIsExcluded("Some.Other.Namespace").ShouldBeFalse();
                }
Example #6
0
                public void ReturnsFalseWhenTypeIsNotExcluded()
                {
                    var scanner = new RouteScanner();

                    scanner.Exclude <Route>();
                    scanner.CheckIsExcluded(typeof(Router)).ShouldBeFalse();
                }
Example #7
0
                public void ReturnsTrueWhenAssemblyIsExcluded()
                {
                    var assembly = AppDomain.CurrentDomain.GetAssemblies().First();
                    var scanner  = new RouteScanner();

                    scanner.Exclude(assembly);
                    scanner.CheckIsExcluded(assembly).ShouldBeTrue();
                }
Example #8
0
                public void ReturnsFalseWhenAssemblyIsNotExcluded()
                {
                    var assemblies = AppDomain.CurrentDomain.GetAssemblies();
                    var assembly1  = assemblies[0];
                    var assembly2  = assemblies[2];
                    var scanner    = new RouteScanner();

                    scanner.Exclude(assembly1);
                    scanner.CheckIsExcluded(assembly2).ShouldBeFalse();
                }
Example #9
0
            public void ExcludesTypes()
            {
                var scanner = new RouteScanner();

                scanner.ExcludedTypes().Count.ShouldBe(0);

                scanner.Exclude(typeof(Route));

                scanner.ExcludedTypes().Count.ShouldBe(1);
                scanner.ExcludedTypes()[0].ShouldBe(typeof(Route));
            }
Example #10
0
            public void ExcludesAssemblies()
            {
                var assembly = AppDomain.CurrentDomain.GetAssemblies().First();
                var scanner  = new RouteScanner();

                scanner.ExcludedAssemblies().Count.ShouldBe(0);

                scanner.Exclude(assembly);

                scanner.ExcludedAssemblies().Count.ShouldBe(1);
                scanner.ExcludedAssemblies()[0].ShouldBe(assembly);
            }
Example #11
0
            public void ExcludesGenericTypes()
            {
                var scanner = new RouteScanner();

                scanner.Logger = new XUnitLogger(_helper);
                scanner.ExcludedTypes().Count.ShouldBe(0);

                scanner.Exclude <Route>();

                scanner.ExcludedTypes().Count.ShouldBe(1);
                scanner.ExcludedTypes()[0].ShouldBe(typeof(Route));
            }
Example #12
0
            public void ExcludesNamespaces()
            {
                const string ns      = "Grapevine.Tests.Server";
                var          scanner = new RouteScanner();

                scanner.ExcludedNamespaces().Count.ShouldBe(0);

                scanner.Exclude(ns);

                scanner.ExcludedNamespaces().Count.ShouldBe(1);
                scanner.ExcludedNamespaces()[0].ShouldBe(ns);
            }
Example #13
0
            public void ExcludesNamespaces()
            {
                const string ns      = "Grapevine.Tests.Server";
                var          scanner = new RouteScanner();

                scanner.Logger = new XUnitLogger(_helper);
                scanner.ExcludedNamespaces().Count.ShouldBe(1);

                scanner.Exclude(ns);

                scanner.ExcludedNamespaces().Count.ShouldBe(2);
                scanner.ExcludedNamespaces()[1].ShouldBe(ns);
            }
Example #14
0
            public void SkipsDuplicateTypes()
            {
                var scanner = new RouteScanner();

                scanner.ExcludedTypes().Count.ShouldBe(0);

                scanner.Exclude <Route>();

                scanner.ExcludedTypes().Count.ShouldBe(1);
                scanner.ExcludedTypes()[0].ShouldBe(typeof(Route));

                scanner.Exclude(typeof(Router));

                scanner.ExcludedTypes().Count.ShouldBe(2);
                scanner.ExcludedTypes()[0].ShouldBe(typeof(Route));
                scanner.ExcludedTypes()[1].ShouldBe(typeof(Router));

                scanner.Exclude(typeof(Route));

                scanner.ExcludedTypes().Count.ShouldBe(2);
                scanner.ExcludedTypes()[0].ShouldBe(typeof(Route));
                scanner.ExcludedTypes()[1].ShouldBe(typeof(Router));
            }
Example #15
0
            public void ReturnsRoutesAndLogsWithExclusions()
            {
                var logger  = new InMemoryLogger();
                var scanner = new RouteScanner {
                    Logger = logger
                };

                logger.Logs.ShouldBeEmpty();

                var routesBefore = scanner.Scan();

                scanner.Exclude(Assembly.GetExecutingAssembly());

                var routesAfter = scanner.Scan();

                routesBefore.ShouldNotBeNull();
                routesAfter.ShouldNotBeNull();
                (routesBefore.Count - routesAfter.Count).ShouldBe(2);
                logger.Logs.ShouldNotBeEmpty();
            }
Example #16
0
            public void ReturnsRoutesAndLogsWithExclusions()
            {
                //ReflectionTypeLoadException exception = null;
                //var attempts = 0;

                //do
                //{
                //    attempts++;
                //    exception = null;

                //    try
                //    {
                var logger  = new InMemoryLogger();
                var scanner = new RouteScanner {
                    Logger = logger
                };

                logger.Logs.ShouldBeEmpty();

                var routesBefore = scanner.Scan();

                scanner.Exclude(Assembly.GetExecutingAssembly());

                var routesAfter = scanner.Scan();

                routesBefore.ShouldNotBeNull();
                routesAfter.ShouldNotBeNull();
                (routesBefore.Count - routesAfter.Count).ShouldBe(2);
                logger.Logs.ShouldNotBeEmpty();
                //    }
                //    catch (ReflectionTypeLoadException ex)
                //    {
                //        exception = ex;
                //        Thread.Sleep(780);
                //    }
                //} while (exception != null || attempts > 5);

                //if (exception != null) throw exception;
            }
Example #17
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");
            }