diff --git a/pkg/package/package.go b/pkg/package/package.go index 697b90dd..8825b7a0 100644 --- a/pkg/package/package.go +++ b/pkg/package/package.go @@ -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 } diff --git a/pkg/package/package_test.go b/pkg/package/package_test.go index e3b72dbc..7daef4ac 100644 --- a/pkg/package/package_test.go +++ b/pkg/package/package_test.go @@ -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())) + }) + + }) })