public void CompilationArgumentsCacheReturnsReloadedProjectWithRemovedCompilationConstantsAsProjectWithChangedConstants() { var mockArgumentsProvider = new Mock <ICompilationArgumentsProvider>(); mockArgumentsProvider.Setup(m => m.UserDefinedCompilationArguments(It.IsAny <string>())) .Returns(() => new Dictionary <string, short> { { "constant", 1 }, { "other", 14 } }); var argumentsProvider = mockArgumentsProvider.Object; var argumentsCache = new CompilationArgumentsCache(argumentsProvider); argumentsCache.ReloadCompilationArguments(new[] { "test" }); argumentsCache.ClearProjectWhoseCompilationArgumentsChanged(); mockArgumentsProvider.Setup(m => m.UserDefinedCompilationArguments(It.IsAny <string>())) .Returns(() => new Dictionary <string, short> { { "constant", 1 } }); argumentsCache.ReloadCompilationArguments(new[] { "test" }); var projectsWithChangedConstants = argumentsCache.ProjectWhoseCompilationArgumentsChanged(); var expected = "test"; var actual = projectsWithChangedConstants.Single(); Assert.AreEqual(expected, actual); }
public void CompilationArgumentsCacheReturnsEmptyCollectionOfProjectsWithChangesConstantsAfterClearing() { var mockArgumentsProvider = new Mock <ICompilationArgumentsProvider>(); mockArgumentsProvider.Setup(m => m.UserDefinedCompilationArguments(It.IsAny <string>())) .Returns(() => new Dictionary <string, short> { { "constant", 1 } }); var argumentsProvider = mockArgumentsProvider.Object; var argumentsCache = new CompilationArgumentsCache(argumentsProvider); argumentsCache.ReloadCompilationArguments(new[] { "test" }); argumentsCache.ClearProjectWhoseCompilationArgumentsChanged(); var projectsWithChangedConstants = argumentsCache.ProjectWhoseCompilationArgumentsChanged(); Assert.IsTrue(projectsWithChangedConstants.Count == 0); }
public void CompilationArgumentsCacheDoesNotReturnProjectWithChangeOfCompilationConstantsAsProjectWithChangedConstantsOnReloadOfOtherProjects() { var mockArgumentsProvider = new Mock <ICompilationArgumentsProvider>(); mockArgumentsProvider.Setup(m => m.UserDefinedCompilationArguments(It.IsAny <string>())) .Returns(() => new Dictionary <string, short> { { "constant", 1 } }); var argumentsProvider = mockArgumentsProvider.Object; var argumentsCache = new CompilationArgumentsCache(argumentsProvider); argumentsCache.ReloadCompilationArguments(new[] { "test", "notTest" }); argumentsCache.ClearProjectWhoseCompilationArgumentsChanged(); mockArgumentsProvider.Setup(m => m.UserDefinedCompilationArguments(It.IsAny <string>())) .Returns(() => new Dictionary <string, short> { { "constant", 2 } }); argumentsCache.ReloadCompilationArguments(new[] { "notTest" }); var projectsWithChangedConstants = argumentsCache.ProjectWhoseCompilationArgumentsChanged(); Assert.IsFalse(projectsWithChangedConstants.Contains("test")); }