Make sure FieldValidator methods act on the object we pass in.
Added a unit test for FieldValidator
This commit is contained in:
1 parent
d19d485d39
commit
d228a4450a
2 files changed
+35
-6
No files matched your search
+6
-6
@@ -12,11 +12,11 @@ type FieldValidator struct {
|
||||
err error
|
||||
}
|
||||
|
||||
func NewFieldValidator(fields map[string]string) FieldValidator {
|
||||
return FieldValidator{fields, nil}
|
||||
func NewFieldValidator(fields map[string]string) *FieldValidator {
|
||||
return &FieldValidator{fields, nil}
|
||||
}
|
||||
|
||||
func (fv FieldValidator) Value(fieldName string) (string, error) {
|
||||
func (fv *FieldValidator) Value(fieldName string) (string, error) {
|
||||
if fv.err != nil {
|
||||
return "", fv.err
|
||||
}
|
||||
@@ -28,7 +28,7 @@ func (fv FieldValidator) Value(fieldName string) (string, error) {
|
||||
return val, nil
|
||||
}
|
||||
|
||||
func (fv FieldValidator) CheckEqual(fieldName, expectedValue string) error {
|
||||
func (fv *FieldValidator) CheckEqual(fieldName, expectedValue string) error {
|
||||
val, err := fv.Value(fieldName)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -40,7 +40,7 @@ func (fv FieldValidator) CheckEqual(fieldName, expectedValue string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (fv FieldValidator) Err() error {
|
||||
func (fv *FieldValidator) Err() error {
|
||||
return fv.err
|
||||
}
|
||||
|
||||
@@ -146,7 +146,7 @@ func (conn *LocalConnection) handshakeSendRecv(localConnID uint64, usingPassword
|
||||
fv.CheckEqual("Protocol", Protocol)
|
||||
fv.CheckEqual("ProtocolVersion", versionStr)
|
||||
fv.CheckEqual("PeerNameFlavour", PeerNameFlavour)
|
||||
return &fv, private, nil
|
||||
return fv, private, nil
|
||||
}
|
||||
|
||||
func (conn *LocalConnection) setRemote(toPeer *Peer) error {
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
wt "github.com/weaveworks/weave/testing"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestFieldValidator(t *testing.T) {
|
||||
testMap := map[string]string{"a": "a"}
|
||||
|
||||
fv := NewFieldValidator(testMap)
|
||||
val, err := fv.Value("a")
|
||||
wt.AssertNoErr(t, err)
|
||||
wt.AssertNoErr(t, fv.Err())
|
||||
wt.AssertEqualString(t, val, "a", "a")
|
||||
_, err = fv.Value("x")
|
||||
wt.AssertFalse(t, err == nil || fv.Err() == nil, "Expected error")
|
||||
_, err = fv.Value("a")
|
||||
wt.AssertFalse(t, err == nil || fv.Err() == nil, "Previous error should be retained")
|
||||
|
||||
fv = NewFieldValidator(testMap)
|
||||
err = fv.CheckEqual("a", "a")
|
||||
wt.AssertNoErr(t, err)
|
||||
wt.AssertNoErr(t, fv.Err())
|
||||
err = fv.CheckEqual("a", "b")
|
||||
wt.AssertFalse(t, err == nil || fv.Err() == nil, "Expected error")
|
||||
err = fv.CheckEqual("a", "a")
|
||||
wt.AssertFalse(t, err == nil || fv.Err() == nil, "Previous error should be retained")
|
||||
}
|
||||
Reference in new issue
Block a user