Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
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);
        }
Exemplo n.º 5
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"));
        }
Exemplo n.º 6
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"));
        }