public void Route_Miss()
        {
            // Arrange
            var routes = new string[]
            {
                "super/awesome",
                "super/cool",
                "other/route"
            };

            var MockMethod  = Type.GetType("MQTTnet.AspNetCore.AttributeRouting.Tests.RouteTableTests").GetMethod("Route_Match", BindingFlags.Public);
            var MockMethod2 = Type.GetType("MQTTnet.AspNetCore.AttributeRouting.Tests.RouteTableTests").GetMethod("Route_Constructor", BindingFlags.Public);
            var MockRoutes  = new MqttRoute[] {
                new MqttRoute(
                    new RouteTemplate(routes[0], new List <TemplateSegment>()
                {
                    new TemplateSegment(routes[0], "super", false),
                    new TemplateSegment(routes[0], "awesome", false),
                }), MockMethod, new string[] { }),
                new MqttRoute(
                    new RouteTemplate(routes[1], new List <TemplateSegment>()
                {
                    new TemplateSegment(routes[1], "super", false),
                    new TemplateSegment(routes[1], "cool", false),
                }), MockMethod2, new string[] { }),
                new MqttRoute(
                    new RouteTemplate(routes[2], new List <TemplateSegment>()
                {
                    new TemplateSegment(routes[2], "other", false),
                    new TemplateSegment(routes[2], "route", false),
                }), MockMethod2, new string[] { }),
            };
            var context = new MqttRouteContext("super/miss");

            // Act
            var MockTable = new MqttRouteTable(MockRoutes);

            MockTable.Route(context);

            // Assert
            Assert.IsNull(context.Handler);
        }
        public void Route_Constructor()
        {
            // Arrange
            var routes = new string[]
            {
                "super/awesome",
                "super/cool",
                "other/route"
            };

            var MockRoutes = new MqttRoute[] {
                new MqttRoute(
                    new RouteTemplate(routes[0], new List <TemplateSegment>()
                {
                    new TemplateSegment(routes[0], "super", false),
                    new TemplateSegment(routes[0], "awesome", false),
                }), null, new string[] { }),
                new MqttRoute(
                    new RouteTemplate(routes[1], new List <TemplateSegment>()
                {
                    new TemplateSegment(routes[1], "super", false),
                    new TemplateSegment(routes[1], "cool", false),
                }), null, new string[] { }),
                new MqttRoute(
                    new RouteTemplate(routes[2], new List <TemplateSegment>()
                {
                    new TemplateSegment(routes[2], "other", false),
                    new TemplateSegment(routes[2], "route", false),
                }), null, new string[] { }),
            };

            // Act
            var MockTable = new MqttRouteTable(MockRoutes);

            // Assert
            CollectionAssert.AreEqual(MockRoutes, MockTable.Routes);
        }
コード例 #3
0
 public MqttRouter(ILogger <MqttRouter> logger, MqttRouteTable routeTable, ITypeActivatorCache typeActivator)
 {
     this.logger        = logger;
     this.routeTable    = routeTable;
     this.typeActivator = typeActivator;
 }