Skip to content

Commit

Permalink
Move boolean checkers to test package
Browse files Browse the repository at this point in the history
  • Loading branch information
olabini committed Feb 14, 2023
1 parent 8c8702f commit afaa98d
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 56 deletions.
56 changes: 0 additions & 56 deletions config/hooks_for_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,59 +7,3 @@ import (
)

func Test(t *testing.T) { TestingT(t) }

type boolEqualsChecker struct {
*CheckerInfo
value bool
}

var IsTrue Checker = &boolEqualsChecker{
&CheckerInfo{Name: "IsTrue", Params: []string{"value"}},
true,
}

var IsFalse Checker = &boolEqualsChecker{
&CheckerInfo{Name: "IsFalse", Params: []string{"value"}},
false,
}

func (checker *boolEqualsChecker) Check(params []interface{}, names []string) (result bool, error string) {
ob, ok := params[0].(bool)
if !ok {
return false, "Obtained value is not a boolean"
}
return ob == checker.value, ""
}

type checkerSuite struct{}

var _ = Suite(&checkerSuite{})

func (s *checkerSuite) Test_boolEqualsChecker_Check_comparesABooleanValue(c *C) {
ch := &boolEqualsChecker{value: true}

res, e := ch.Check([]interface{}{false}, nil)
c.Assert(res, Equals, false)
c.Assert(e, Equals, "")

res, e = ch.Check([]interface{}{true}, nil)
c.Assert(res, Equals, true)
c.Assert(e, Equals, "")

ch = &boolEqualsChecker{value: false}

res, e = ch.Check([]interface{}{false}, nil)
c.Assert(res, Equals, true)
c.Assert(e, Equals, "")

res, e = ch.Check([]interface{}{true}, nil)
c.Assert(res, Equals, false)
c.Assert(e, Equals, "")
}

func (s *checkerSuite) Test_boolEqualsChecker_Check_failsIfObtainedValueIsNotBool(c *C) {
ch := &boolEqualsChecker{value: true}
res, e := ch.Check([]interface{}{42}, nil)
c.Assert(res, Equals, false)
c.Assert(e, Equals, "Obtained value is not a boolean")
}
2 changes: 2 additions & 0 deletions config/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import (
"github.com/stretchr/testify/mock"
"golang.org/x/text/language"
. "gopkg.in/check.v1"

. "github.com/digitalautonomy/wahay/test"
)

type UtilsSuite struct{}
Expand Down
28 changes: 28 additions & 0 deletions test/bool.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package test

import (
. "gopkg.in/check.v1"
)

type boolEqualsChecker struct {
*CheckerInfo
value bool
}

func (checker *boolEqualsChecker) Check(params []interface{}, names []string) (result bool, error string) {
ob, ok := params[0].(bool)
if !ok {
return false, "Obtained value is not a boolean"
}
return ob == checker.value, ""
}

var IsTrue Checker = &boolEqualsChecker{
&CheckerInfo{Name: "IsTrue", Params: []string{"value"}},
true,
}

var IsFalse Checker = &boolEqualsChecker{
&CheckerInfo{Name: "IsFalse", Params: []string{"value"}},
false,
}
38 changes: 38 additions & 0 deletions test/bool_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package test

import (
. "gopkg.in/check.v1"
)

type checkerSuite struct{}

var _ = Suite(&checkerSuite{})

func (s *checkerSuite) Test_boolEqualsChecker_Check_comparesABooleanValue(c *C) {
ch := &boolEqualsChecker{value: true}

res, e := ch.Check([]interface{}{false}, nil)
c.Assert(res, Equals, false)
c.Assert(e, Equals, "")

res, e = ch.Check([]interface{}{true}, nil)
c.Assert(res, Equals, true)
c.Assert(e, Equals, "")

ch = &boolEqualsChecker{value: false}

res, e = ch.Check([]interface{}{false}, nil)
c.Assert(res, Equals, true)
c.Assert(e, Equals, "")

res, e = ch.Check([]interface{}{true}, nil)
c.Assert(res, Equals, false)
c.Assert(e, Equals, "")
}

func (s *checkerSuite) Test_boolEqualsChecker_Check_failsIfObtainedValueIsNotBool(c *C) {
ch := &boolEqualsChecker{value: true}
res, e := ch.Check([]interface{}{42}, nil)
c.Assert(res, Equals, false)
c.Assert(e, Equals, "Obtained value is not a boolean")
}

0 comments on commit afaa98d

Please sign in to comment.