From 26ba76807853ec7d98b6190a72f4031f3cd80bed Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 4 Sep 2020 14:07:51 +0300 Subject: add more unit tests and deserializer/serializer to regex --- internal/regex/regex_test.go | 50 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 9 deletions(-) (limited to 'internal/regex/regex_test.go') diff --git a/internal/regex/regex_test.go b/internal/regex/regex_test.go index a90aee2..acdd518 100644 --- a/internal/regex/regex_test.go +++ b/internal/regex/regex_test.go @@ -1,16 +1,48 @@ package regex -import "testing" +import ( + "testing" +) func TestRegex(t *testing.T) { + input := "hello" - input := "hello" - r, err := New(".hello", Default) - if err != nil { - t.Errorf("error: unable to create regex: %v\n", err) - } + r := NewNoop() + if !r.MatchString(input) { + t.Errorf("expected to match string '%s' with noop regex '%v' but didn't\n", input, r) + } - if r.MatchString(input) { - t.Errorf("error: expected to match string '%s' with regex '%v' but didnt\n", input, r) - } + r, err := New(".hello", Default) + if err != nil { + t.Errorf("unable to create regex: %v\n", err) + } + if r.MatchString(input) { + t.Errorf("expected to match string '%s' with regex '%v' but didn't\n", input, r) + } + + r2, err := Deserialize(r.Serialize()) + if err != nil { + t.Errorf("unable to serialize deserialized regex: %v: %v\n", r.Serialize(), err) + } + if r.String() != r2.String() { + t.Errorf("regex should be the same after deserialize(serialize(..)), got '%s' but expected '%s'.\n", + r2.String(), r.String()) + } + + r, err = New(".hello", Negate) + if err != nil { + t.Errorf("unable to create regex: %v\n", err) + } + if !r.MatchString(input) { + t.Errorf("expected to not match string '%s' with regex '%v' but matched\n", input, r) + } + + r2, err = Deserialize(r.Serialize()) + if err != nil { + t.Errorf("unable to serialize deserialized regex: %v: %v\n", r.Serialize(), err) + } + if r.String() != r2.String() { + t.Errorf("regex should be the same after deserialize(serialize(..)), got '%s' but expected '%s'.\n", + r2.String(), r.String()) + } } -- cgit v1.2.3