Drop State from package

Also tests for Clone()
This commit is contained in:
Ettore Di Giacinto 2019-06-12 20:57:39 +02:00
parent 9f3f715324
commit caa7c788ec
No known key found for this signature in database
GPG Key ID: F557248F4D256736
2 changed files with 26 additions and 8 deletions

View File

@ -26,7 +26,7 @@ import (
// FIXME: Currently some of the methods are returning DefaultPackages due to JSON serialization of the package
type Package interface {
Encode() (string, error)
SetState(state State) Package
BuildFormula() ([]bf.Formula, error)
IsFlagged(bool) Package
Flagged() bool
@ -95,26 +95,23 @@ func (p *DefaultPackage) Encode() (string, error) {
return NewInMemoryDatabase().CreatePackage(p)
}
func (p *DefaultPackage) WithState(state State) Package {
return p.Clone().SetState(state)
}
func (p *DefaultPackage) IsFlagged(b bool) Package {
p.IsSet = b
return p
}
func (p *DefaultPackage) Flagged() bool {
return p.IsSet
}
func (p *DefaultPackage) GetName() string {
return p.Name
}
func (p *DefaultPackage) GetVersion() string {
return p.Version
}
func (p *DefaultPackage) SetState(state State) Package {
p.State = state
return p
}
func (p *DefaultPackage) GetRequires() []*DefaultPackage {
return p.PackageRequires
}

View File

@ -97,4 +97,25 @@ var _ = Describe("Package", func() {
Expect(f[1].String()).To(Equal("or(not(1c6f6460), not(039f5fc3))"))
})
})
Context("Clone", func() {
a1 := NewPackage("A", "1.0", []*DefaultPackage{}, []*DefaultPackage{})
a11 := NewPackage("A", "1.1", []*DefaultPackage{}, []*DefaultPackage{})
a := NewPackage("A", ">=1.0", []*DefaultPackage{a1}, []*DefaultPackage{a11})
It("Clones correctly", func() {
a2 := a.Clone()
Expect(a2.GetVersion()).To(Equal(a.GetVersion()))
Expect(a2.GetName()).To(Equal(a.GetName()))
Expect(a2.Flagged()).To(Equal(a.Flagged()))
Expect(a2.GetFingerPrint()).To(Equal(a.GetFingerPrint()))
Expect(len(a2.GetConflicts())).To(Equal(len(a.GetConflicts())))
Expect(len(a2.GetRequires())).To(Equal(len(a.GetRequires())))
Expect(len(a2.GetRequires())).To(Equal(1))
Expect(len(a2.GetConflicts())).To(Equal(1))
Expect(a2.GetConflicts()[0].GetName()).To(Equal(a11.GetName()))
Expect(a2.GetRequires()[0].GetName()).To(Equal(a1.GetName()))
})
})
})