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// ===== Relationship section Saver tests ===== 14*ba677afaSXin Lifunc TestSaver2_1RelationshipSavesText(t *testing.T) { 15*ba677afaSXin Li rln := &v2_1.Relationship{ 16*ba677afaSXin Li RefA: common.MakeDocElementID("", "DOCUMENT"), 17*ba677afaSXin Li RefB: common.MakeDocElementID("", "2"), 18*ba677afaSXin Li Relationship: "DESCRIBES", 19*ba677afaSXin Li RelationshipComment: "this is a comment", 20*ba677afaSXin Li } 21*ba677afaSXin Li 22*ba677afaSXin Li // what we want to get, as a buffer of bytes 23*ba677afaSXin Li // no trailing blank newline 24*ba677afaSXin Li want := bytes.NewBufferString(`Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2 25*ba677afaSXin LiRelationshipComment: this is a comment 26*ba677afaSXin Li`) 27*ba677afaSXin Li 28*ba677afaSXin Li // render as buffer of bytes 29*ba677afaSXin Li var got bytes.Buffer 30*ba677afaSXin Li err := renderRelationship2_1(rln, &got) 31*ba677afaSXin Li if err != nil { 32*ba677afaSXin Li t.Errorf("Expected nil error, got %v", err) 33*ba677afaSXin Li } 34*ba677afaSXin Li 35*ba677afaSXin Li // check that they match 36*ba677afaSXin Li c := bytes.Compare(want.Bytes(), got.Bytes()) 37*ba677afaSXin Li if c != 0 { 38*ba677afaSXin Li t.Errorf("Expected %v, got %v", want.String(), got.String()) 39*ba677afaSXin Li } 40*ba677afaSXin Li} 41*ba677afaSXin Li 42*ba677afaSXin Lifunc TestSaver2_1RelationshipOmitsOptionalFieldsIfEmpty(t *testing.T) { 43*ba677afaSXin Li rln := &v2_1.Relationship{ 44*ba677afaSXin Li RefA: common.MakeDocElementID("", "DOCUMENT"), 45*ba677afaSXin Li RefB: common.MakeDocElementID("", "2"), 46*ba677afaSXin Li Relationship: "DESCRIBES", 47*ba677afaSXin Li } 48*ba677afaSXin Li 49*ba677afaSXin Li // what we want to get, as a buffer of bytes 50*ba677afaSXin Li // no trailing blank newline 51*ba677afaSXin Li want := bytes.NewBufferString("Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2\n") 52*ba677afaSXin Li 53*ba677afaSXin Li // render as buffer of bytes 54*ba677afaSXin Li var got bytes.Buffer 55*ba677afaSXin Li err := renderRelationship2_1(rln, &got) 56*ba677afaSXin Li if err != nil { 57*ba677afaSXin Li t.Errorf("Expected nil error, got %v", err) 58*ba677afaSXin Li } 59*ba677afaSXin Li 60*ba677afaSXin Li // check that they match 61*ba677afaSXin Li c := bytes.Compare(want.Bytes(), got.Bytes()) 62*ba677afaSXin Li if c != 0 { 63*ba677afaSXin Li t.Errorf("Expected %v, got %v", want.String(), got.String()) 64*ba677afaSXin Li } 65*ba677afaSXin Li} 66*ba677afaSXin Li 67*ba677afaSXin Lifunc TestSaver2_1RelationshipWrapsCommentMultiLine(t *testing.T) { 68*ba677afaSXin Li rln := &v2_1.Relationship{ 69*ba677afaSXin Li RefA: common.MakeDocElementID("", "DOCUMENT"), 70*ba677afaSXin Li RefB: common.MakeDocElementID("", "2"), 71*ba677afaSXin Li Relationship: "DESCRIBES", 72*ba677afaSXin Li RelationshipComment: `this is a 73*ba677afaSXin Limulti-line comment`, 74*ba677afaSXin Li } 75*ba677afaSXin Li 76*ba677afaSXin Li // what we want to get, as a buffer of bytes 77*ba677afaSXin Li // no trailing blank newline 78*ba677afaSXin Li want := bytes.NewBufferString(`Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2 79*ba677afaSXin LiRelationshipComment: <text>this is a 80*ba677afaSXin Limulti-line comment</text> 81*ba677afaSXin Li`) 82*ba677afaSXin Li 83*ba677afaSXin Li // render as buffer of bytes 84*ba677afaSXin Li var got bytes.Buffer 85*ba677afaSXin Li err := renderRelationship2_1(rln, &got) 86*ba677afaSXin Li if err != nil { 87*ba677afaSXin Li t.Errorf("Expected nil error, got %v", err) 88*ba677afaSXin Li } 89*ba677afaSXin Li 90*ba677afaSXin Li // check that they match 91*ba677afaSXin Li c := bytes.Compare(want.Bytes(), got.Bytes()) 92*ba677afaSXin Li if c != 0 { 93*ba677afaSXin Li t.Errorf("Expected %v, got %v", want.String(), got.String()) 94*ba677afaSXin Li } 95*ba677afaSXin Li} 96