refactored test to be more flexible
This commit is contained in:
parent
4857bfb781
commit
d83cfa5ea1
1 changed files with 48 additions and 13 deletions
|
@ -1,24 +1,59 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"regexp"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Test_Dot(t *testing.T) {
|
type RunTest struct {
|
||||||
json := `[{ "VirtualSize": 662553464, "Size": 662553464, "RepoTags": [ "<none>:<none>" ], "ParentId": "", "Id": "4c1208b690c68af3476b437e7bc2bcc460f062bda2094d2d8f21a7e70368d358", "Created": 1386114144 }]`
|
json string
|
||||||
|
regexps []string
|
||||||
expectedResult := `digraph docker {
|
|
||||||
base -> "4c1208b690c6" [style=invis]
|
|
||||||
base [style=invisible]
|
|
||||||
}
|
}
|
||||||
`
|
|
||||||
|
|
||||||
im, _ := parseJSON([]byte(json))
|
func Test_Dot(t *testing.T) {
|
||||||
|
allMatch := []string{
|
||||||
|
"(?s)digraph docker {.*}",
|
||||||
|
`(?m) base \[style=invisible\]`,
|
||||||
|
}
|
||||||
|
allRegex := compileRegexps(t, allMatch)
|
||||||
|
|
||||||
|
dotTests := []RunTest{
|
||||||
|
RunTest{
|
||||||
|
json: `[{ "VirtualSize": 662553464, "Size": 662553464, "RepoTags": [ "<none>:<none>" ], "ParentId": "", "Id": "4c1208b690c68af3476b437e7bc2bcc460f062bda2094d2d8f21a7e70368d358", "Created": 1386114144 }]`,
|
||||||
|
regexps: []string{
|
||||||
|
`base -> "4c1208b690c6"`,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, dotTest := range dotTests {
|
||||||
|
im, _ := parseJSON([]byte(dotTest.json))
|
||||||
result := jsonToDot(im)
|
result := jsonToDot(im)
|
||||||
|
|
||||||
if result == expectedResult {
|
for _, regexp := range allRegex {
|
||||||
t.Log("Pass")
|
if !regexp.MatchString(result) {
|
||||||
} else {
|
t.Fatalf("images dot content '%s' did not match regexp '%s'", result, regexp)
|
||||||
t.Errorf("|%s| and |%s| are different.", result, expectedResult)
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, regexp := range compileRegexps(t, dotTest.regexps) {
|
||||||
|
if !regexp.MatchString(result) {
|
||||||
|
t.Fatalf("images dot content '%s' did not match regexp '%s'", result, regexp)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func compileRegexps(t *testing.T, regexpStrings []string) []*regexp.Regexp {
|
||||||
|
|
||||||
|
compiledRegexps := []*regexp.Regexp{}
|
||||||
|
for _, regexpString := range regexpStrings {
|
||||||
|
regexp, err := regexp.Compile(regexpString)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Error in regex string '%s': %s", regexpString, err)
|
||||||
|
}
|
||||||
|
compiledRegexps = append(compiledRegexps, regexp)
|
||||||
|
}
|
||||||
|
|
||||||
|
return compiledRegexps
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue