public async Task MigrateClassAsync_Correctly_Builds_Complex_Module_Middleware_Class() { var complexSyntaxTree = SyntaxFactory.ParseSyntaxTree(InputComplexClassText); var complexSemanticModel = CSharpCompilation.Create("TestCompilation", new[] { complexSyntaxTree }).GetSemanticModel(complexSyntaxTree); var complexClassDec = complexSyntaxTree.GetRoot().DescendantNodes().OfType <ClassDeclarationSyntax>().Single(); var complexTypeSymbol = complexSemanticModel.GetDeclaredSymbol(complexClassDec); var complexConverter = new HttpModuleClassConverter(InputRelativePath, ClassConverterSetupFixture.TestProjectDirectoryPath, complexSemanticModel, complexClassDec, complexTypeSymbol, new LifecycleManagerService(), new TaskManagerService(), new WebFormMetricContext()); var fileInfo = await complexConverter.MigrateClassAsync(); Assert.AreEqual(2, fileInfo.Count()); var fileText1 = Encoding.UTF8.GetString(fileInfo.First().FileBytes); var fileText2 = Encoding.UTF8.GetString(fileInfo.Last().FileBytes); Assert.AreEqual(ExpectedOutputComplexClassText1, fileText1); Assert.AreEqual(ExpectedOutputComplexClassText2, fileText2); }
public async Task MigrateClassAsync_Correctly_Identifies_Events_Without_EventHandler_Object_Creation_Or_Member_Access() { var testSyntaxTree = SyntaxFactory.ParseSyntaxTree(InputClassNoEventHandlerObjectCreationTextOrMemberAccess); var testSemanticModel = CSharpCompilation.Create("TestCompilation", new[] { testSyntaxTree }).GetSemanticModel(testSyntaxTree); var testClassDec = testSyntaxTree.GetRoot().DescendantNodes().OfType <ClassDeclarationSyntax>().Single(); var testTypeSymbol = testSemanticModel.GetDeclaredSymbol(testClassDec); var testConverter = new HttpModuleClassConverter(InputRelativePath, ClassConverterSetupFixture.TestProjectDirectoryPath, testSemanticModel, testClassDec, testTypeSymbol, new LifecycleManagerService(), new TaskManagerService(), new WebFormMetricContext()); var fileInfo = await testConverter.MigrateClassAsync(); Assert.AreEqual(1, fileInfo.Count()); var fileText1 = Encoding.UTF8.GetString(fileInfo.Single().FileBytes); Assert.AreEqual(ExpectedOutputNoEventHandlerObjectCreation, fileText1); }
public async Task MigrateClassAsync_Maps_New_Relative_Path_To_Correct_Location() { var fileInfo = (await _converter.MigrateClassAsync()).Single(); Assert.AreEqual(ExpectedOutputPath, fileInfo.RelativePath); }