public void CompilationArgumentsCacheDoesNotReturnReloadedProjectWithRemovedCompilationConstantsAsProjectWithChangedConstantsMoreThenOnceIfAlreadyReported() { 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" }); mockArgumentsProvider.Setup(m => m.UserDefinedCompilationArguments(It.IsAny <string>())) .Returns(() => new Dictionary <string, short> { { "constant", 1 } }); argumentsCache.ReloadCompilationArguments(new[] { "test" }); var projectsWithChangedConstants = argumentsCache.ProjectWhoseCompilationArgumentsChanged(); var expectedCount = 1; var actualCount = projectsWithChangedConstants.Count; Assert.AreEqual(expectedCount, actualCount); Assert.IsTrue(projectsWithChangedConstants.Contains("test")); }
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 CompilationArgumentsCacheDoesNotReturnFreshlyLoadedProjectWithoutCompilationConstantsAsProjectWithChangedConstants() { var mockArgumentsProvider = new Mock <ICompilationArgumentsProvider>(); mockArgumentsProvider.Setup(m => m.UserDefinedCompilationArguments(It.IsAny <string>())) .Returns(() => new Dictionary <string, short>()); var argumentsProvider = mockArgumentsProvider.Object; var argumentsCache = new CompilationArgumentsCache(argumentsProvider); argumentsCache.ReloadCompilationArguments(new[] { "test" }); var projectsWithChangedConstants = argumentsCache.ProjectWhoseCompilationArgumentsChanged(); Assert.IsTrue(projectsWithChangedConstants.Count == 0); }
public void CompilationArgumentsCacheInitiallyReturnsEmptyCollectionOfProjectsWithChangesConstants() { 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); var projectsWithChangedConstants = argumentsCache.ProjectWhoseCompilationArgumentsChanged(); Assert.IsTrue(projectsWithChangedConstants.Count == 0); }
public void CompilationArgumentsCacheDoesNotRemoveProjectsWithChangedConstantsOnReloadFromChangedCollection() { 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.ReloadCompilationArguments(new[] { "notTest" }); var projectsWithChangedConstants = argumentsCache.ProjectWhoseCompilationArgumentsChanged(); var expectedCount = 2; var actualCount = projectsWithChangedConstants.Count; Assert.AreEqual(expectedCount, actualCount); Assert.IsTrue(projectsWithChangedConstants.Contains("test")); }
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")); }