Expose Uses to interface

This commit is contained in:
Ettore Di Giacinto 2019-06-12 21:32:15 +02:00
parent caa7c788ec
commit b29ce651b9
No known key found for this signature in database
GPG Key ID: F557248F4D256736
2 changed files with 26 additions and 1 deletions

View File

@ -41,6 +41,10 @@ type Package interface {
GetName() string GetName() string
GetVersion() string GetVersion() string
RequiresContains(Package) bool RequiresContains(Package) bool
AddUse(use string)
RemoveUse(use string)
GetUses() []string
} }
// DefaultPackage represent a standard package definition // DefaultPackage represent a standard package definition
@ -112,6 +116,10 @@ func (p *DefaultPackage) GetVersion() string {
return p.Version return p.Version
} }
func (p *DefaultPackage) GetUses() []string {
return p.UseFlags
}
func (p *DefaultPackage) GetRequires() []*DefaultPackage { func (p *DefaultPackage) GetRequires() []*DefaultPackage {
return p.PackageRequires return p.PackageRequires
} }

View File

@ -89,7 +89,9 @@ var _ = Describe("Package", func() {
It("builds constraints correctly", func() { It("builds constraints correctly", func() {
a11 := NewPackage("A", "1.1", []*DefaultPackage{}, []*DefaultPackage{}) a11 := NewPackage("A", "1.1", []*DefaultPackage{}, []*DefaultPackage{})
a21 := NewPackage("A", "1.2", []*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() f, err := a1.BuildFormula()
Expect(err).ToNot(HaveOccurred()) Expect(err).ToNot(HaveOccurred())
Expect(len(f)).To(Equal(2)) 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))
})
})
}) })