Exemple #1
0
        public void InvalidProjectsLogGoodInfo()
        {
            string projectA = GetTempFileName();

            File.WriteAllText(projectA, @"Invalid XML");

            ProjectCreator dirsProj = ProjectCreator
                                      .Create(GetTempFileName())
                                      .Property("IsTraversal", bool.TrueString)
                                      .ItemInclude("ProjectFile", projectA)
                                      .Save();

            TestLogger logger = new TestLogger();

            ProjectCollection projectCollection = new ProjectCollection();

            LegacyProjectLoader loader = new LegacyProjectLoader(logger);

            loader.LoadProjects(new[] { dirsProj.FullPath }, projectCollection, null);

            BuildErrorEventArgs errorEventArgs = logger.Errors.ShouldHaveSingleItem();

            errorEventArgs.Message.ShouldStartWith("The project file could not be loaded. Data at the root level is invalid. Line 1, position 1.");
            errorEventArgs.Code.ShouldBe("MSB4025");
            errorEventArgs.ColumnNumber.ShouldBe(1);
            errorEventArgs.LineNumber.ShouldBe(1);
            errorEventArgs.File.ShouldBe(projectA);
        }
Exemple #2
0
        public void TraversalReferencesWork()
        {
            ProjectCreator projectB = ProjectCreator
                                      .Create(GetTempFileName())
                                      .Save();

            ProjectCreator projectA = ProjectCreator
                                      .Create(GetTempFileName())
                                      .ItemProjectReference(projectB)
                                      .Save();

            ProjectCreator dirsProj = ProjectCreator
                                      .Create(GetTempFileName())
                                      .Property("IsTraversal", bool.TrueString)
                                      .ItemInclude("ProjectFile", projectA.FullPath)
                                      .Save();

            TestLogger logger = new TestLogger();

            ProjectCollection projectCollection = new ProjectCollection();

            LegacyProjectLoader loader = new LegacyProjectLoader(logger);

            loader.LoadProjects(new[] { dirsProj.FullPath }, projectCollection, null);

            projectCollection.LoadedProjects.Select(i => i.FullPath).ShouldBe(
                new[] { dirsProj.FullPath, projectA.FullPath, projectB.FullPath },
                ignoreOrder: true);
        }
Exemple #3
0
        public void ArgumentNullException_Logger()
        {
            ArgumentNullException exception = Should.Throw <ArgumentNullException>(() =>
            {
                LegacyProjectLoader unused = new LegacyProjectLoader(logger: null);
            });

            exception.ParamName.ShouldBe("logger");
        }
Exemple #4
0
        public void BuildFailsIfError()
        {
            ProjectCreator dirsProj = ProjectCreator
                                      .Create(GetTempFileName())
                                      .Property("IsTraversal", bool.TrueString)
                                      .ItemInclude("ProjectFile", "does not exist")
                                      .Save();

            TestLogger logger = new TestLogger();

            LegacyProjectLoader loader = new LegacyProjectLoader(logger);

            ProjectCollection projectCollection = new ProjectCollection();

            loader.LoadProjects(new[] { dirsProj.FullPath }, projectCollection, null);

            logger.ErrorMessages.ShouldHaveSingleItem().ShouldStartWith("The project file could not be loaded. Could not find file ");
        }
Exemple #5
0
        public void ProjectReferencesWork()
        {
            ProjectCreator projectB = ProjectCreator
                                      .Create(GetTempFileName())
                                      .Save();

            ProjectCreator projectA = ProjectCreator
                                      .Create(GetTempFileName())
                                      .ItemProjectReference(projectB)
                                      .Save();

            TestLogger logger = new TestLogger();

            ProjectCollection projectCollection = new ProjectCollection();

            LegacyProjectLoader loader = new LegacyProjectLoader(logger);

            loader.LoadProjects(new[] { projectA.FullPath }, projectCollection, null);

            projectCollection.LoadedProjects.Select(i => i.FullPath).ShouldBe(new[] { projectA.FullPath, projectB.FullPath });
        }
Exemple #6
0
        public void GlobalPropertiesSetCorrectly()
        {
            Dictionary <string, string> expectedGlobalProperties = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)
            {
                ["Property1"] = "1A836FEB3ABA43B183034DFDD5C4E375",
                ["Property2"] = "CEEC5C9FF0F344DAA32A0F545460EB2C",
            };

            ProjectCreator projectA = ProjectCreator
                                      .Create(GetTempFileName())
                                      .Save();

            TestLogger logger = new TestLogger();

            LegacyProjectLoader loader = new LegacyProjectLoader(logger);

            ProjectCollection projectCollection = new ProjectCollection();

            loader.LoadProjects(new[] { projectA.FullPath }, projectCollection, expectedGlobalProperties);

            Project project = projectCollection.LoadedProjects.ShouldHaveSingleItem();

            project.GlobalProperties.ShouldBe(expectedGlobalProperties);
        }