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

CreateWithUsesBuildStrategyToCreateInstanceWithParametersTest() private method

        public void CreateWithUsesBuildStrategyToCreateInstanceWithParametersTest()
        {
            var value = Guid.NewGuid();
            var expected = new ReadOnlyModel(value);

            var build = Substitute.For<IBuildStrategy>();
            var creator = Substitute.For<ITypeCreator>();
            var creators = new List<ITypeCreator> {creator}.AsReadOnly();

            build.TypeCreators.Returns(creators);
            creator.CanCreate(typeof(ReadOnlyModel), null, Arg.Any<LinkedList<object>>()).Returns(true);
            creator.Create(typeof(ReadOnlyModel), null, Arg.Any<LinkedList<object>>(), value).Returns(expected);
            creator.Populate(expected, Arg.Any<IExecuteStrategy>()).Returns(expected);

            try
            {
                Model.BuildStrategy = build;

                var actual = (ReadOnlyModel) Model.CreateWith(typeof(ReadOnlyModel), value);

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