diff --git a/cmd/helpers/cli_suite_test.go b/cmd/helpers/cli_suite_test.go new file mode 100644 index 00000000..ba088f9e --- /dev/null +++ b/cmd/helpers/cli_suite_test.go @@ -0,0 +1,32 @@ +// Copyright © 2019 Ettore Di Giacinto +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, see . + +package cmd_helpers_test + +import ( + "testing" + + . "github.com/mudler/luet/cmd" + config "github.com/mudler/luet/pkg/config" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +func TestSolver(t *testing.T) { + RegisterFailHandler(Fail) + LoadConfig(config.LuetCfg) + RunSpecs(t, "CLI helpers test Suite") +} diff --git a/cmd/helpers/cli_test.go b/cmd/helpers/cli_test.go new file mode 100644 index 00000000..02b0ef7d --- /dev/null +++ b/cmd/helpers/cli_test.go @@ -0,0 +1,70 @@ +// Copyright © 2019 Ettore Di Giacinto +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, see . + +package cmd_helpers_test + +import ( + . "github.com/mudler/luet/cmd/helpers" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +var _ = Describe("CLI Helpers", func() { + Context("Can parse package strings correctly", func() { + It("accept single package names", func() { + pack, err := ParsePackageStr("foo") + Expect(err).ToNot(HaveOccurred()) + Expect(pack.GetName()).To(Equal("foo")) + Expect(pack.GetCategory()).To(Equal("")) + Expect(pack.GetVersion()).To(Equal(">=0")) + }) + It("accept unversioned packages with category", func() { + pack, err := ParsePackageStr("cat/foo") + Expect(err).ToNot(HaveOccurred()) + Expect(pack.GetName()).To(Equal("foo")) + Expect(pack.GetCategory()).To(Equal("cat")) + Expect(pack.GetVersion()).To(Equal(">=0")) + }) + It("accept versioned packages with category", func() { + pack, err := ParsePackageStr("cat/foo@1.1") + Expect(err).ToNot(HaveOccurred()) + Expect(pack.GetName()).To(Equal("foo")) + Expect(pack.GetCategory()).To(Equal("cat")) + Expect(pack.GetVersion()).To(Equal("1.1")) + }) + It("accept versioned ranges with category", func() { + pack, err := ParsePackageStr("cat/foo@>=1.1") + Expect(err).ToNot(HaveOccurred()) + Expect(pack.GetName()).To(Equal("foo")) + Expect(pack.GetCategory()).To(Equal("cat")) + Expect(pack.GetVersion()).To(Equal(">=1.1")) + }) + It("accept gentoo regex parsing without versions", func() { + pack, err := ParsePackageStr("=cat/foo") + Expect(err).ToNot(HaveOccurred()) + Expect(pack.GetName()).To(Equal("foo")) + Expect(pack.GetCategory()).To(Equal("cat")) + Expect(pack.GetVersion()).To(Equal(">=0")) + }) + It("accept gentoo regex parsing with versions", func() { + pack, err := ParsePackageStr("=cat/foo-1.2") + Expect(err).ToNot(HaveOccurred()) + Expect(pack.GetName()).To(Equal("foo")) + Expect(pack.GetCategory()).To(Equal("cat")) + Expect(pack.GetVersion()).To(Equal("1.2")) + }) + }) +})