blob: 681ca340df46b06564141dee5e46a68d2a6c16b8 [file] [log] [blame]
// Copyright 2022 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package cveschema5
import (
"reflect"
"testing"
)
var basicExampleRecord = &CVERecord{
DataType: "CVE_RECORD",
DataVersion: "5.0",
Metadata: Metadata{
ID: "CVE-2022-0000",
OrgID: "b3476cb9-2e3d-41a6-98d0-0f47421a65b6",
State: StatePublished,
},
Containers: Containers{
CNAContainer: CNAPublishedContainer{
ProviderMetadata: ProviderMetadata{
OrgID: "b3476cb9-2e3d-41a6-98d0-0f47421a65b6",
},
ProblemTypes: []ProblemType{
{
Descriptions: []ProblemTypeDescription{
{
Lang: "en",
Description: "CWE-78 OS Command Injection",
},
},
},
},
Descriptions: []Description{
{
Lang: "en",
Value: "OS Command Injection vulnerability parseFilename function of example.php in the Web Management Interface of Example.org Example Enterprise on Windows, MacOS and XT-4500 allows remote unauthenticated attackers to escalate privileges.\n\nThis issue affects:\n * 1.0 versions before 1.0.6\n * 2.1 versions from 2.16 until 2.1.9.",
},
},
Affected: []Affected{
{
Vendor: "Example.org",
Product: "Example Enterprise",
Versions: []VersionRange{
{
Introduced: "1.0.0",
Fixed: "1.0.6",
Status: StatusAffected,
VersionType: "semver",
},
},
DefaultStatus: StatusUnaffected,
},
},
References: []Reference{
{
URL: "https://example.org/ESA-22-11-CVE-2022-0000",
},
},
},
},
}
func TestRead(t *testing.T) {
f := "testdata/basic_example.json"
record, err := Read("testdata/basic-example.json")
if err != nil {
t.Fatalf("Read(%s) failed unexpectedly; err=%v", f, err)
}
if got, want := record, basicExampleRecord; !reflect.DeepEqual(got, want) {
t.Errorf("Read(%s) = %v\n want %v", f, got, want)
}
}
func TestFindCVE(t *testing.T) {
s := "something/CVE-1999-0004.json"
got, want := FindCVE(s), "CVE-1999-0004"
if got != want {
t.Errorf("FindCVE(%s) = %s, want %s", s, got, want)
}
}