1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
// 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.
//go:build go1.18
// +build go1.18
package vulntest
import (
"context"
"encoding/json"
"testing"
)
func TestNewDatabase(t *testing.T) {
ctx := context.Background()
in := []byte(`
-- GO-2020-0001.yaml --
modules:
- module: github.com/gin-gonic/gin
versions:
- fixed: 1.6.0
packages:
- package: github.com/gin-gonic/gin
symbols:
- defaultLogFormatter
description: |
Something.
published: 2021-04-14T20:04:52Z
references:
- fix: https://github.com/gin-gonic/gin/pull/2237
`)
db, err := NewDatabase(ctx, in)
if err != nil {
t.Fatal(err)
}
defer db.Clean()
cli, err := NewClient(db)
if err != nil {
t.Fatal(err)
}
got, err := cli.GetByID(ctx, "GO-2020-0001")
if err != nil {
t.Fatal(err)
}
if got.ID != "GO-2020-0001" {
m, _ := json.Marshal(got)
t.Errorf("got %s\nwant GO-2020-0001 entry", m)
}
gotAll, err := cli.GetByModule(ctx, "github.com/gin-gonic/gin")
if err != nil {
t.Fatal(err)
}
if len(gotAll) != 1 || gotAll[0].ID != "GO-2020-0001" {
m, _ := json.Marshal(got)
t.Errorf("got %s\nwant GO-2020-0001 entry", m)
}
}
|