Exemplo n.º 1
0
        public void Validate_MissingRouteParam()
        {
            var routeParameters = new HashSet <string> {
                "id1", "id2"
            };
            var lambdaMethodParams = new List <ParameterModel>
            {
                new ParameterModel
                {
                    Attributes = new List <AttributeModel>
                    {
                        new AttributeModel <FromRouteAttribute>
                        {
                            Data = new FromRouteAttribute {
                                Name = "id1"
                            }
                        }
                    }
                }
            };

            var(isValid, missingRouteParams) = RouteParametersValidator.Validate(routeParameters, lambdaMethodParams);
            Assert.False(isValid);
            Assert.NotEmpty(missingRouteParams);
            Assert.Equal("id2", missingRouteParams[0]);
        }
Exemplo n.º 2
0
        public void Validate_AllRouteParamsFound()
        {
            var routeParameters = new HashSet <string> {
                "id1", "id2"
            };
            var lambdaMethodParams = new List <ParameterModel>
            {
                new ParameterModel
                {
                    Attributes = new List <AttributeModel>
                    {
                        new AttributeModel <FromRouteAttribute>
                        {
                            Data = new FromRouteAttribute {
                                Name = "id1"
                            }
                        }
                    },
                    Name = "identifier1"
                },
                new ParameterModel
                {
                    Name = "id2"
                }
            };

            var(isValid, missingRouteParams) = RouteParametersValidator.Validate(routeParameters, lambdaMethodParams);
            Assert.True(isValid);
            Assert.Empty(missingRouteParams);
        }
Exemplo n.º 3
0
        public void Validate_RouteParamConflictFound()
        {
            var routeParameters = new HashSet <string> {
                "id1", "id2"
            };
            var lambdaMethodParams = new List <ParameterModel>
            {
                new ParameterModel
                {
                    Attributes = new List <AttributeModel>
                    {
                        new AttributeModel <FromRouteAttribute>
                        {
                            Data = new FromRouteAttribute {
                                Name = "identifier1"
                            },
                            Type = new TypeModel {
                                FullName = TypeFullNames.FromRouteAttribute
                            }
                        }
                    },
                    Type = new TypeModel
                    {
                        FullName = "int"
                    }
                },
                new ParameterModel
                {
                    Attributes = new List <AttributeModel>
                    {
                        new AttributeModel <FromHeaderAttribute>
                        {
                            Data = new FromHeaderAttribute {
                                Name = "identifier2"
                            },
                            Type = new TypeModel {
                                FullName = TypeFullNames.FromHeaderAttribute
                            }
                        },
                    },
                    Name = "id2",
                }
            };

            var exception = Assert.Throws <InvalidOperationException>(() =>
            {
                RouteParametersValidator.Validate(routeParameters, lambdaMethodParams);
            });

            Assert.Equal($"Conflicting attribute(s) {TypeFullNames.FromHeaderAttribute} found on id2 method parameter.", exception.Message);
        }