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")); }