Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
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"));
        }