Beispiel #1
0
    public void CreateHandlerMethods_CopiesPropertiesFromHandlerModel()
    {
        // Arrange
        var actionDescriptor = new PageActionDescriptor();
        var handlerTypeInfo  = typeof(ModelWithHandler).GetTypeInfo();
        var handlerModel     = new PageHandlerModel(handlerTypeInfo.GetMethod(nameof(ModelWithHandler.OnGetCustomerAsync)), new object[0])
        {
            HttpMethod  = "GET",
            HandlerName = "Customer",
        };
        var pageApplicationModel = new PageApplicationModel(actionDescriptor, handlerTypeInfo, new object[0])
        {
            HandlerMethods =
            {
                handlerModel,
            }
        };

        // Act
        var handlerDescriptors = CompiledPageActionDescriptorBuilder.CreateHandlerMethods(pageApplicationModel);

        // Assert
        Assert.Collection(
            handlerDescriptors,
            d =>
        {
            Assert.Equal(handlerModel.MethodInfo, d.MethodInfo);
            Assert.Equal(handlerModel.HttpMethod, d.HttpMethod);
            Assert.Equal(handlerModel.HandlerName, d.Name);
        });
    }
Beispiel #2
0
    public void CreateHandlerMethods_CopiesParameterDescriptorsFromParameterModel()
    {
        // Arrange
        var actionDescriptor = new PageActionDescriptor();
        var handlerTypeInfo  = typeof(HandlerWithParameters).GetTypeInfo();
        var handlerMethod    = handlerTypeInfo.GetMethod(nameof(HandlerWithParameters.OnPost));
        var parameters       = handlerMethod.GetParameters();
        var parameterModel1  = new PageParameterModel(parameters[0], new object[0])
        {
            ParameterName = "test-name"
        };
        var parameterModel2 = new PageParameterModel(parameters[1], new object[0])
        {
            BindingInfo = new BindingInfo(),
        };
        var handlerModel = new PageHandlerModel(handlerMethod, new object[0])
        {
            Parameters =
            {
                parameterModel1,
                parameterModel2,
            }
        };
        var pageApplicationModel = new PageApplicationModel(actionDescriptor, handlerTypeInfo, new object[0])
        {
            HandlerMethods =
            {
                handlerModel,
            }
        };

        // Act
        var handlerDescriptors = CompiledPageActionDescriptorBuilder.CreateHandlerMethods(pageApplicationModel);

        // Assert
        Assert.Collection(
            Assert.Single(handlerDescriptors).Parameters,
            p =>
        {
            Assert.Equal(parameters[0], p.ParameterInfo);
            Assert.Equal(typeof(string), p.ParameterType);
            Assert.Equal(parameterModel1.ParameterName, p.Name);
        },
            p =>
        {
            Assert.Equal(parameters[1], p.ParameterInfo);
            Assert.Equal(typeof(int), p.ParameterType);
            Assert.Same(parameterModel2.BindingInfo, p.BindingInfo);
        });
    }