diff --git a/pkg/package/package.go b/pkg/package/package.go index 8825b7a0..cc97c305 100644 --- a/pkg/package/package.go +++ b/pkg/package/package.go @@ -41,6 +41,10 @@ type Package interface { GetName() string GetVersion() string RequiresContains(Package) bool + + AddUse(use string) + RemoveUse(use string) + GetUses() []string } // DefaultPackage represent a standard package definition @@ -112,6 +116,10 @@ func (p *DefaultPackage) GetVersion() string { return p.Version } +func (p *DefaultPackage) GetUses() []string { + return p.UseFlags +} + func (p *DefaultPackage) GetRequires() []*DefaultPackage { return p.PackageRequires } diff --git a/pkg/package/package_test.go b/pkg/package/package_test.go index 7daef4ac..000e04cc 100644 --- a/pkg/package/package_test.go +++ b/pkg/package/package_test.go @@ -89,7 +89,9 @@ var _ = Describe("Package", func() { It("builds constraints correctly", func() { a11 := NewPackage("A", "1.1", []*DefaultPackage{}, []*DefaultPackage{}) a21 := NewPackage("A", "1.2", []*DefaultPackage{}, []*DefaultPackage{}) - a1 := NewPackage("A", "1.0", []*DefaultPackage{a11}, []*DefaultPackage{a21}) + a1 := NewPackage("A", "1.0", []*DefaultPackage{}, []*DefaultPackage{}) + a1.Requires([]*DefaultPackage{a11}) + a1.Conflicts([]*DefaultPackage{a21}) f, err := a1.BuildFormula() Expect(err).ToNot(HaveOccurred()) Expect(len(f)).To(Equal(2)) @@ -118,4 +120,19 @@ var _ = Describe("Package", func() { }) }) + + Context("Useflags", func() { + a1 := NewPackage("A", "1.0", []*DefaultPackage{}, []*DefaultPackage{}) + It("Adds correctly", func() { + a1.AddUse("test") + Expect(a1.GetUses()[0]).To(Equal("test")) + }) + It("Removes correctly", func() { + Expect(len(a1.GetUses())).To(Equal(1)) + a1.RemoveUse("foo") + Expect(len(a1.GetUses())).To(Equal(1)) + a1.RemoveUse("test") + Expect(len(a1.GetUses())).To(Equal(0)) + }) + }) })