mirror of
https://github.com/getsops/sops.git
synced 2026-02-05 21:45:26 +01:00
156 lines
5.5 KiB
Go
156 lines
5.5 KiB
Go
package assertions
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/smartystreets/assertions/internal/unit"
|
|
)
|
|
|
|
func TestEqualityFixture(t *testing.T) {
|
|
unit.Run(new(EqualityFixture), t)
|
|
}
|
|
|
|
type EqualityFixture struct {
|
|
*unit.Fixture
|
|
}
|
|
|
|
func (this *EqualityFixture) TestNilNil() {
|
|
spec := newEqualityMethodSpecification(nil, nil)
|
|
this.So(spec.IsSatisfied(), ShouldBeFalse)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestEligible1() {
|
|
a := Eligible1{"hi"}
|
|
b := Eligible1{"hi"}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeTrue)
|
|
this.So(specification.AreEqual(), ShouldBeTrue)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestAreEqual() {
|
|
a := Eligible1{"hi"}
|
|
b := Eligible1{"hi"}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeTrue)
|
|
this.So(specification.AreEqual(), ShouldBeTrue)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestAreNotEqual() {
|
|
a := Eligible1{"hi"}
|
|
b := Eligible1{"bye"}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeTrue)
|
|
this.So(specification.AreEqual(), ShouldBeFalse)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestEligible2() {
|
|
a := Eligible2{"hi"}
|
|
b := Eligible2{"hi"}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeTrue)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestEligible1_PointerReceiver() {
|
|
a := &Eligible1{"hi"}
|
|
b := Eligible1{"hi"}
|
|
this.So(a.Equal(b), ShouldBeTrue)
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeTrue)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestIneligible_PrimitiveTypes() {
|
|
specification := newEqualityMethodSpecification(1, 1)
|
|
this.So(specification.IsSatisfied(), ShouldBeFalse)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestIneligible_DisparateTypes() {
|
|
a := Eligible1{"hi"}
|
|
b := Eligible2{"hi"}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeFalse)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestIneligible_NoEqualMethod() {
|
|
a := Ineligible_NoEqualMethod{}
|
|
b := Ineligible_NoEqualMethod{}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeFalse)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestIneligible_EqualMethodReceivesNoInput() {
|
|
a := Ineligible_EqualMethodNoInputs{}
|
|
b := Ineligible_EqualMethodNoInputs{}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeFalse)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestIneligible_EqualMethodReceivesTooManyInputs() {
|
|
a := Ineligible_EqualMethodTooManyInputs{}
|
|
b := Ineligible_EqualMethodTooManyInputs{}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeFalse)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestIneligible_EqualMethodReceivesWrongInput() {
|
|
a := Ineligible_EqualMethodWrongInput{}
|
|
b := Ineligible_EqualMethodWrongInput{}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeFalse)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestIneligible_EqualMethodReturnsNoOutputs() {
|
|
a := Ineligible_EqualMethodNoOutputs{}
|
|
b := Ineligible_EqualMethodNoOutputs{}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeFalse)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestIneligible_EqualMethodReturnsTooManyOutputs() {
|
|
a := Ineligible_EqualMethodTooManyOutputs{}
|
|
b := Ineligible_EqualMethodTooManyOutputs{}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeFalse)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestIneligible_EqualMethodReturnsWrongOutputs() {
|
|
a := Ineligible_EqualMethodWrongOutput{}
|
|
b := Ineligible_EqualMethodWrongOutput{}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeFalse)
|
|
}
|
|
|
|
func (this *EqualityFixture) TestEligibleAsymmetric_EqualMethodResultDiffersWhenArgumentsInverted() {
|
|
a := EligibleAsymmetric{a: 0}
|
|
b := EligibleAsymmetric{a: 1}
|
|
specification := newEqualityMethodSpecification(a, b)
|
|
this.So(specification.IsSatisfied(), ShouldBeTrue)
|
|
this.So(specification.AreEqual(), ShouldBeFalse)
|
|
}
|
|
|
|
/**************************************************************************/
|
|
|
|
type (
|
|
Eligible1 struct{ a string }
|
|
Eligible2 struct{ a string }
|
|
EligibleAsymmetric struct{ a int }
|
|
Ineligible_NoEqualMethod struct{}
|
|
Ineligible_EqualMethodNoInputs struct{}
|
|
Ineligible_EqualMethodNoOutputs struct{}
|
|
Ineligible_EqualMethodTooManyInputs struct{}
|
|
Ineligible_EqualMethodTooManyOutputs struct{}
|
|
Ineligible_EqualMethodWrongInput struct{}
|
|
Ineligible_EqualMethodWrongOutput struct{}
|
|
)
|
|
|
|
func (this Eligible1) Equal(that Eligible1) bool { return this.a == that.a }
|
|
func (this Eligible2) Equal(that Eligible2) bool { return this.a == that.a }
|
|
func (this EligibleAsymmetric) Equal(that EligibleAsymmetric) bool {
|
|
return this.a == 0
|
|
}
|
|
func (this Ineligible_EqualMethodNoInputs) Equal() bool { return true }
|
|
func (this Ineligible_EqualMethodNoOutputs) Equal(that Ineligible_EqualMethodNoOutputs) {}
|
|
func (this Ineligible_EqualMethodTooManyInputs) Equal(a, b bool) bool { return true }
|
|
func (this Ineligible_EqualMethodTooManyOutputs) Equal(bool) (bool, bool) { return true, true }
|
|
func (this Ineligible_EqualMethodWrongInput) Equal(a string) bool { return true }
|
|
func (this Ineligible_EqualMethodWrongOutput) Equal(Ineligible_EqualMethodWrongOutput) int { return 0 }
|