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
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
}

View File

@ -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))
})
})
})