public void ShouldIgnoreInvalidPackage()
        {
            List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" +
                                                                                            "numpy<>3.5.2");

            Assert.Empty(result);
        }
        public void ShouldIgnoreExtraIndex()
        {
            List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" +
                                                                                            "--extra-index = https://extra.index.org");

            Assert.Empty(result);
        }
        public void ShouldIgnoreComment()
        {
            List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" +
                                                                                            "# This is a comment");

            Assert.Empty(result);
        }
        public void PackageNameShouldBeFormalizedIntoDashes()
        {
            List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" +
                                                                                            "Azure-Functions-Worker\r\n" +
                                                                                            "azure.functions.worker\n" +
                                                                                            "azure_functions_worker");

            Assert.Equal(3, result.Count);
            Assert.All(result, r => Assert.Equal("azure-functions-worker", r.Name));
        }
        public void ShouldReturnPackageWithSpecAndEnvironmentMarker()
        {
            List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" +
                                                                                            "numpy>=3.5.1; python_version == '2.7'");

            Assert.Single(result);

            PythonPackage numpyPackage = result[0];

            Assert.Equal("numpy", numpyPackage.Name);
            Assert.Equal(">=3.5.1", numpyPackage.Specification);
            Assert.Equal("python_version == '2.7'", numpyPackage.EnvironmentMarkers);
            Assert.Empty(numpyPackage.DirectReference);
        }
        public void ShouldReturnPackageWithSpecification(string content, string expectedName, string expectedSpec)
        {
            List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" +
                                                                                            content);

            Assert.Single(result);

            PythonPackage numpyPackage = result[0];

            Assert.Equal(expectedName, numpyPackage.Name);
            Assert.Equal(expectedSpec, numpyPackage.Specification);
            Assert.Empty(numpyPackage.EnvironmentMarkers);
            Assert.Empty(numpyPackage.DirectReference);
        }
        public void PackageSpecWithDirectReference()
        {
            List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" +
                                                                                            "numpy==3.5.2 @ https://direct.reference/numpy");

            Assert.Single(result);

            PythonPackage numpyPackage = result[0];

            Assert.Equal("numpy", numpyPackage.Name);
            Assert.Equal("==3.5.2", numpyPackage.Specification);
            Assert.Empty(numpyPackage.EnvironmentMarkers);
            Assert.Equal("https://direct.reference/numpy", numpyPackage.DirectReference);
        }
        public void ShouldReturnEmptyListOnEmptyContent()
        {
            List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("");

            Assert.Empty(result);
        }