Exemple #1
0
 public ExtractionManager(DataContextDeclarationExtractor <T> dataContextDeclarationExtractor
                          , DatabaseEntityDeclarationExtractor <T> databaseEntityDeclarationExtractor
                          , DatabaseAccessingMethodCallExtractor <T> databaseAccessingMethodCallExtractor
                          , CodeExecutionPathGenerator <T> codeExecutionPathExtractor
                          , IProgress <ExtractionProgress> progressIndicator
                          , ISerializer <T> serializer)
 {
     _dataContextDeclarationExtractor      = dataContextDeclarationExtractor;
     _databaseEntityDeclarationExtractor   = databaseEntityDeclarationExtractor;
     _databaseAccessingMethodCallExtractor = databaseAccessingMethodCallExtractor;
     _codeExecutionPathExtractor           = codeExecutionPathExtractor;
     _progressIndicator = progressIndicator;
     _serializer        = serializer;
 }
        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"));
        }