-
-
Notifications
You must be signed in to change notification settings - Fork 77
/
Copy pathextensions_test.go
102 lines (73 loc) · 2.78 KB
/
extensions_test.go
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// Copyright 2022 Princess B33f Heavy Industries / Dave Shanley
// SPDX-License-Identifier: MIT
package model
import (
"github.com/pb33f/libopenapi/datamodel/low"
"github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3"
"testing"
)
func TestCompareExtensions(t *testing.T) {
left := `x-test: 1`
right := `x-test: 2`
var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode)
lExt := low.ExtractExtensions(lNode.Content[0])
rExt := low.ExtractExtensions(rNode.Content[0])
extChanges := CompareExtensions(lExt, rExt)
assert.Equal(t, extChanges.TotalChanges(), 1)
assert.Len(t, extChanges.GetAllChanges(), 1)
assert.Equal(t, Modified, extChanges.Changes[0].ChangeType)
assert.Equal(t, "1", extChanges.Changes[0].Original)
assert.Equal(t, "2", extChanges.Changes[0].New)
assert.False(t, extChanges.Changes[0].Context.HasChanged())
assert.Equal(t, 0, extChanges.TotalBreakingChanges())
}
func TestCompareExtensions_Removed(t *testing.T) {
left := `pizza: pie
x-test: 1`
right := `pizza: pie`
var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode)
lExt := low.ExtractExtensions(lNode.Content[0])
rExt := low.ExtractExtensions(rNode.Content[0])
extChanges := CompareExtensions(lExt, rExt)
assert.Len(t, extChanges.Changes, 1)
assert.Len(t, extChanges.GetAllChanges(), 1)
assert.Equal(t, ObjectRemoved, extChanges.Changes[0].ChangeType)
assert.Equal(t, 2, *extChanges.Changes[0].Context.OriginalLine)
assert.Nil(t, extChanges.Changes[0].Context.NewLine)
assert.Equal(t, "1", extChanges.Changes[0].Original)
assert.True(t, extChanges.Changes[0].Context.HasChanged())
}
func TestCompareExtensions_Added(t *testing.T) {
left := `pizza: pie`
right := `pizza: pie
x-test: 1`
var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode)
lExt := low.ExtractExtensions(lNode.Content[0])
rExt := low.ExtractExtensions(rNode.Content[0])
extChanges := CompareExtensions(lExt, rExt)
assert.Len(t, extChanges.Changes, 1)
assert.Len(t, extChanges.GetAllChanges(), 1)
assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType)
assert.Nil(t, extChanges.Changes[0].Context.OriginalLine)
assert.Equal(t, 2, *extChanges.Changes[0].Context.NewLine)
assert.Equal(t, "1", extChanges.Changes[0].New)
assert.True(t, extChanges.Changes[0].Context.HasChanged())
}
func TestCompareExtensions_Identical(t *testing.T) {
left := `x-test: 1`
right := `x-test: 1`
var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode)
lExt := low.ExtractExtensions(lNode.Content[0])
rExt := low.ExtractExtensions(rNode.Content[0])
extChanges := CompareExtensions(lExt, rExt)
assert.Nil(t, extChanges)
}