private void GenerateAndAssertSnapshot(
            Type patternType,
            string patternInterfaceFile,
            string patternImplementationFile,
            string declarationInterfaceFile,
            string targetNameSpace,
            string snapshotName)
        {
            var resolver = this.LoadWorkSpace(
                patternInterfaceFile,
                patternImplementationFile,
                declarationInterfaceFile,
                out var itfDeclaration,
                out var itfPatternDeclaration,
                out var implPatternDeclaration,
                out var files);

            var locator = new RelativeLocator(string.Empty, targetNameSpace);

            var snapshotGenerator = new SnapshotGenerator();

            var implGenerator = new AutomatedGenerator(
                snapshotGenerator, locator, resolver, patternType);

            implGenerator.Generate(files);

            string location = SnapshotHelper.GetLocationFromCallingProjectRoot("Generator");

            SnapshotHelper.AssertSnapshot(snapshotGenerator.GetAllGenerated(), snapshotName, location);
        }
Exemplo n.º 2
0
        internal void Generate(RelativeLocator locator, IGenerator fileGenerator, IEnumerable <ICSharpFile> files)
        {
            this.workspace.RegisterFile(GetContentFile("./Patterns/Itf/IObjectPattern.cs"));
            this.workspace.RegisterFile(GetContentFile("./Patterns/Itf/IFactoryPattern.cs"));
            this.workspace.RegisterFile(GetContentFile("./Patterns/Impl/FactoryPattern.cs"));
            this.workspace.RegisterFile(GetContentFile("./Patterns/Impl/ObjectPattern.cs"));

            var resolver = this.workspace.DeepLoad();

            var generator1 = new AutomatedGenerator(
                fileGenerator,
                locator,
                resolver,
                typeof(IFactoryPattern));

            var generatedItems1 = generator1.Generate(files);

            var generator2 = new AutomatedGenerator(
                fileGenerator,
                locator,
                resolver,
                typeof(FactoryPattern));

            var generatedItems2 = generator2.Generate(files);

            var generator3 = new AutomatedGenerator(
                fileGenerator,
                locator,
                resolver,
                typeof(ObjectPattern));

            var generatedItems3 = generator3.Generate(files);
        }