public void should_return_children_merged_actions() { // --arrange var buildStep1 = new LastUnitSequenceMatcher(Match.Type <int>(null)); buildStep1.AddBuildAction(BuildStage.Cache, CreateByReflectionBuildAction.Instance); var singletonAction = new SingletonBuildAction(); var buildStep2 = new AnyUnitSequenceMatcher(); buildStep2.AddBuildAction(BuildStage.Cache, singletonAction); var target = new WildcardUnitSequenceMatcher(Match.Type <string>(null)); target.AddOrGetUnitSequenceMatcher(buildStep1); target.AddOrGetUnitSequenceMatcher(buildStep2); // --act var actual = target.GetBuildActions(new[] { Unit.OfType <string>(), Unit.OfType <int>() }.GetTail(0), 0); // --assert actual.Should().NotBeNull(); // ReSharper disable once PossibleNullReferenceException actual[BuildStage.Cache] .Should() .HaveCount(2) .And .Subject.Select(_ => _.Entity) .Should() .BeEquivalentTo(CreateByReflectionBuildAction.Instance, singletonAction); }
public void should_return_all_merged_actions() { var singletonAction = new SingletonBuildAction(); // --arrange var matchString = new LastUnitSequenceMatcher(Match.Type <string>(null)).AddBuildAction(BuildStage.Cache, CreateByReflectionBuildAction.Instance); var matchAny = new AnyUnitSequenceMatcher().AddBuildAction(BuildStage.Cache, singletonAction); var target = new BuildPlansCollection(); target.Children.Add(matchString); target.Children.Add(matchAny); // --act var actual = target.GetBuildActions(new[] { Unit.OfType <string>() }.AsArrayTail()); // --assert actual[BuildStage.Cache] .Should() .HaveCount(2) .And .Subject.Select(_ => _.Entity) .Should() .Equal(CreateByReflectionBuildAction.Instance, singletonAction); }