From 9c17b97cd0f83be3fff9fa4e87fd1d29052ea616 Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Fri, 4 Feb 2022 00:35:31 -0500 Subject: rename to github.com/pablotron/cvez, remove internal libs --- cpematch/cpematch_test.go | 100 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 cpematch/cpematch_test.go (limited to 'cpematch/cpematch_test.go') diff --git a/cpematch/cpematch_test.go b/cpematch/cpematch_test.go new file mode 100644 index 0000000..7d69410 --- /dev/null +++ b/cpematch/cpematch_test.go @@ -0,0 +1,100 @@ +package cpematch + +import ( + "compress/gzip" + "encoding/json" + "os" + "reflect" + "testing" +) + +func TestMatchesUnmarshal(t *testing.T) { + // expected data + exp := Matches { + Matches: []Match { + Match { + Cpe23Uri: "cpe:2.3:a:101_project:101:*:*:*:*:*:node.js:*:*", + VersionStartIncluding: "1.0.0", + VersionEndIncluding: "1.6.3", + Names: []Name { + Name { + Cpe23Uri: "cpe:2.3:a:101_project:101:1.0.0:*:*:*:*:node.js:*:*", + }, + + Name { + Cpe23Uri: "cpe:2.3:a:101_project:101:1.1.0:*:*:*:*:node.js:*:*", + }, + + Name { + Cpe23Uri: "cpe:2.3:a:101_project:101:1.1.1:*:*:*:*:node.js:*:*", + }, + }, + }, + + Match { + Cpe23Uri: "cpe:2.3:a:1password:1password:*:*:*:*:*:macos:*:*", + VersionStartIncluding: "7.7.0", + VersionEndExcluding: "7.8.7", + Names: []Name { + Name { + Cpe23Uri: "cpe:2.3:a:1password:1password:7.7.0:*:*:*:*:macos:*:*", + }, + }, + }, + + Match { + Cpe23Uri: "cpe:2.3:a:zimbra:collaboration:*:*:*:*:*:*:*:*", + VersionStartExcluding: "8.8.0", + VersionEndExcluding: "8.8.15", + Names: []Name { + Name { + Cpe23Uri: "cpe:2.3:a:zimbra:collaboration:8.8.6:*:*:*:*:*:*:*", + }, + + Name { + Cpe23Uri: "cpe:2.3:a:zimbra:collaboration:8.8.7:*:*:*:*:*:*:*", + }, + + Name { + Cpe23Uri: "cpe:2.3:a:zimbra:collaboration:8.8.8:-:*:*:*:*:*:*", + }, + + Name { + Cpe23Uri: "cpe:2.3:a:zimbra:collaboration:8.8.8:p1:*:*:*:*:*:*", + }, + }, + }, + }, + } + + // open test data + f, err := os.Open("testdata/test-0.json.gz") + if err != nil { + t.Error(err) + return + } + defer f.Close() + + // create gzip reader + gz, err := gzip.NewReader(f) + if err != nil { + t.Error(err) + return + } + defer gz.Close() + + // create json decoder + d := json.NewDecoder(gz) + var got Matches + + // decode match data, check for error + if err := d.Decode(&got); err != nil { + t.Error(err) + return + } + + // check for match + if !reflect.DeepEqual(got, exp) { + t.Errorf("got \"%v\", exp \"%v\"", got, exp) + } +} -- cgit v1.2.3