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(); }
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); }