ModelBuilder.UnitTests.ModelTests.PopulateUsesBuildStrategyToPopulateInstanceTest C# (CSharp) Method

PopulateUsesBuildStrategyToPopulateInstanceTest() private method

private PopulateUsesBuildStrategyToPopulateInstanceTest ( ) : void
return void
        public void PopulateUsesBuildStrategyToPopulateInstanceTest()
        {
            var value = Guid.NewGuid();
            var expected = new SlimModel();

            var build = Substitute.For<IBuildStrategy>();
            var generator = Substitute.For<IValueGenerator>();
            var generators = new List<IValueGenerator> {generator}.AsReadOnly();

            build.ValueGenerators.Returns(generators);
            generator.IsSupported(typeof(Guid), "Value", Arg.Any<LinkedList<object>>()).Returns(true);
            generator.Generate(typeof(Guid), "Value", Arg.Any<LinkedList<object>>()).Returns(value);

            try
            {
                Model.BuildStrategy = build;

                var actual = Model.Populate(expected);

                actual.Should().Be(expected);
            }
            finally
            {
                Model.BuildStrategy = Model.DefaultBuildStrategy;
            }
        }