コード例 #1
0
        /// <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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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"));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
 public InMemoryProjectInfo(InMemoryProject project, IProjectContextProvider contextProvider)
     : base(contextProvider)
 {
     _project = project;
 }