public void ValidateReferenceGroups(string frameworkString, bool shouldWarn)
        {
            string    xmlString    = $@"
            <?xml version=""1.0"" encoding=""utf-8""?>
            <package>
                <metadata>
                    <references>
                        <group targetFramework=""{frameworkString}"">
                            <reference file=""foo.dll"" />
                        </group>
                    </references>
                </metadata>
            </package>
            ".Trim();
            XDocument xml          = XDocument.Parse(xmlString);
            XElement  metadataNode = xml.Root.Elements().Where(e => StringComparer.Ordinal.Equals(e.Name.LocalName, "metadata")).FirstOrDefault();
            var       results      = new List <PackagingLogMessage>(InvalidUndottedFrameworkRule.ValidateReferenceGroups(metadataNode));

            if (shouldWarn)
            {
                Assert.True(results.Any());
                Assert.Equal(NuGetLogCode.NU5501, results[0].Code);
                Assert.True(results[0].Message.Contains(frameworkString));
            }
            else
            {
                Assert.False(results.Any());
            }
        }
        public void ValidateFrameworkAssemblies(string frameworkString, bool shouldWarn)
        {
            string    xmlString    = $@"
            <?xml version=""1.0"" encoding=""utf-8""?>
            <package>
                <metadata>
                    <frameworkAssemblies>
                        <frameworkAssembly assemblyName=""System.Net"" targetFramework=""{frameworkString}"" />
                    </frameworkAssemblies>
                </metadata>
            </package>
            ".Trim();
            XDocument xml          = XDocument.Parse(xmlString);
            XElement  metadataNode = xml.Root.Elements().Where(e => StringComparer.Ordinal.Equals(e.Name.LocalName, "metadata")).FirstOrDefault();
            var       results      = new List <PackagingLogMessage>(InvalidUndottedFrameworkRule.ValidateFrameworkAssemblies(xml, metadataNode));

            if (shouldWarn)
            {
                Assert.True(results.Any());
                Assert.Equal(NuGetLogCode.NU5501, results[0].Code);
            }
            else
            {
                Assert.False(results.Any());
            }
        }
        public void ValidateFiles()
        {
            var files = new string[]
            {
                "lib/net472/a.dll",
                "contentFiles/any/net50/b.csv",
                "lib/net5.0/c.pdb",
                "lib/net50-windows7.0/d.dll",
            };
            var results = new List <PackagingLogMessage>(InvalidUndottedFrameworkRule.ValidateFiles(files));

            Assert.Equal(1, results.Count());
            Assert.Equal(NuGetLogCode.NU5501, results[0].Code);
            Assert.True(results[0].Message.Contains("contentFiles/any/net50/b.csv"));
            Assert.True(results[0].Message.Contains("lib/net50-windows7.0/d.dll"));
        }
 public void FrameworkVersionHasRequiredDots_UnitTest(string frameworkString, bool expected)
 {
     Assert.Equal(expected, InvalidUndottedFrameworkRule.FrameworkVersionHasDesiredDots(frameworkString));
 }