/// <summary> /// Create a new mocked <see cref="DiagnosticAnalyzer"/> to be tested. /// </summary> /// <typeparam name="T"> The type of the analyzer to be tested. </typeparam> /// <returns> The created <see cref="IMockedAnalyzer{T}"/> instance. </returns> public static IMockedAnalyzer <T> CreateMocked <T>() where T : DiagnosticAnalyzer, new() { var analyzer = new T(); var project = new InMemoryProject(); return(new MockedAnalyzer <T>(analyzer, project)); }
public async Task AddReferenceForTypeAsync() { // Given var project = new InMemoryProject(); // When project.AddReferenceFor <InMemoryProject>(); var compilation = await project.CompileAsync(); // Then Assert.NotNull(compilation); Assert.Contains(compilation.ReferencedAssemblyNames, a => a.Name == typeof(InMemoryProject).Assembly.GetName().Name); }
public async Task AddOrUpdateClassAsync() { // Given var project = new InMemoryProject(); // When project.AddOrUpdate("Foo.cs", "public class Foo { }"); var compilation = await project.CompileAsync(); // Then Assert.NotNull(compilation); Assert.True(compilation.ContainsSymbolsWithName("Foo")); }
public async Task AnalyzeEmptySolutionAsync() { // Given var analyzer = new FooAnalyzer(); var project = new InMemoryProject(); var mocked = new MockedAnalyzer <FooAnalyzer>(analyzer, project); // When var diagnostics = await mocked.AnalyzeAsync(); // Then Assert.NotNull(diagnostics); Assert.Empty(diagnostics); }
public async Task AnalyzeAsync() { // Given var analyzer = new FooAnalyzer(); var project = new InMemoryProject(); var mocked = new MockedAnalyzer <FooAnalyzer>(analyzer, project); // When mocked.AddCode("public class Foo { }"); var diagnostics = await mocked.AnalyzeAsync(); // Then Assert.NotNull(diagnostics); Assert.Single(diagnostics); }
public InMemoryProjectInfo(InMemoryProject project, IProjectContextProvider contextProvider) : base(contextProvider) { _project = project; }