public void should_build_arguments([Values(null, "tag")] string tag) { var expected = new List <int> { 398, 68 }; var parameterInfo = typeof(Subject).GetMethod(nameof(Subject.Foo))?.GetParameters().Single(_ => _.Name == "list"); // --arrange var buildSession = A.Fake <IBuildSession>(); A.CallTo(() => buildSession.BuildChain).Returns(Unit.Is(parameterInfo).ToBuildChain()); var buildUnitCall = A.CallTo(() => buildSession.BuildAllUnits(Unit.IsType <int>().Tag(tag))); buildUnitCall.Returns(expected.Select(_ => _.ToBuildResult().WithWeight(_)).ToList()); var target = new BuildListArgumentForMethodParameter(tag); // --act target.Process(buildSession); // --assert buildUnitCall.MustHaveHappenedOnceAndOnly(); buildSession.BuildResult.Value.As <List <int> >().Should().Equal(expected); A.CallTo(() => buildSession.BuildUnit(default)).WithAnyArguments().MustNotHaveHappened();
public void should_build_list_of_values_for_any_collection(ParameterInfo parameterInfo) { // --arrange var target = new BuildListArgumentForMethodParameter(); var buildSession = A.Fake <IBuildSession>(); A.CallTo(() => buildSession.BuildChain).Returns(new UnitId(parameterInfo, null).ToBuildChain()); A.CallTo(() => buildSession.BuildAllUnits(default)).WithAnyArguments().Returns(new[] { 1, 2, 3 }.Select(_ => new BuildResult(_).WithWeight(0)).ToList());