Ejemplo n.º 1
0
        public async Task ExtractsMethodCallsBetweenServiceAndRepositoryClasses_When_EF60_NWProjectIsUsed()
        {
            //Arrange
            Solution solution = await new RoslynSolutionGenerator().GetSolutionAsync(@"..\..\..\..\ProjectsUnderTest\EF60_NW\EF60_NW.sln");

            var progressIndicator = new ProgressStub();

            var context            = new ContextStub <EntityFramework>();
            var dataContextDecExtr = new DataContextDeclarationExtractor(context);
            await dataContextDecExtr.FindDataContextDeclarationsAsync(solution, progressIndicator);

            var dbEntityExtractor = new DatabaseEntityDeclarationExtractorUsingDbContextProperties(context);
            await dbEntityExtractor.FindDatabaseEntityDeclarationsAsync(solution, progressIndicator);

            var dbAccessingMethodCallsExtractor = new DatabaseAccessingMethodCallExtractor(context);
            await dbAccessingMethodCallsExtractor.FindDatabaseAccessingMethodCallsAsync(solution, progressIndicator);

            var target = new CodeExecutionPathGenerator(context);

            //Act
            await target.GenerateCodeExecutionPathsAsync(solution, progressIndicator);

            //Assert
            Assert.IsTrue(target.CodeExecutionPaths.Count() == 2);
        }
        public async Task DetectsThreeDatabaseEntityDeclarations_When_EF60_NWProjectIsUsed()
        {
            //Arrange
            Solution EF60_NWSolution = await new RoslynSolutionGenerator().GetSolutionAsync(@"..\..\..\..\ProjectsUnderTest\EF60_NW\EF60_NW.sln");

            var progressIndicator = new ProgressStub();

            Context <EntityFramework> context = new ContextStub <EntityFramework>();
            var dataContextDecExtr            = new DataContextDeclarationExtractor(context);
            await dataContextDecExtr.FindDataContextDeclarationsAsync(EF60_NWSolution, progressIndicator);

            var target = new DatabaseEntityDeclarationExtractorUsingDbContextProperties(context);

            //Act
            await target.FindDatabaseEntityDeclarationsAsync(EF60_NWSolution, progressIndicator);

            //Assert
            Assert.IsTrue(target.DatabaseEntityDeclarations.Count == 3);

            IEnumerable <string> dbEntityNames = target.DatabaseEntityDeclarations.Select(d => d.Name);

            Assert.IsTrue(dbEntityNames.Contains("Customer"));
            Assert.IsTrue(dbEntityNames.Contains("Order"));
            Assert.IsTrue(dbEntityNames.Contains("OrderItem"));

            Assert.IsTrue(context.DatabaseEntityDeclarations == target.DatabaseEntityDeclarations);
        }
        public async Task ExtractsDatabaseAccessingMethodCallsWithRightParentMethodNames_When_EF60_NWProjectIsUsed()
        {
            //Arrange
            Solution solution = await new RoslynSolutionGenerator().GetSolutionAsync(@"..\..\..\..\ProjectsUnderTest\EF60_NW\EF60_NW.sln");

            var progressIndicator = new ProgressStub();

            var context            = new ContextStub <EntityFramework>();
            var dataContextDecExtr = new DataContextDeclarationExtractor(context);
            await dataContextDecExtr.FindDataContextDeclarationsAsync(solution, progressIndicator);

            var dbEntityExtractor = new DatabaseEntityDeclarationExtractorUsingDbContextProperties(context);
            await dbEntityExtractor.FindDatabaseEntityDeclarationsAsync(solution, progressIndicator);

            var target = new DatabaseAccessingMethodCallExtractor(context);

            //Act
            await target.FindDatabaseAccessingMethodCallsAsync(solution, progressIndicator);

            var result            = target.DatabaseAccessingMethodCalls;
            var parentMethodNames = result.Select(d => d.ParentMethodName);

            //Assert
            Assert.IsTrue(parentMethodNames.Contains("GetCustomerUsingQuerySyntaxAndAssignToVariable"));
            Assert.IsTrue(parentMethodNames.Contains("GetCustomerUsingQuerySyntax"));
            Assert.IsTrue(parentMethodNames.Contains("GetCustomerUsingMethodSyntax"));
            Assert.IsTrue(parentMethodNames.Contains("GetCustomerUsingMethodSyntaxAndAssignToVariable"));
            Assert.IsTrue(parentMethodNames.Contains("GetCustomerUsingMethodSyntaxAndQueryIsChangedInMultipleLines"));
            Assert.IsTrue(parentMethodNames.Contains("DoSomething"));
        }
Ejemplo n.º 4
0
        public void SetUp()
        {
            WFAppHost.ConfigureBootstrap(false);

            LangMan.DefInit();

            fBaseWin = new BaseWindowStub();

            AppHost.Container.Register <IProgressController, ProgressStub>(LifeCycle.Singleton, true);
            fProgress = new ProgressStub();
        }
Ejemplo n.º 5
0
        public void SetUp()
        {
            // for static initialization
            GEDCOMProvider.SkipEmptyTag((int)GEDCOMTagType._AWARD);

            WFAppHost.ConfigureBootstrap(false);

            LangMan.DefInit();

            fBaseWin = new BaseWindowStub();

            AppHost.Container.Register <IProgressController, ProgressStub>(LifeCycle.Singleton, true);
            fProgress = new ProgressStub();
        }
        public async Task DetectsDbContextClasses_When_VirtoCommerceSolutionIsCompiled()
        {
            //Arrange
            Solution EF60_NWSolution = await new RoslynSolutionGenerator().GetSolutionAsync(@"..\..\..\..\..\..\vc-community\PLATFORM\VirtoCommerce.WebPlatform.sln");
            //ToDo: Use target builder instead
            Context <EntityFramework> context = new ContextStub <EntityFramework>();
            var target = new DataContextDeclarationExtractor(context);

            var progressIndicator = new ProgressStub();

            //Act
            await target.FindDataContextDeclarationsAsync(EF60_NWSolution, progressIndicator);

            //Assert
            Assert.IsTrue(target.DataContextDeclarations.Count == 15);
        }
        public async Task DetectsDatabaseEntityDeclarations_When_RoslynComplexSolutionIsUsed()
        {
            //Arrange
            var solGen   = new RoslynComplexSolutionGenerator();
            var solution = solGen.GetRoslynSolution();

            //ToDo: change to use TargetBuilder
            Context <LINQToSQL> context = new ContextStub <LINQToSQL>();

            target = new DatabaseEntityDeclarationExtractor(context);

            var progressIndicator = new ProgressStub();
            //Act
            await target.FindDatabaseEntityDeclarationsAsync(solution, progressIndicator);

            var result = target.DatabaseEntityDeclarations;

            //Assert
            Assert.IsTrue(result.Count() == 3);
            Assert.IsTrue(result.ToList().Exists(x => x.Name == "Customer"));
            Assert.IsTrue(result.ToList().Exists(x => x.Name == "Order"));
            Assert.IsTrue(result.ToList().Exists(x => x.Name == "OrderItem"));
        }
        public async Task DetectsDbContextClasses_When_EF60_NWProjectIsCompiled()
        {
            //Arrange
            Solution EF60_NWSolution = await new RoslynSolutionGenerator().GetSolutionAsync(@"..\..\..\..\ProjectsUnderTest\EF60_NW\EF60_NW.sln");

            //ToDo: Use target builder instead
            Context <EntityFramework> context = new ContextStub <EntityFramework>();

            var target = new DataContextDeclarationExtractor(context);

            var progressIndicator = new ProgressStub();

            //Act
            await target.FindDataContextDeclarationsAsync(EF60_NWSolution, progressIndicator);

            //Assert
            var item = target.DataContextDeclarations.First();

            Assert.IsTrue(target.DataContextDeclarations.Count == 1);
            Assert.IsTrue(item.Name == "NWDbContext");
            Assert.IsTrue(target.DataContextDeclarations.Count == 1);
            Assert.IsTrue(context.DataContextDeclarations == target.DataContextDeclarations);
        }
 public void Initialize()
 {
     progressIndicator = new ProgressStub();
 }