xref: /aosp_15_r20/external/spdx-tools/tvsaver/saver2v1/save_annotation_test.go (revision ba677afa8f67bb56cbc794f4d0e378e0da058e16)
1*ba677afaSXin Li// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
2*ba677afaSXin Li
3*ba677afaSXin Lipackage saver2v1
4*ba677afaSXin Li
5*ba677afaSXin Liimport (
6*ba677afaSXin Li	"bytes"
7*ba677afaSXin Li	"testing"
8*ba677afaSXin Li
9*ba677afaSXin Li	"github.com/spdx/tools-golang/spdx/common"
10*ba677afaSXin Li	"github.com/spdx/tools-golang/spdx/v2_1"
11*ba677afaSXin Li)
12*ba677afaSXin Li
13*ba677afaSXin Li// ===== Annotation section Saver tests =====
14*ba677afaSXin Lifunc TestSaver2_1AnnotationSavesTextForPerson(t *testing.T) {
15*ba677afaSXin Li	ann := &v2_1.Annotation{
16*ba677afaSXin Li		Annotator:                common.Annotator{AnnotatorType: "Person", Annotator: "John Doe"},
17*ba677afaSXin Li		AnnotationDate:           "2018-10-10T17:52:00Z",
18*ba677afaSXin Li		AnnotationType:           "REVIEW",
19*ba677afaSXin Li		AnnotationSPDXIdentifier: common.MakeDocElementID("", "DOCUMENT"),
20*ba677afaSXin Li		AnnotationComment:        "This is an annotation about the SPDX document",
21*ba677afaSXin Li	}
22*ba677afaSXin Li
23*ba677afaSXin Li	// what we want to get, as a buffer of bytes
24*ba677afaSXin Li	// no trailing blank newline
25*ba677afaSXin Li	want := bytes.NewBufferString(`Annotator: Person: John Doe
26*ba677afaSXin LiAnnotationDate: 2018-10-10T17:52:00Z
27*ba677afaSXin LiAnnotationType: REVIEW
28*ba677afaSXin LiSPDXREF: SPDXRef-DOCUMENT
29*ba677afaSXin LiAnnotationComment: This is an annotation about the SPDX document
30*ba677afaSXin Li`)
31*ba677afaSXin Li
32*ba677afaSXin Li	// render as buffer of bytes
33*ba677afaSXin Li	var got bytes.Buffer
34*ba677afaSXin Li	err := renderAnnotation2_1(ann, &got)
35*ba677afaSXin Li	if err != nil {
36*ba677afaSXin Li		t.Errorf("Expected nil error, got %v", err)
37*ba677afaSXin Li	}
38*ba677afaSXin Li
39*ba677afaSXin Li	// check that they match
40*ba677afaSXin Li	c := bytes.Compare(want.Bytes(), got.Bytes())
41*ba677afaSXin Li	if c != 0 {
42*ba677afaSXin Li		t.Errorf("Expected %v, got %v", want.String(), got.String())
43*ba677afaSXin Li	}
44*ba677afaSXin Li}
45*ba677afaSXin Li
46*ba677afaSXin Lifunc TestSaver2_1AnnotationSavesTextForOrganization(t *testing.T) {
47*ba677afaSXin Li	ann := &v2_1.Annotation{
48*ba677afaSXin Li		Annotator:                common.Annotator{AnnotatorType: "Organization", Annotator: "John Doe, Inc."},
49*ba677afaSXin Li		AnnotationDate:           "2018-10-10T17:52:00Z",
50*ba677afaSXin Li		AnnotationType:           "REVIEW",
51*ba677afaSXin Li		AnnotationSPDXIdentifier: common.MakeDocElementID("", "DOCUMENT"),
52*ba677afaSXin Li		AnnotationComment:        "This is an annotation about the SPDX document",
53*ba677afaSXin Li	}
54*ba677afaSXin Li
55*ba677afaSXin Li	// what we want to get, as a buffer of bytes
56*ba677afaSXin Li	// no trailing blank newline
57*ba677afaSXin Li	want := bytes.NewBufferString(`Annotator: Organization: John Doe, Inc.
58*ba677afaSXin LiAnnotationDate: 2018-10-10T17:52:00Z
59*ba677afaSXin LiAnnotationType: REVIEW
60*ba677afaSXin LiSPDXREF: SPDXRef-DOCUMENT
61*ba677afaSXin LiAnnotationComment: This is an annotation about the SPDX document
62*ba677afaSXin Li`)
63*ba677afaSXin Li
64*ba677afaSXin Li	// render as buffer of bytes
65*ba677afaSXin Li	var got bytes.Buffer
66*ba677afaSXin Li	err := renderAnnotation2_1(ann, &got)
67*ba677afaSXin Li	if err != nil {
68*ba677afaSXin Li		t.Errorf("Expected nil error, got %v", err)
69*ba677afaSXin Li	}
70*ba677afaSXin Li
71*ba677afaSXin Li	// check that they match
72*ba677afaSXin Li	c := bytes.Compare(want.Bytes(), got.Bytes())
73*ba677afaSXin Li	if c != 0 {
74*ba677afaSXin Li		t.Errorf("Expected %v, got %v", want.String(), got.String())
75*ba677afaSXin Li	}
76*ba677afaSXin Li}
77*ba677afaSXin Li
78*ba677afaSXin Lifunc TestSaver2_1AnnotationSavesTextForTool(t *testing.T) {
79*ba677afaSXin Li	ann := &v2_1.Annotation{
80*ba677afaSXin Li		Annotator:                common.Annotator{AnnotatorType: "Tool", Annotator: "magictool-1.1"},
81*ba677afaSXin Li		AnnotationDate:           "2018-10-10T17:52:00Z",
82*ba677afaSXin Li		AnnotationType:           "REVIEW",
83*ba677afaSXin Li		AnnotationSPDXIdentifier: common.MakeDocElementID("", "DOCUMENT"),
84*ba677afaSXin Li		AnnotationComment:        "This is an annotation about the SPDX document",
85*ba677afaSXin Li	}
86*ba677afaSXin Li
87*ba677afaSXin Li	// what we want to get, as a buffer of bytes
88*ba677afaSXin Li	// no trailing blank newline
89*ba677afaSXin Li	want := bytes.NewBufferString(`Annotator: Tool: magictool-1.1
90*ba677afaSXin LiAnnotationDate: 2018-10-10T17:52:00Z
91*ba677afaSXin LiAnnotationType: REVIEW
92*ba677afaSXin LiSPDXREF: SPDXRef-DOCUMENT
93*ba677afaSXin LiAnnotationComment: This is an annotation about the SPDX document
94*ba677afaSXin Li`)
95*ba677afaSXin Li
96*ba677afaSXin Li	// render as buffer of bytes
97*ba677afaSXin Li	var got bytes.Buffer
98*ba677afaSXin Li	err := renderAnnotation2_1(ann, &got)
99*ba677afaSXin Li	if err != nil {
100*ba677afaSXin Li		t.Errorf("Expected nil error, got %v", err)
101*ba677afaSXin Li	}
102*ba677afaSXin Li
103*ba677afaSXin Li	// check that they match
104*ba677afaSXin Li	c := bytes.Compare(want.Bytes(), got.Bytes())
105*ba677afaSXin Li	if c != 0 {
106*ba677afaSXin Li		t.Errorf("Expected %v, got %v", want.String(), got.String())
107*ba677afaSXin Li	}
108*ba677afaSXin Li}
109*ba677afaSXin Li
110*ba677afaSXin Li// note that the annotation has no optional or multiple fields
111