public void GetProjectReferences_ProjectFileWithoutReferences_NoReferencesReturned()
        {
            var extractor = new CsprojReferencesExtractor();

            var references = extractor.GetProjectReferences(@"../../../TestProjectFiles/Dg.Returns.Contracts.xml");

            Assert.Empty(references);
        }
        public void GetProjectReferences_EmptyProjectFile_NoReferencesReturned()
        {
            var extractor = new CsprojReferencesExtractor();

            var references = extractor.GetProjectReferences(@"../../../TestProjectFiles/Empty.xml");

            Assert.Empty(references);
        }
        public void GetImportedProps_WithExampleFile_ReturnsImportedPropsFromFile(string projectFileName, params string[] expectedImportedProps)
        {
            var extractor = new CsprojReferencesExtractor();

            var projectProperties = extractor.GetProjectProperties(@"../../../TestProjectFiles/" + projectFileName);

            Assert.Equal(expectedImportedProps, projectProperties.ImportedProps.ToList());
        }
        public void GetTargetFrameworks_WithExampleFile_ReturnsTargetFrameworksFromFile(string projectFileName, params string[] expectedTargetFrameworks)
        {
            var extractor = new CsprojReferencesExtractor();

            var projectProperties = extractor.GetProjectProperties(@"../../../TestProjectFiles/" + projectFileName);

            Assert.Equal(expectedTargetFrameworks, projectProperties.TargetFrameworks);
        }
        public void GetPackageReferences_ProjectFileWithReferenceWithoutPath_NoReferencesReturned()
        {
            var extractor = new CsprojReferencesExtractor();

            var references = extractor
                             .GetPackageReferences(@"../../../TestProjectFiles/ReferenceWithoutPath.xml")
                             .ToList();

            Assert.Empty(references);
        }
        public void GetPackageReferences_ProjectFileWith2Packages_2ReferencesReturned()
        {
            var extractor = new CsprojReferencesExtractor();

            var references = extractor.GetPackageReferences(@"../../../TestProjectFiles/Dg.Returns.Contracts.xml").Select(r => r.To).ToList();

            Assert.NotEmpty(references);
            Assert.Equal(2, references.Count);
            Assert.Contains("devinite.Tools.Roslyn.Analyzers.InProcessApiGuideline", references);
            Assert.Contains("Dg", references);
        }
        public void GetProjectReferences_ProjectFileWithTwoReferences_TwoReferencesReturned()
        {
            var extractor = new CsprojReferencesExtractor();

            var references = extractor
                             .GetProjectReferences(@"../../../TestProjectFiles/Dg.Returns.xml")
                             .ToList();

            Assert.NotEmpty(references);
            Assert.Equal(3, references.Count());
        }
        public void CheckProjectReferencesInSolution_TwoProjectsInSolutionOneReferencesOther_AllGood()
        {
            var solutionParser          = new SolutionParser();
            var referencesExtractorMock = new CsprojReferencesExtractor();
            var checker = new ReferencesExistenceChecker(solutionParser, referencesExtractorMock);

            var messages =
                checker.CheckProjectReferencesExistenceInSolution(@"../../../TestSolutionFiles/SmallValidTestSolution.txt",
                                                                  ".xml");

            Assert.Empty(messages);
        }
        public void CheckProjectReferencesInSolution_TwoProjectsInSolutionOneReferenceWrong_OneMessageReturned()
        {
            var solutionParser          = new SolutionParser();
            var referencesExtractorMock = new CsprojReferencesExtractor();
            var checker = new ReferencesExistenceChecker(solutionParser, referencesExtractorMock);

            var messages =
                checker.CheckProjectReferencesExistenceInSolution(@"../../../TestSolutionFiles/SmallInvalidTestSolution.txt",
                                                                  ".xml");

            // this will not work on all machines.
//            Assert.Equal(new[]
//            {
//                @"Project Dg.Returns.xml has a broken reference to C:/Development/MonolithRuler/Dg.DgConsolidate/Dg.DgConsolidate.csproj. This reference is completely missing from the solution SmallInvalidTestSolution.txt",
//                @"Project Dg.Returns.xml has a broken reference to C:/Development/MonolithRuler/Dg.InversionOfControl/Dg.InversionOfControl.csproj. This reference is completely missing from the solution SmallInvalidTestSolution.txt",
//                @"Project Dg.Returns.xml has a broken reference to C:/Development/MonolithRuler/ProjectReferencesRuler.Tests/Dg.Returns.Contracts/Dg.Returns.Contracts.csproj. This reference is completely missing from the solution SmallInvalidTestSolution.txt"
//            }, messages);
            Assert.Equal(3, messages.Count());
        }