Example #1
0
        public async Task Should_not_use_a_mapper_that_doesnt_apply_at_runtime()
        {
            var requestGraph = RequestGraph
                               .CreateFor <Handler>(h => h.Post(null, null))
                               .WithRequestData("param1=value1")
                               .WithRequestParameter("request")
                               .AddValueMapper1(x => x.Values.First() + "mapper1", instanceAppliesTo: x => false)
                               .AddValueMapper2(x => x.Values.First() + "mapper2");

            var reader = new FormReader(requestGraph.ValueMappers,
                                        requestGraph.Configuration);

            var result = await reader.Read(requestGraph.GetRequestReaderContext());

            result.ShouldNotBeNull();
            result.ShouldBeType <InputModel>();
            var inputModel = result.CastTo <InputModel>();

            inputModel.Param1.ShouldEqual("value1mapper2");
            inputModel.Param2.ShouldEqual(0);

            requestGraph.ValueMapper1.AppliesToCalled.ShouldBeTrue();
            requestGraph.ValueMapper1.MapCalled.ShouldBeFalse();

            requestGraph.ValueMapper2.AppliesToCalled.ShouldBeTrue();
            requestGraph.ValueMapper2.MapCalled.ShouldBeTrue();
        }
Example #2
0
        public async Task Should_map_null_if_there_are_no_parameters()
        {
            var requestGraph = RequestGraph
                               .CreateFor <Handler>(h => h.Post(null, null))
                               .WithRequestData("")
                               .WithRequestParameter("request");

            var reader = new FormReader(requestGraph.ValueMappers,
                                        requestGraph.Configuration);

            var result = await reader.Read(requestGraph.GetRequestReaderContext());

            result.ShouldNotBeNull();
            result.ShouldBeType <InputModel>();
            var inputModel = result.CastTo <InputModel>();

            inputModel.Param1.ShouldBeNull();
            inputModel.Param2.ShouldEqual(0);
        }