/// <summary>
        /// Generates the dummy factory tests.
        /// </summary>
        /// <param name="dummyFactoryTypeNamespace">The dummy factory type's namespace.</param>
        /// <param name="dummyFactoryTypeName">The dummy factory type name.</param>
        /// <returns>
        /// The dummy factory code.
        /// </returns>
        public static string GenerateDummyFactoryTests(
            string dummyFactoryTypeNamespace,
            string dummyFactoryTypeName)
        {
            new { dummyFactoryTypeNamespace }.Must().NotBeNullNorWhiteSpace();
            new { dummyFactoryTypeName }.Must().NotBeNullNorWhiteSpace();

            var result = ModelImplementationGeneration.GenerateCodeForDummyFactoryTests(dummyFactoryTypeNamespace, dummyFactoryTypeName);

            return(result);
        }
        /// <summary>
        /// Generates the dummy factory.
        /// </summary>
        /// <param name="types">The types to generic dummy factory snippets for.</param>
        /// <param name="dummyFactoryTypeNamespace">The dummy factory type's namespace.</param>
        /// <param name="dummyFactoryTypeName">The dummy factory type name.</param>
        /// <param name="recipeConditionalCompilationSymbol">The conditional compilation symbol to use for recipes.</param>
        /// <returns>
        /// The dummy factory code.
        /// </returns>
        public static string GenerateDummyFactory(
            IReadOnlyCollection <Type> types,
            string dummyFactoryTypeNamespace,
            string dummyFactoryTypeName,
            string recipeConditionalCompilationSymbol)
        {
            new { types }.Must().NotBeNull().And().NotContainAnyNullElements();
            new { dummyFactoryTypeNamespace }.Must().NotBeNullNorWhiteSpace();
            new { dummyFactoryTypeName }.Must().NotBeNullNorWhiteSpace();

            var modelTypes = types.Select(_ => _.ToModelType().ExampleClosedModelType.ToModelType()).ToList();

            var result = ModelImplementationGeneration.GenerateCodeForDummyFactory(modelTypes, dummyFactoryTypeNamespace, dummyFactoryTypeName, recipeConditionalCompilationSymbol);

            return(result);
        }