public void AddModelToContext_Adds_Model_From_Same_Project_To_Context(string beforeContextResource, string modelResource, string afterContextResource) { string resourcePrefix = "compiler/resources/"; var beforeDbContextText = ResourceUtilities.GetEmbeddedResourceFileContent(resourcePrefix + beforeContextResource); var modelText = ResourceUtilities.GetEmbeddedResourceFileContent(resourcePrefix + modelResource); var afterDbContextText = ResourceUtilities.GetEmbeddedResourceFileContent(resourcePrefix + afterContextResource); var contextTree = CSharpSyntaxTree.ParseText(beforeDbContextText); var modelTree = CSharpSyntaxTree.ParseText(modelText); var efReference = MetadataReference.CreateFromFile(Assembly.GetEntryAssembly().Location); var compilation = CSharpCompilation.Create("DoesNotMatter", new[] { contextTree, modelTree }, new[] { efReference }); DbContextEditorServices testObj = GetTestObject(); var types = RoslynUtilities.GetDirectTypesInCompilation(compilation); var modelType = ModelType.FromITypeSymbol(types.Where(ts => ts.Name == "MyModel").First()); var contextType = ModelType.FromITypeSymbol(types.Where(ts => ts.Name == "MyContext").First()); var result = testObj.AddModelToContext(contextType, modelType); Assert.True(result.Edited); Assert.Equal(afterDbContextText, result.NewTree.GetText().ToString(), ignoreCase: false, ignoreLineEndingDifferences: true); }
public void AddModelToContext_Adds_Model_From_Same_Project_To_Context(string beforeContextResource, string modelResource, string afterContextResource) { string resourcePrefix = "compiler/resources/"; var beforeDbContextText = ResourceUtilities.GetEmbeddedResourceFileContent(resourcePrefix + beforeContextResource); var modelText = ResourceUtilities.GetEmbeddedResourceFileContent(resourcePrefix + modelResource); var afterDbContextText = ResourceUtilities.GetEmbeddedResourceFileContent(resourcePrefix + afterContextResource); var contextTree = CSharpSyntaxTree.ParseText(beforeDbContextText); var modelTree = CSharpSyntaxTree.ParseText(modelText); var efReference = MetadataReference.CreateFromFile(typeof(DbContext).Assembly.Location); var compilation = CSharpCompilation.Create("DoesNotMatter", new[] { contextTree, modelTree }, new[] { efReference }); DbContextEditorServices testObj = new DbContextEditorServices( new Mock<ILibraryManager>().Object, new Mock<IApplicationEnvironment>().Object, new Mock<IFilesLocator>().Object, new Mock<ITemplating>().Object); var types = RoslynUtilities.GetDirectTypesInCompilation(compilation); var modelType = ModelType.FromITypeSymbol(types.Where(ts => ts.Name == "MyModel").First()); var contextType = ModelType.FromITypeSymbol(types.Where(ts => ts.Name == "MyContext").First()); var result = testObj.AddModelToContext(contextType, modelType); Assert.True(result.Edited); Assert.Equal(afterDbContextText, result.NewTree.GetText().ToString()); }
public void AddModelToContext_Adds_Model_From_Same_Project_To_Context(string beforeContextResource, string modelResource, string afterContextResource) { string resourcePrefix = "compiler/resources/"; var beforeDbContextText = ResourceUtilities.GetEmbeddedResourceFileContent(resourcePrefix + beforeContextResource); var modelText = ResourceUtilities.GetEmbeddedResourceFileContent(resourcePrefix + modelResource); var afterDbContextText = ResourceUtilities.GetEmbeddedResourceFileContent(resourcePrefix + afterContextResource); var contextTree = CSharpSyntaxTree.ParseText(beforeDbContextText); var modelTree = CSharpSyntaxTree.ParseText(modelText); var efReference = MetadataReference.CreateFromFile(typeof(DbContext).Assembly.Location); var compilation = CSharpCompilation.Create("DoesNotMatter", new[] { contextTree, modelTree }, new[] { efReference }); DbContextEditorServices testObj = new DbContextEditorServices( new Mock <ILibraryManager>().Object, new Mock <IApplicationEnvironment>().Object, new Mock <IFilesLocator>().Object, new Mock <ITemplating>().Object); var types = RoslynUtilities.GetDirectTypesInCompilation(compilation); var modelType = ModelType.FromITypeSymbol(types.Where(ts => ts.Name == "MyModel").First()); var contextType = ModelType.FromITypeSymbol(types.Where(ts => ts.Name == "MyContext").First()); var result = testObj.AddModelToContext(contextType, modelType); Assert.True(result.Edited); Assert.Equal(afterDbContextText, result.NewTree.GetText().ToString()); }