Fixed up what-changed tests after model fix.

Now all tests are building the model correctly and everything is passing again, confidence up much higher now.
This commit is contained in:
Dave Shanley
2022-11-04 09:58:52 -04:00
parent a184c5e909
commit 55291d42c0
29 changed files with 2043 additions and 2037 deletions

View File

@@ -44,8 +44,8 @@ propertyName: freshCakes`
// create low level objects // create low level objects
var lDoc Discriminator var lDoc Discriminator
var rDoc Discriminator var rDoc Discriminator
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
assert.Equal(t, lDoc.Hash(), rDoc.Hash()) assert.Equal(t, lDoc.Hash(), rDoc.Hash())
} }

View File

@@ -149,8 +149,8 @@ x-burger: nice`
// create low level objects // create low level objects
var lDoc Example var lDoc Example
var rDoc Example var rDoc Example
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)

View File

@@ -71,8 +71,8 @@ description: the ranch`
// create low level objects // create low level objects
var lDoc ExternalDoc var lDoc ExternalDoc
var rDoc ExternalDoc var rDoc ExternalDoc
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)

View File

@@ -25,8 +25,8 @@ url: https://pb33f.io`
// create low level objects // create low level objects
var lDoc lowbase.Contact var lDoc lowbase.Contact
var rDoc lowbase.Contact var rDoc lowbase.Contact
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -51,8 +51,8 @@ url: https://pb33f.io`
// create low level objects // create low level objects
var lDoc lowbase.Contact var lDoc lowbase.Contact
var rDoc lowbase.Contact var rDoc lowbase.Contact
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -77,8 +77,8 @@ name: buckaroo`
// create low level objects // create low level objects
var lDoc lowbase.Contact var lDoc lowbase.Contact
var rDoc lowbase.Contact var rDoc lowbase.Contact
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -103,8 +103,8 @@ name: buckaroo`
// create low level objects // create low level objects
var lDoc lowbase.Contact var lDoc lowbase.Contact
var rDoc lowbase.Contact var rDoc lowbase.Contact
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -128,8 +128,8 @@ email: buckaroo@pb33f.io`
// create low level objects // create low level objects
var lDoc lowbase.Contact var lDoc lowbase.Contact
var rDoc lowbase.Contact var rDoc lowbase.Contact
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -154,8 +154,8 @@ email: buckaroo@pb33f.io`
// create low level objects // create low level objects
var lDoc lowbase.Contact var lDoc lowbase.Contact
var rDoc lowbase.Contact var rDoc lowbase.Contact
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -180,8 +180,8 @@ email: dave@quobix.com`
// create low level objects // create low level objects
var lDoc lowbase.Contact var lDoc lowbase.Contact
var rDoc lowbase.Contact var rDoc lowbase.Contact
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -207,8 +207,8 @@ email: dave@quobix.com`
// create low level objects // create low level objects
var lDoc lowbase.Contact var lDoc lowbase.Contact
var rDoc lowbase.Contact var rDoc lowbase.Contact
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -232,8 +232,8 @@ url: https://pb33f.io`
// create low level objects // create low level objects
var lDoc lowbase.Contact var lDoc lowbase.Contact
var rDoc lowbase.Contact var rDoc lowbase.Contact
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)

View File

@@ -24,8 +24,8 @@ func TestCompareDiscriminator_PropertyNameChanged(t *testing.T) {
// create low level objects // create low level objects
var lDoc base.Discriminator var lDoc base.Discriminator
var rDoc base.Discriminator var rDoc base.Discriminator
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareDiscriminator(&lDoc, &rDoc) extChanges := CompareDiscriminator(&lDoc, &rDoc)
@@ -36,9 +36,12 @@ func TestCompareDiscriminator_PropertyNameChanged(t *testing.T) {
func TestCompareDiscriminator_PropertyNameRemoved(t *testing.T) { func TestCompareDiscriminator_PropertyNameRemoved(t *testing.T) {
left := `propertyName: chicken` left := `mapping:
cake: burger
propertyName: chicken`
right := `` right := `mapping:
cake: burger`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
@@ -47,8 +50,8 @@ func TestCompareDiscriminator_PropertyNameRemoved(t *testing.T) {
// create low level objects // create low level objects
var lDoc base.Discriminator var lDoc base.Discriminator
var rDoc base.Discriminator var rDoc base.Discriminator
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareDiscriminator(&lDoc, &rDoc) extChanges := CompareDiscriminator(&lDoc, &rDoc)
@@ -58,9 +61,12 @@ func TestCompareDiscriminator_PropertyNameRemoved(t *testing.T) {
func TestCompareDiscriminator_PropertyNameAdded(t *testing.T) { func TestCompareDiscriminator_PropertyNameAdded(t *testing.T) {
left := `` left := `mapping:
cake: burger
propertyName: chicken`
right := `propertyName: chicken` right := `mapping:
cake: burger`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
@@ -69,11 +75,11 @@ func TestCompareDiscriminator_PropertyNameAdded(t *testing.T) {
// create low level objects // create low level objects
var lDoc base.Discriminator var lDoc base.Discriminator
var rDoc base.Discriminator var rDoc base.Discriminator
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareDiscriminator(&lDoc, &rDoc) extChanges := CompareDiscriminator(&rDoc, &lDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, PropertyAdded, extChanges.Changes[0].ChangeType) assert.Equal(t, PropertyAdded, extChanges.Changes[0].ChangeType)
} }
@@ -94,8 +100,8 @@ mapping:
// create low level objects // create low level objects
var lDoc base.Discriminator var lDoc base.Discriminator
var rDoc base.Discriminator var rDoc base.Discriminator
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareDiscriminator(&lDoc, &rDoc) extChanges := CompareDiscriminator(&lDoc, &rDoc)
@@ -130,8 +136,8 @@ mapping:
// create low level objects // create low level objects
var lDoc base.Discriminator var lDoc base.Discriminator
var rDoc base.Discriminator var rDoc base.Discriminator
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareDiscriminator(&lDoc, &rDoc) extChanges := CompareDiscriminator(&lDoc, &rDoc)
@@ -159,8 +165,8 @@ mapping:
// create low level objects // create low level objects
var lDoc base.Discriminator var lDoc base.Discriminator
var rDoc base.Discriminator var rDoc base.Discriminator
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareDiscriminator(&lDoc, &rDoc) extChanges := CompareDiscriminator(&lDoc, &rDoc)
@@ -190,8 +196,8 @@ mapping:
// create low level objects // create low level objects
var lDoc base.Discriminator var lDoc base.Discriminator
var rDoc base.Discriminator var rDoc base.Discriminator
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareDiscriminator(&lDoc, &rDoc) extChanges := CompareDiscriminator(&lDoc, &rDoc)
@@ -226,8 +232,8 @@ mapping:
// create low level objects // create low level objects
var lDoc base.Discriminator var lDoc base.Discriminator
var rDoc base.Discriminator var rDoc base.Discriminator
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareDiscriminator(&lDoc, &rDoc) extChanges := CompareDiscriminator(&lDoc, &rDoc)
@@ -255,8 +261,8 @@ func TestCompareDiscriminator_Identical(t *testing.T) {
// create low level objects // create low level objects
var lDoc base.Discriminator var lDoc base.Discriminator
var rDoc base.Discriminator var rDoc base.Discriminator
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareDiscriminator(&lDoc, &rDoc) extChanges := CompareDiscriminator(&lDoc, &rDoc)

View File

@@ -4,16 +4,16 @@
package model package model
import ( import (
"github.com/pb33f/libopenapi/datamodel/low" "github.com/pb33f/libopenapi/datamodel/low"
v3 "github.com/pb33f/libopenapi/datamodel/low/v3" v3 "github.com/pb33f/libopenapi/datamodel/low/v3"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"testing" "testing"
) )
func TestCompareEncoding(t *testing.T) { func TestCompareEncoding(t *testing.T) {
left := `contentType: application/json left := `contentType: application/json
headers: headers:
aHeader: aHeader:
description: a header description: a header
@@ -21,7 +21,7 @@ style: date
explode: true explode: true
allowReserved: true` allowReserved: true`
right := `contentType: application/json right := `contentType: application/json
headers: headers:
aHeader: aHeader:
description: a header description: a header
@@ -29,26 +29,26 @@ style: date
explode: true explode: true
allowReserved: true` allowReserved: true`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Encoding var lDoc v3.Encoding
var rDoc v3.Encoding var rDoc v3.Encoding
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareEncoding(&lDoc, &rDoc) extChanges := CompareEncoding(&lDoc, &rDoc)
assert.Nil(t, extChanges) assert.Nil(t, extChanges)
} }
func TestCompareEncoding_Modified(t *testing.T) { func TestCompareEncoding_Modified(t *testing.T) {
left := `contentType: application/xml left := `contentType: application/xml
headers: headers:
aHeader: aHeader:
description: a header description description: a header description
@@ -56,7 +56,7 @@ style: date
explode: false explode: false
allowReserved: false` allowReserved: false`
right := `contentType: application/json right := `contentType: application/json
headers: headers:
aHeader: aHeader:
description: a header description: a header
@@ -64,33 +64,33 @@ style: date
explode: true explode: true
allowReserved: true` allowReserved: true`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Encoding var lDoc v3.Encoding
var rDoc v3.Encoding var rDoc v3.Encoding
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareEncoding(&lDoc, &rDoc) extChanges := CompareEncoding(&lDoc, &rDoc)
assert.NotNil(t, extChanges) assert.NotNil(t, extChanges)
assert.Equal(t, 4, extChanges.TotalChanges()) assert.Equal(t, 4, extChanges.TotalChanges())
assert.Equal(t, 2, extChanges.TotalBreakingChanges()) assert.Equal(t, 2, extChanges.TotalBreakingChanges())
} }
func TestCompareEncoding_Added(t *testing.T) { func TestCompareEncoding_Added(t *testing.T) {
left := `contentType: application/json left := `contentType: application/json
explode: true explode: true
allowReserved: true` allowReserved: true`
right := `contentType: application/json right := `contentType: application/json
headers: headers:
aHeader: aHeader:
description: a header description: a header
@@ -98,34 +98,34 @@ style: date
explode: true explode: true
allowReserved: true` allowReserved: true`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Encoding var lDoc v3.Encoding
var rDoc v3.Encoding var rDoc v3.Encoding
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareEncoding(&lDoc, &rDoc) extChanges := CompareEncoding(&lDoc, &rDoc)
assert.NotNil(t, extChanges) assert.NotNil(t, extChanges)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType) assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType)
assert.Equal(t, v3.HeadersLabel, extChanges.Changes[0].Property) assert.Equal(t, v3.HeadersLabel, extChanges.Changes[0].Property)
} }
func TestCompareEncoding_Removed(t *testing.T) { func TestCompareEncoding_Removed(t *testing.T) {
left := `contentType: application/json left := `contentType: application/json
explode: true explode: true
allowReserved: true` allowReserved: true`
right := `contentType: application/json right := `contentType: application/json
headers: headers:
aHeader: aHeader:
description: a header description: a header
@@ -133,22 +133,22 @@ style: date
explode: true explode: true
allowReserved: true` allowReserved: true`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Encoding var lDoc v3.Encoding
var rDoc v3.Encoding var rDoc v3.Encoding
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareEncoding(&rDoc, &lDoc) extChanges := CompareEncoding(&rDoc, &lDoc)
assert.NotNil(t, extChanges) assert.NotNil(t, extChanges)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
} }

View File

@@ -24,8 +24,8 @@ func TestCompareExamples_SummaryModified(t *testing.T) {
// create low level objects // create low level objects
var lDoc base.Example var lDoc base.Example
var rDoc base.Example var rDoc base.Example
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -52,8 +52,8 @@ description: cure all`
// create low level objects // create low level objects
var lDoc base.Example var lDoc base.Example
var rDoc base.Example var rDoc base.Example
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -78,8 +78,8 @@ x-herbs: cure all`
// create low level objects // create low level objects
var lDoc base.Example var lDoc base.Example
var rDoc base.Example var rDoc base.Example
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -103,8 +103,8 @@ func TestCompareExamples_Identical(t *testing.T) {
// create low level objects // create low level objects
var lDoc base.Example var lDoc base.Example
var rDoc base.Example var rDoc base.Example
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)

View File

@@ -4,105 +4,105 @@
package model package model
import ( import (
"github.com/pb33f/libopenapi/datamodel/low" "github.com/pb33f/libopenapi/datamodel/low"
"github.com/pb33f/libopenapi/datamodel/low/v2" "github.com/pb33f/libopenapi/datamodel/low/v2"
"github.com/pb33f/libopenapi/datamodel/low/v3" "github.com/pb33f/libopenapi/datamodel/low/v3"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"testing" "testing"
) )
func TestCompareExamplesV2(t *testing.T) { func TestCompareExamplesV2(t *testing.T) {
left := `summary: magic herbs` left := `summary: magic herbs`
right := `summary: cure all` right := `summary: cure all`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Examples var lDoc v2.Examples
var rDoc v2.Examples var rDoc v2.Examples
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareExamplesV2(&lDoc, &rDoc) extChanges := CompareExamplesV2(&lDoc, &rDoc)
assert.Equal(t, extChanges.TotalChanges(), 1) assert.Equal(t, extChanges.TotalChanges(), 1)
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
assert.Equal(t, Modified, extChanges.Changes[0].ChangeType) assert.Equal(t, Modified, extChanges.Changes[0].ChangeType)
assert.Equal(t, v3.SummaryLabel, extChanges.Changes[0].Property) assert.Equal(t, v3.SummaryLabel, extChanges.Changes[0].Property)
assert.Equal(t, "magic herbs", extChanges.Changes[0].Original) assert.Equal(t, "magic herbs", extChanges.Changes[0].Original)
assert.Equal(t, "cure all", extChanges.Changes[0].New) assert.Equal(t, "cure all", extChanges.Changes[0].New)
} }
func TestCompareExamplesV2_Add(t *testing.T) { func TestCompareExamplesV2_Add(t *testing.T) {
left := `summary: magic herbs` left := `summary: magic herbs`
right := `summary: magic herbs right := `summary: magic herbs
yummy: coffee` yummy: coffee`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Examples var lDoc v2.Examples
var rDoc v2.Examples var rDoc v2.Examples
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareExamplesV2(&lDoc, &rDoc) extChanges := CompareExamplesV2(&lDoc, &rDoc)
assert.Equal(t, extChanges.TotalChanges(), 1) assert.Equal(t, extChanges.TotalChanges(), 1)
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType) assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType)
} }
func TestCompareExamplesV2_Remove(t *testing.T) { func TestCompareExamplesV2_Remove(t *testing.T) {
left := `summary: magic herbs` left := `summary: magic herbs`
right := `summary: magic herbs right := `summary: magic herbs
yummy: coffee` yummy: coffee`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Examples var lDoc v2.Examples
var rDoc v2.Examples var rDoc v2.Examples
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareExamplesV2(&rDoc, &lDoc) extChanges := CompareExamplesV2(&rDoc, &lDoc)
assert.Equal(t, extChanges.TotalChanges(), 1) assert.Equal(t, extChanges.TotalChanges(), 1)
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
assert.Equal(t, ObjectRemoved, extChanges.Changes[0].ChangeType) assert.Equal(t, ObjectRemoved, extChanges.Changes[0].ChangeType)
} }
func TestCompareExamplesV2_Identical(t *testing.T) { func TestCompareExamplesV2_Identical(t *testing.T) {
left := `summary: magic herbs` left := `summary: magic herbs`
right := left right := left
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Examples var lDoc v2.Examples
var rDoc v2.Examples var rDoc v2.Examples
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareExamplesV2(&rDoc, &lDoc) extChanges := CompareExamplesV2(&rDoc, &lDoc)
assert.Nil(t, extChanges) assert.Nil(t, extChanges)
} }

View File

@@ -4,245 +4,245 @@
package model package model
import ( import (
"github.com/pb33f/libopenapi/datamodel/low" "github.com/pb33f/libopenapi/datamodel/low"
lowbase "github.com/pb33f/libopenapi/datamodel/low/base" lowbase "github.com/pb33f/libopenapi/datamodel/low/base"
lowv3 "github.com/pb33f/libopenapi/datamodel/low/v3" lowv3 "github.com/pb33f/libopenapi/datamodel/low/v3"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"testing" "testing"
) )
func TestCompareExternalDocs(t *testing.T) { func TestCompareExternalDocs(t *testing.T) {
left := `url: https://pb33f.io left := `url: https://pb33f.io
description: this is a test description: this is a test
x-testing: hello` x-testing: hello`
right := `url: https://quobix.com right := `url: https://quobix.com
description: this is another test description: this is another test
x-testing: hiya!` x-testing: hiya!`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc lowbase.ExternalDoc var lDoc lowbase.ExternalDoc
var rDoc lowbase.ExternalDoc var rDoc lowbase.ExternalDoc
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareExternalDocs(&lDoc, &rDoc) extChanges := CompareExternalDocs(&lDoc, &rDoc)
assert.Len(t, extChanges.ExtensionChanges.Changes, 1) assert.Len(t, extChanges.ExtensionChanges.Changes, 1)
assert.Len(t, extChanges.Changes, 2) assert.Len(t, extChanges.Changes, 2)
assert.Equal(t, 3, extChanges.TotalChanges()) assert.Equal(t, 3, extChanges.TotalChanges())
// validate property changes // validate property changes
urlChange := extChanges.Changes[0] urlChange := extChanges.Changes[0]
assert.Equal(t, Modified, urlChange.ChangeType) assert.Equal(t, Modified, urlChange.ChangeType)
assert.False(t, urlChange.Context.HasChanged()) assert.False(t, urlChange.Context.HasChanged())
assert.Equal(t, "https://pb33f.io", urlChange.Original) assert.Equal(t, "https://pb33f.io", urlChange.Original)
assert.Equal(t, "https://quobix.com", urlChange.New) assert.Equal(t, "https://quobix.com", urlChange.New)
assert.Equal(t, 1, urlChange.Context.OriginalLine) assert.Equal(t, 1, urlChange.Context.OriginalLine)
assert.Equal(t, lowv3.URLLabel, urlChange.Property) assert.Equal(t, lowv3.URLLabel, urlChange.Property)
descChange := extChanges.Changes[1] descChange := extChanges.Changes[1]
assert.Equal(t, Modified, descChange.ChangeType) assert.Equal(t, Modified, descChange.ChangeType)
assert.False(t, descChange.Context.HasChanged()) assert.False(t, descChange.Context.HasChanged())
assert.Equal(t, "this is another test", descChange.New) assert.Equal(t, "this is another test", descChange.New)
assert.Equal(t, "this is a test", descChange.Original) assert.Equal(t, "this is a test", descChange.Original)
assert.Equal(t, 2, descChange.Context.OriginalLine) assert.Equal(t, 2, descChange.Context.OriginalLine)
assert.Equal(t, 14, descChange.Context.OriginalColumn) assert.Equal(t, 14, descChange.Context.OriginalColumn)
// validate extensions // validate extensions
extChange := extChanges.ExtensionChanges.Changes[0] extChange := extChanges.ExtensionChanges.Changes[0]
assert.Equal(t, Modified, extChange.ChangeType) assert.Equal(t, Modified, extChange.ChangeType)
assert.False(t, extChange.Context.HasChanged()) assert.False(t, extChange.Context.HasChanged())
assert.Equal(t, "hiya!", extChange.New) assert.Equal(t, "hiya!", extChange.New)
assert.Equal(t, "hello", extChange.Original) assert.Equal(t, "hello", extChange.Original)
assert.Equal(t, 3, extChange.Context.OriginalLine) assert.Equal(t, 3, extChange.Context.OriginalLine)
assert.Equal(t, 12, extChange.Context.OriginalColumn) assert.Equal(t, 12, extChange.Context.OriginalColumn)
} }
func TestCompareExternalDocs_Moved(t *testing.T) { func TestCompareExternalDocs_Moved(t *testing.T) {
left := `url: https://pb33f.io left := `url: https://pb33f.io
description: this is a test description: this is a test
x-testing: hello` x-testing: hello`
right := `description: this is another test right := `description: this is another test
x-testing: hiya! x-testing: hiya!
url: https://quobix.com` url: https://quobix.com`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc lowbase.ExternalDoc var lDoc lowbase.ExternalDoc
var rDoc lowbase.ExternalDoc var rDoc lowbase.ExternalDoc
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareExternalDocs(&lDoc, &rDoc) extChanges := CompareExternalDocs(&lDoc, &rDoc)
assert.Len(t, extChanges.ExtensionChanges.Changes, 1) assert.Len(t, extChanges.ExtensionChanges.Changes, 1)
assert.Len(t, extChanges.Changes, 2) assert.Len(t, extChanges.Changes, 2)
// validate property changes // validate property changes
urlChange := extChanges.Changes[0] urlChange := extChanges.Changes[0]
assert.Equal(t, Modified, urlChange.ChangeType) assert.Equal(t, Modified, urlChange.ChangeType)
assert.True(t, urlChange.Context.HasChanged()) assert.True(t, urlChange.Context.HasChanged())
assert.Equal(t, "https://pb33f.io", urlChange.Original) assert.Equal(t, "https://pb33f.io", urlChange.Original)
assert.Equal(t, "https://quobix.com", urlChange.New) assert.Equal(t, "https://quobix.com", urlChange.New)
assert.Equal(t, lowv3.URLLabel, urlChange.Property) assert.Equal(t, lowv3.URLLabel, urlChange.Property)
descChange := extChanges.Changes[1] descChange := extChanges.Changes[1]
assert.Equal(t, Modified, descChange.ChangeType) assert.Equal(t, Modified, descChange.ChangeType)
assert.True(t, descChange.Context.HasChanged()) assert.True(t, descChange.Context.HasChanged())
assert.Equal(t, "this is another test", descChange.New) assert.Equal(t, "this is another test", descChange.New)
assert.Equal(t, "this is a test", descChange.Original) assert.Equal(t, "this is a test", descChange.Original)
// validate extensions // validate extensions
extChange := extChanges.ExtensionChanges.Changes[0] extChange := extChanges.ExtensionChanges.Changes[0]
assert.Equal(t, Modified, extChange.ChangeType) assert.Equal(t, Modified, extChange.ChangeType)
assert.True(t, extChange.Context.HasChanged()) assert.True(t, extChange.Context.HasChanged())
assert.Equal(t, "hiya!", extChange.New) assert.Equal(t, "hiya!", extChange.New)
assert.Equal(t, "hello", extChange.Original) assert.Equal(t, "hello", extChange.Original)
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
} }
func TestCompareExternalDocs_Identical(t *testing.T) { func TestCompareExternalDocs_Identical(t *testing.T) {
left := `url: https://pb33f.io left := `url: https://pb33f.io
description: this is a test description: this is a test
x-testing: hello` x-testing: hello`
right := `url: https://pb33f.io right := `url: https://pb33f.io
description: this is a test description: this is a test
x-testing: hello` x-testing: hello`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc lowbase.ExternalDoc var lDoc lowbase.ExternalDoc
var rDoc lowbase.ExternalDoc var rDoc lowbase.ExternalDoc
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareExternalDocs(&lDoc, &rDoc) extChanges := CompareExternalDocs(&lDoc, &rDoc)
assert.Nil(t, extChanges) assert.Nil(t, extChanges)
} }
func TestCompareExternalDocs_DescriptionAdded(t *testing.T) { func TestCompareExternalDocs_DescriptionAdded(t *testing.T) {
left := `url: https://pb33f.io left := `url: https://pb33f.io
x-testing: hello` x-testing: hello`
right := `url: https://pb33f.io right := `url: https://pb33f.io
description: this is a test description: this is a test
x-testing: hello` x-testing: hello`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc lowbase.ExternalDoc var lDoc lowbase.ExternalDoc
var rDoc lowbase.ExternalDoc var rDoc lowbase.ExternalDoc
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareExternalDocs(&lDoc, &rDoc) extChanges := CompareExternalDocs(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, PropertyAdded, extChanges.Changes[0].ChangeType) assert.Equal(t, PropertyAdded, extChanges.Changes[0].ChangeType)
} }
func TestCompareExternalDocs_URLAdded(t *testing.T) { func TestCompareExternalDocs_URLAdded(t *testing.T) {
left := `description: hi!` left := `description: hi!`
right := `description: hi! right := `description: hi!
url: https://pb33f.io` url: https://pb33f.io`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc lowbase.ExternalDoc var lDoc lowbase.ExternalDoc
var rDoc lowbase.ExternalDoc var rDoc lowbase.ExternalDoc
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareExternalDocs(&lDoc, &rDoc) extChanges := CompareExternalDocs(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, PropertyAdded, extChanges.Changes[0].ChangeType) assert.Equal(t, PropertyAdded, extChanges.Changes[0].ChangeType)
} }
func TestCompareExternalDocs_DescriptionRemoved(t *testing.T) { func TestCompareExternalDocs_DescriptionRemoved(t *testing.T) {
left := `url: https://pb33f.io left := `url: https://pb33f.io
description: something` description: something`
right := `url: https://pb33f.io` right := `url: https://pb33f.io`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc lowbase.ExternalDoc var lDoc lowbase.ExternalDoc
var rDoc lowbase.ExternalDoc var rDoc lowbase.ExternalDoc
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareExternalDocs(&lDoc, &rDoc) extChanges := CompareExternalDocs(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, PropertyRemoved, extChanges.Changes[0].ChangeType) assert.Equal(t, PropertyRemoved, extChanges.Changes[0].ChangeType)
} }
func TestCompareExternalDocs_URLRemoved(t *testing.T) { func TestCompareExternalDocs_URLRemoved(t *testing.T) {
left := `description: something left := `description: something
url: https://pb33f.io` url: https://pb33f.io`
right := `description: something` right := `description: something`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc lowbase.ExternalDoc var lDoc lowbase.ExternalDoc
var rDoc lowbase.ExternalDoc var rDoc lowbase.ExternalDoc
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare // compare
extChanges := CompareExternalDocs(&lDoc, &rDoc) extChanges := CompareExternalDocs(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, PropertyRemoved, extChanges.Changes[0].ChangeType) assert.Equal(t, PropertyRemoved, extChanges.Changes[0].ChangeType)
} }

View File

@@ -71,8 +71,8 @@ func TestCompareHeaders_v2_identical(t *testing.T) {
// create low level objects // create low level objects
var lDoc v2.Header var lDoc v2.Header
var rDoc v2.Header var rDoc v2.Header
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -114,8 +114,8 @@ x-beer: really yummy`
// create low level objects // create low level objects
var lDoc v2.Header var lDoc v2.Header
var rDoc v2.Header var rDoc v2.Header
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -157,8 +157,8 @@ x-beer: yummy`
// create low level objects // create low level objects
var lDoc v2.Header var lDoc v2.Header
var rDoc v2.Header var rDoc v2.Header
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -201,8 +201,8 @@ x-beer: yummy`
// create low level objects // create low level objects
var lDoc v2.Header var lDoc v2.Header
var rDoc v2.Header var rDoc v2.Header
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -227,8 +227,8 @@ func TestCompareHeaders_v2_ItemsModified(t *testing.T) {
// create low level objects // create low level objects
var lDoc v2.Header var lDoc v2.Header
var rDoc v2.Header var rDoc v2.Header
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -250,8 +250,8 @@ func TestCompareHeaders_v3_identical(t *testing.T) {
// create low level objects // create low level objects
var lDoc v3.Header var lDoc v3.Header
var rDoc v3.Header var rDoc v3.Header
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -292,8 +292,8 @@ x-beer: yummy`
// create low level objects // create low level objects
var lDoc v3.Header var lDoc v3.Header
var rDoc v3.Header var rDoc v3.Header
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)

View File

@@ -4,17 +4,17 @@
package model package model
import ( import (
"github.com/pb33f/libopenapi/datamodel/low" "github.com/pb33f/libopenapi/datamodel/low"
"github.com/pb33f/libopenapi/datamodel/low/base" "github.com/pb33f/libopenapi/datamodel/low/base"
"github.com/pb33f/libopenapi/datamodel/low/v3" "github.com/pb33f/libopenapi/datamodel/low/v3"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"testing" "testing"
) )
func TestCompareInfo_DescriptionAdded(t *testing.T) { func TestCompareInfo_DescriptionAdded(t *testing.T) {
left := `title: a nice spec left := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
@@ -23,7 +23,7 @@ contact:
license: license:
name: MIT` name: MIT`
right := `title: a nice spec right := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
description: this is a description description: this is a description
@@ -33,28 +33,28 @@ contact:
license: license:
name: MIT` name: MIT`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.Info var lDoc base.Info
var rDoc base.Info var rDoc base.Info
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareInfo(&lDoc, &rDoc) extChanges := CompareInfo(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, PropertyAdded, extChanges.Changes[0].ChangeType) assert.Equal(t, PropertyAdded, extChanges.Changes[0].ChangeType)
assert.Equal(t, v3.DescriptionLabel, extChanges.Changes[0].Property) assert.Equal(t, v3.DescriptionLabel, extChanges.Changes[0].Property)
} }
func TestCompareInfo_TitleRemoved(t *testing.T) { func TestCompareInfo_TitleRemoved(t *testing.T) {
left := `title: a nice spec left := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
description: this is a description description: this is a description
@@ -64,7 +64,7 @@ contact:
license: license:
name: MIT` name: MIT`
right := `termsOfService: https://pb33f.io/terms right := `termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
description: this is a description description: this is a description
contact: contact:
@@ -73,28 +73,28 @@ contact:
license: license:
name: MIT` name: MIT`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.Info var lDoc base.Info
var rDoc base.Info var rDoc base.Info
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareInfo(&lDoc, &rDoc) extChanges := CompareInfo(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, PropertyRemoved, extChanges.Changes[0].ChangeType) assert.Equal(t, PropertyRemoved, extChanges.Changes[0].ChangeType)
assert.Equal(t, v3.TitleLabel, extChanges.Changes[0].Property) assert.Equal(t, v3.TitleLabel, extChanges.Changes[0].Property)
} }
func TestCompareInfo_VersionModified(t *testing.T) { func TestCompareInfo_VersionModified(t *testing.T) {
left := `title: a nice spec left := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
@@ -103,7 +103,7 @@ contact:
license: license:
name: MIT` name: MIT`
right := `title: a nice spec right := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '99.99' version: '99.99'
contact: contact:
@@ -112,28 +112,28 @@ contact:
license: license:
name: MIT` name: MIT`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.Info var lDoc base.Info
var rDoc base.Info var rDoc base.Info
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareInfo(&lDoc, &rDoc) extChanges := CompareInfo(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, Modified, extChanges.Changes[0].ChangeType) assert.Equal(t, Modified, extChanges.Changes[0].ChangeType)
assert.Equal(t, v3.VersionLabel, extChanges.Changes[0].Property) assert.Equal(t, v3.VersionLabel, extChanges.Changes[0].Property)
} }
func TestCompareInfo_RemoveLicense(t *testing.T) { func TestCompareInfo_RemoveLicense(t *testing.T) {
left := `title: a nice spec left := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
@@ -142,42 +142,42 @@ contact:
license: license:
name: MIT` name: MIT`
right := `title: a nice spec right := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
name: buckaroo name: buckaroo
email: buckaroo@pb33f.io` email: buckaroo@pb33f.io`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.Info var lDoc base.Info
var rDoc base.Info var rDoc base.Info
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareInfo(&lDoc, &rDoc) extChanges := CompareInfo(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, ObjectRemoved, extChanges.Changes[0].ChangeType) assert.Equal(t, ObjectRemoved, extChanges.Changes[0].ChangeType)
assert.Equal(t, v3.LicenseLabel, extChanges.Changes[0].Property) assert.Equal(t, v3.LicenseLabel, extChanges.Changes[0].Property)
} }
func TestCompareInfo_AddLicense(t *testing.T) { func TestCompareInfo_AddLicense(t *testing.T) {
left := `title: a nice spec left := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
name: buckaroo name: buckaroo
email: buckaroo@pb33f.io` email: buckaroo@pb33f.io`
right := `title: a nice spec right := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
@@ -186,28 +186,28 @@ contact:
license: license:
name: MIT` name: MIT`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.Info var lDoc base.Info
var rDoc base.Info var rDoc base.Info
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareInfo(&lDoc, &rDoc) extChanges := CompareInfo(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType) assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType)
assert.Equal(t, v3.LicenseLabel, extChanges.Changes[0].Property) assert.Equal(t, v3.LicenseLabel, extChanges.Changes[0].Property)
} }
func TestCompareInfo_LicenseChanged(t *testing.T) { func TestCompareInfo_LicenseChanged(t *testing.T) {
left := `title: a nice spec left := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
@@ -216,7 +216,7 @@ contact:
license: license:
name: MIT` name: MIT`
right := `title: a nice spec right := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
@@ -225,34 +225,34 @@ contact:
license: license:
name: Apache` name: Apache`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.Info var lDoc base.Info
var rDoc base.Info var rDoc base.Info
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareInfo(&lDoc, &rDoc) extChanges := CompareInfo(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, Modified, extChanges.LicenseChanges.Changes[0].ChangeType) assert.Equal(t, Modified, extChanges.LicenseChanges.Changes[0].ChangeType)
assert.Equal(t, v3.NameLabel, extChanges.LicenseChanges.Changes[0].Property) assert.Equal(t, v3.NameLabel, extChanges.LicenseChanges.Changes[0].Property)
} }
func TestCompareInfo_AddContact(t *testing.T) { func TestCompareInfo_AddContact(t *testing.T) {
left := `title: a nice spec left := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
license: license:
name: MIT` name: MIT`
right := `title: a nice spec right := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
@@ -261,28 +261,28 @@ contact:
license: license:
name: MIT` name: MIT`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.Info var lDoc base.Info
var rDoc base.Info var rDoc base.Info
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareInfo(&lDoc, &rDoc) extChanges := CompareInfo(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType) assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType)
assert.Equal(t, v3.ContactLabel, extChanges.Changes[0].Property) assert.Equal(t, v3.ContactLabel, extChanges.Changes[0].Property)
} }
func TestCompareInfo_RemoveContact(t *testing.T) { func TestCompareInfo_RemoveContact(t *testing.T) {
left := `title: a nice spec left := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
@@ -291,34 +291,34 @@ contact:
license: license:
name: MIT` name: MIT`
right := `title: a nice spec right := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
license: license:
name: MIT` name: MIT`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.Info var lDoc base.Info
var rDoc base.Info var rDoc base.Info
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareInfo(&lDoc, &rDoc) extChanges := CompareInfo(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, ObjectRemoved, extChanges.Changes[0].ChangeType) assert.Equal(t, ObjectRemoved, extChanges.Changes[0].ChangeType)
assert.Equal(t, v3.ContactLabel, extChanges.Changes[0].Property) assert.Equal(t, v3.ContactLabel, extChanges.Changes[0].Property)
} }
func TestCompareInfo_ContactModified(t *testing.T) { func TestCompareInfo_ContactModified(t *testing.T) {
left := `title: a nice spec left := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
@@ -327,7 +327,7 @@ contact:
license: license:
name: MIT` name: MIT`
right := `title: a nice spec right := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
@@ -336,29 +336,29 @@ contact:
license: license:
name: MIT` name: MIT`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.Info var lDoc base.Info
var rDoc base.Info var rDoc base.Info
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareInfo(&lDoc, &rDoc) extChanges := CompareInfo(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, Modified, extChanges.ContactChanges.Changes[0].ChangeType) assert.Equal(t, Modified, extChanges.ContactChanges.Changes[0].ChangeType)
assert.Equal(t, v3.NameLabel, extChanges.ContactChanges.Changes[0].Property) assert.Equal(t, v3.NameLabel, extChanges.ContactChanges.Changes[0].Property)
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
} }
func TestCompareInfo_Equal(t *testing.T) { func TestCompareInfo_Equal(t *testing.T) {
left := `title: a nice spec left := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
@@ -367,7 +367,7 @@ contact:
license: license:
name: MIT` name: MIT`
right := `title: a nice spec right := `title: a nice spec
termsOfService: https://pb33f.io/terms termsOfService: https://pb33f.io/terms
version: '1.2.3' version: '1.2.3'
contact: contact:
@@ -376,17 +376,17 @@ contact:
license: license:
name: MIT` name: MIT`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.Info var lDoc base.Info
var rDoc base.Info var rDoc base.Info
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareInfo(&lDoc, &rDoc) extChanges := CompareInfo(&lDoc, &rDoc)

View File

@@ -4,132 +4,132 @@
package model package model
import ( import (
"github.com/pb33f/libopenapi/datamodel/low" "github.com/pb33f/libopenapi/datamodel/low"
"github.com/pb33f/libopenapi/datamodel/low/v2" "github.com/pb33f/libopenapi/datamodel/low/v2"
"github.com/pb33f/libopenapi/datamodel/low/v3" "github.com/pb33f/libopenapi/datamodel/low/v3"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"testing" "testing"
) )
func TestCompareItems(t *testing.T) { func TestCompareItems(t *testing.T) {
left := `type: string` left := `type: string`
right := `type: int` right := `type: int`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Items var lDoc v2.Items
var rDoc v2.Items var rDoc v2.Items
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
changes := CompareItems(&lDoc, &rDoc) changes := CompareItems(&lDoc, &rDoc)
assert.NotNil(t, changes) assert.NotNil(t, changes)
assert.Equal(t, 1, changes.TotalChanges()) assert.Equal(t, 1, changes.TotalChanges())
assert.Equal(t, 1, changes.TotalBreakingChanges()) assert.Equal(t, 1, changes.TotalBreakingChanges())
assert.Equal(t, v3.TypeLabel, changes.Changes[0].Property) assert.Equal(t, v3.TypeLabel, changes.Changes[0].Property)
} }
func TestCompareItems_RecursiveCheck(t *testing.T) { func TestCompareItems_RecursiveCheck(t *testing.T) {
left := `type: string left := `type: string
items: items:
type: string` type: string`
right := `type: int right := `type: int
items: items:
type: int` type: int`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Items var lDoc v2.Items
var rDoc v2.Items var rDoc v2.Items
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
changes := CompareItems(&lDoc, &rDoc) changes := CompareItems(&lDoc, &rDoc)
assert.NotNil(t, changes) assert.NotNil(t, changes)
assert.Equal(t, 2, changes.TotalChanges()) assert.Equal(t, 2, changes.TotalChanges())
assert.Equal(t, 2, changes.TotalBreakingChanges()) assert.Equal(t, 2, changes.TotalBreakingChanges())
assert.Equal(t, 1, changes.ItemsChanges.TotalChanges()) assert.Equal(t, 1, changes.ItemsChanges.TotalChanges())
assert.Equal(t, v3.TypeLabel, changes.Changes[0].Property) assert.Equal(t, v3.TypeLabel, changes.Changes[0].Property)
} }
func TestCompareItems_AddItems(t *testing.T) { func TestCompareItems_AddItems(t *testing.T) {
left := `type: int` left := `type: int`
right := `type: int right := `type: int
items: items:
type: int` type: int`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Items var lDoc v2.Items
var rDoc v2.Items var rDoc v2.Items
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
changes := CompareItems(&lDoc, &rDoc) changes := CompareItems(&lDoc, &rDoc)
assert.NotNil(t, changes) assert.NotNil(t, changes)
assert.Equal(t, 1, changes.TotalChanges()) assert.Equal(t, 1, changes.TotalChanges())
assert.Equal(t, 1, changes.TotalBreakingChanges()) assert.Equal(t, 1, changes.TotalBreakingChanges())
assert.Equal(t, v3.ItemsLabel, changes.Changes[0].Property) assert.Equal(t, v3.ItemsLabel, changes.Changes[0].Property)
assert.Equal(t, PropertyAdded, changes.Changes[0].ChangeType) assert.Equal(t, PropertyAdded, changes.Changes[0].ChangeType)
} }
func TestCompareItems_RemoveItems(t *testing.T) { func TestCompareItems_RemoveItems(t *testing.T) {
left := `type: int` left := `type: int`
right := `type: int right := `type: int
items: items:
type: int` type: int`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Items var lDoc v2.Items
var rDoc v2.Items var rDoc v2.Items
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
changes := CompareItems(&rDoc, &lDoc) changes := CompareItems(&rDoc, &lDoc)
assert.NotNil(t, changes) assert.NotNil(t, changes)
assert.Equal(t, 1, changes.TotalChanges()) assert.Equal(t, 1, changes.TotalChanges())
assert.Equal(t, 1, changes.TotalBreakingChanges()) assert.Equal(t, 1, changes.TotalBreakingChanges())
assert.Equal(t, v3.ItemsLabel, changes.Changes[0].Property) assert.Equal(t, v3.ItemsLabel, changes.Changes[0].Property)
assert.Equal(t, PropertyRemoved, changes.Changes[0].ChangeType) assert.Equal(t, PropertyRemoved, changes.Changes[0].ChangeType)
} }
func TestCompareItems_RefVsInlineIdentical(t *testing.T) { func TestCompareItems_RefVsInlineIdentical(t *testing.T) {
left := `swagger: 2.0 left := `swagger: 2.0
definitions: definitions:
thing: thing:
type: string type: string
@@ -145,7 +145,7 @@ paths:
items: items:
$ref: '#/definitions/thing'` $ref: '#/definitions/thing'`
right := `swagger: 2.0 right := `swagger: 2.0
definitions: definitions:
thing: thing:
type: string type: string
@@ -161,15 +161,15 @@ paths:
items: items:
type: bool` type: bool`
leftDoc, rightDoc := test_BuildDocv2(left, right) leftDoc, rightDoc := test_BuildDocv2(left, right)
// extract left reference schema and non reference schema. // extract left reference schema and non reference schema.
lItems := leftDoc.Paths.Value.FindPath("/a/path").Value.Get.Value.Parameters. lItems := leftDoc.Paths.Value.FindPath("/a/path").Value.Get.Value.Parameters.
Value[0].Value.Items.Value Value[0].Value.Items.Value
rItems := rightDoc.Paths.Value.FindPath("/a/path").Value.Get.Value.Parameters. rItems := rightDoc.Paths.Value.FindPath("/a/path").Value.Get.Value.Parameters.
Value[0].Value.Items.Value Value[0].Value.Items.Value
// compare. // compare.
changes := CompareItems(lItems, rItems) changes := CompareItems(lItems, rItems)
assert.Nil(t, changes) assert.Nil(t, changes)
} }

View File

@@ -25,8 +25,8 @@ url: https://pb33f.io`
// create low level objects // create low level objects
var lDoc lowbase.License var lDoc lowbase.License
var rDoc lowbase.License var rDoc lowbase.License
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -52,8 +52,8 @@ url: https://pb33f.io`
// create low level objects // create low level objects
var lDoc lowbase.License var lDoc lowbase.License
var rDoc lowbase.License var rDoc lowbase.License
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -78,8 +78,8 @@ name: buckaroo`
// create low level objects // create low level objects
var lDoc lowbase.License var lDoc lowbase.License
var rDoc lowbase.License var rDoc lowbase.License
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -104,8 +104,8 @@ name: buckaroo`
// create low level objects // create low level objects
var lDoc lowbase.License var lDoc lowbase.License
var rDoc lowbase.License var rDoc lowbase.License
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -129,8 +129,8 @@ func TestCompareLicense_URLModified(t *testing.T) {
// create low level objects // create low level objects
var lDoc lowbase.License var lDoc lowbase.License
var rDoc lowbase.License var rDoc lowbase.License
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -155,8 +155,8 @@ url: https://pb33f.io`
// create low level objects // create low level objects
var lDoc lowbase.License var lDoc lowbase.License
var rDoc lowbase.License var rDoc lowbase.License
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -182,8 +182,8 @@ url: https://pb33f.io`
// create low level objects // create low level objects
var lDoc lowbase.License var lDoc lowbase.License
var rDoc lowbase.License var rDoc lowbase.License
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)

View File

@@ -4,16 +4,16 @@
package model package model
import ( import (
"github.com/pb33f/libopenapi/datamodel/low" "github.com/pb33f/libopenapi/datamodel/low"
"github.com/pb33f/libopenapi/datamodel/low/v3" "github.com/pb33f/libopenapi/datamodel/low/v3"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"testing" "testing"
) )
func TestCompareLinks(t *testing.T) { func TestCompareLinks(t *testing.T) {
left := `operationId: someOperation left := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -21,29 +21,29 @@ server:
parameters: parameters:
nice: rice` nice: rice`
right := left right := left
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Link var lDoc v3.Link
var rDoc v3.Link var rDoc v3.Link
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareLinks(&lDoc, &rDoc) extChanges := CompareLinks(&lDoc, &rDoc)
assert.Nil(t, extChanges) assert.Nil(t, extChanges)
} }
func TestCompareLinks_ModifyExtension(t *testing.T) { func TestCompareLinks_ModifyExtension(t *testing.T) {
left := `operationId: someOperation left := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -52,7 +52,7 @@ parameters:
nice: rice nice: rice
x-cake: tasty` x-cake: tasty`
right := `operationId: someOperation right := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -61,29 +61,29 @@ parameters:
nice: rice nice: rice
x-cake: very tasty` x-cake: very tasty`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Link var lDoc v3.Link
var rDoc v3.Link var rDoc v3.Link
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareLinks(&lDoc, &rDoc) extChanges := CompareLinks(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
assert.Equal(t, Modified, extChanges.ExtensionChanges.Changes[0].ChangeType) assert.Equal(t, Modified, extChanges.ExtensionChanges.Changes[0].ChangeType)
} }
func TestCompareLinks_ModifyServer(t *testing.T) { func TestCompareLinks_ModifyServer(t *testing.T) {
left := `operationId: someOperation left := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -91,7 +91,7 @@ server:
parameters: parameters:
nice: rice` nice: rice`
right := `operationId: someOperation right := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -99,34 +99,34 @@ server:
parameters: parameters:
nice: rice` nice: rice`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Link var lDoc v3.Link
var rDoc v3.Link var rDoc v3.Link
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareLinks(&lDoc, &rDoc) extChanges := CompareLinks(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, Modified, extChanges.ServerChanges.Changes[0].ChangeType) assert.Equal(t, Modified, extChanges.ServerChanges.Changes[0].ChangeType)
} }
func TestCompareLinks_AddServer(t *testing.T) { func TestCompareLinks_AddServer(t *testing.T) {
left := `operationId: someOperation left := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
parameters: parameters:
nice: rice` nice: rice`
right := `operationId: someOperation right := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -134,34 +134,34 @@ server:
parameters: parameters:
nice: rice` nice: rice`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Link var lDoc v3.Link
var rDoc v3.Link var rDoc v3.Link
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareLinks(&lDoc, &rDoc) extChanges := CompareLinks(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, PropertyAdded, extChanges.Changes[0].ChangeType) assert.Equal(t, PropertyAdded, extChanges.Changes[0].ChangeType)
} }
func TestCompareLinks_RemoveServer(t *testing.T) { func TestCompareLinks_RemoveServer(t *testing.T) {
left := `operationId: someOperation left := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
parameters: parameters:
nice: rice` nice: rice`
right := `operationId: someOperation right := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -169,28 +169,28 @@ server:
parameters: parameters:
nice: rice` nice: rice`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Link var lDoc v3.Link
var rDoc v3.Link var rDoc v3.Link
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareLinks(&rDoc, &lDoc) extChanges := CompareLinks(&rDoc, &lDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, PropertyRemoved, extChanges.Changes[0].ChangeType) assert.Equal(t, PropertyRemoved, extChanges.Changes[0].ChangeType)
} }
func TestCompareLinks_ModifyParam(t *testing.T) { func TestCompareLinks_ModifyParam(t *testing.T) {
left := `operationId: someOperation left := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -198,7 +198,7 @@ server:
parameters: parameters:
nice: cake` nice: cake`
right := `operationId: someOperation right := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -206,31 +206,31 @@ server:
parameters: parameters:
nice: rice` nice: rice`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Link var lDoc v3.Link
var rDoc v3.Link var rDoc v3.Link
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareLinks(&lDoc, &rDoc) extChanges := CompareLinks(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, Modified, extChanges.Changes[0].ChangeType) assert.Equal(t, Modified, extChanges.Changes[0].ChangeType)
assert.Equal(t, "nice", extChanges.Changes[0].NewObject) assert.Equal(t, "nice", extChanges.Changes[0].NewObject)
assert.Equal(t, "cake", extChanges.Changes[0].Original) assert.Equal(t, "cake", extChanges.Changes[0].Original)
assert.Equal(t, "rice", extChanges.Changes[0].New) assert.Equal(t, "rice", extChanges.Changes[0].New)
} }
func TestCompareLinks_AddParam(t *testing.T) { func TestCompareLinks_AddParam(t *testing.T) {
left := `operationId: someOperation left := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -238,7 +238,7 @@ server:
parameters: parameters:
nice: cake` nice: cake`
right := `operationId: someOperation right := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -247,30 +247,30 @@ parameters:
nice: cake nice: cake
hot: pizza` hot: pizza`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Link var lDoc v3.Link
var rDoc v3.Link var rDoc v3.Link
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareLinks(&lDoc, &rDoc) extChanges := CompareLinks(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType) assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType)
assert.Equal(t, "hot", extChanges.Changes[0].NewObject) assert.Equal(t, "hot", extChanges.Changes[0].NewObject)
assert.Equal(t, "pizza", extChanges.Changes[0].New) assert.Equal(t, "pizza", extChanges.Changes[0].New)
} }
func TestCompareLinks_RemoveParam(t *testing.T) { func TestCompareLinks_RemoveParam(t *testing.T) {
left := `operationId: someOperation left := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -278,7 +278,7 @@ server:
parameters: parameters:
nice: cake` nice: cake`
right := `operationId: someOperation right := `operationId: someOperation
requestBody: expression-says-what requestBody: expression-says-what
description: a nice link description: a nice link
server: server:
@@ -287,23 +287,23 @@ parameters:
nice: cake nice: cake
hot: pizza` hot: pizza`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Link var lDoc v3.Link
var rDoc v3.Link var rDoc v3.Link
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareLinks(&rDoc, &lDoc) extChanges := CompareLinks(&rDoc, &lDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, ObjectRemoved, extChanges.Changes[0].ChangeType) assert.Equal(t, ObjectRemoved, extChanges.Changes[0].ChangeType)
assert.Equal(t, "hot", extChanges.Changes[0].OriginalObject) assert.Equal(t, "hot", extChanges.Changes[0].OriginalObject)
assert.Equal(t, "pizza", extChanges.Changes[0].Original) assert.Equal(t, "pizza", extChanges.Changes[0].Original)
} }

View File

@@ -38,8 +38,8 @@ encoding:
// create low level objects // create low level objects
var lDoc v3.MediaType var lDoc v3.MediaType
var rDoc v3.MediaType var rDoc v3.MediaType
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -75,8 +75,8 @@ encoding:
// create low level objects // create low level objects
var lDoc v3.MediaType var lDoc v3.MediaType
var rDoc v3.MediaType var rDoc v3.MediaType
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -114,8 +114,8 @@ encoding:
// create low level objects // create low level objects
var lDoc v3.MediaType var lDoc v3.MediaType
var rDoc v3.MediaType var rDoc v3.MediaType
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -153,8 +153,8 @@ encoding:
// create low level objects // create low level objects
var lDoc v3.MediaType var lDoc v3.MediaType
var rDoc v3.MediaType var rDoc v3.MediaType
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -198,8 +198,8 @@ x-tea: cup`
// create low level objects // create low level objects
var lDoc v3.MediaType var lDoc v3.MediaType
var rDoc v3.MediaType var rDoc v3.MediaType
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)

View File

@@ -4,89 +4,89 @@
package model package model
import ( import (
"github.com/pb33f/libopenapi/datamodel/low" "github.com/pb33f/libopenapi/datamodel/low"
v3 "github.com/pb33f/libopenapi/datamodel/low/v3" v3 "github.com/pb33f/libopenapi/datamodel/low/v3"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"testing" "testing"
) )
func TestCompareOAuthFlow(t *testing.T) { func TestCompareOAuthFlow(t *testing.T) {
left := `authorizationUrl: cheese left := `authorizationUrl: cheese
tokenUrl: biscuits tokenUrl: biscuits
refreshUrl: cake refreshUrl: cake
scopes: scopes:
riff: raff` riff: raff`
right := `authorizationUrl: cheese right := `authorizationUrl: cheese
tokenUrl: biscuits tokenUrl: biscuits
refreshUrl: cake refreshUrl: cake
scopes: scopes:
riff: raff` riff: raff`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.OAuthFlow var lDoc v3.OAuthFlow
var rDoc v3.OAuthFlow var rDoc v3.OAuthFlow
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare // compare
extChanges := CompareOAuthFlow(&lDoc, &rDoc) extChanges := CompareOAuthFlow(&lDoc, &rDoc)
assert.Nil(t, extChanges) assert.Nil(t, extChanges)
} }
func TestCompareOAuthFlow_Modified(t *testing.T) { func TestCompareOAuthFlow_Modified(t *testing.T) {
left := `authorizationUrl: toast left := `authorizationUrl: toast
tokenUrl: biscuits tokenUrl: biscuits
refreshUrl: roast refreshUrl: roast
scopes: scopes:
riff: raff riff: raff
x-burgers: nice` x-burgers: nice`
right := `authorizationUrl: cheese right := `authorizationUrl: cheese
tokenUrl: biscuits tokenUrl: biscuits
refreshUrl: cake refreshUrl: cake
scopes: scopes:
riff: raff riff: raff
x-burgers: crispy` x-burgers: crispy`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.OAuthFlow var lDoc v3.OAuthFlow
var rDoc v3.OAuthFlow var rDoc v3.OAuthFlow
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare // compare
extChanges := CompareOAuthFlow(&lDoc, &rDoc) extChanges := CompareOAuthFlow(&lDoc, &rDoc)
assert.Equal(t, 3, extChanges.TotalChanges()) assert.Equal(t, 3, extChanges.TotalChanges())
assert.Equal(t, 2, extChanges.TotalBreakingChanges()) assert.Equal(t, 2, extChanges.TotalBreakingChanges())
} }
func TestCompareOAuthFlow_AddScope(t *testing.T) { func TestCompareOAuthFlow_AddScope(t *testing.T) {
left := `authorizationUrl: toast left := `authorizationUrl: toast
tokenUrl: biscuits tokenUrl: biscuits
refreshUrl: roast refreshUrl: roast
scopes: scopes:
riff: raff riff: raff
x-burgers: nice` x-burgers: nice`
right := `authorizationUrl: toast right := `authorizationUrl: toast
tokenUrl: biscuits tokenUrl: biscuits
refreshUrl: roast refreshUrl: roast
scopes: scopes:
@@ -94,36 +94,36 @@ scopes:
tiff: taff tiff: taff
x-burgers: nice` x-burgers: nice`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.OAuthFlow var lDoc v3.OAuthFlow
var rDoc v3.OAuthFlow var rDoc v3.OAuthFlow
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare // compare
extChanges := CompareOAuthFlow(&lDoc, &rDoc) extChanges := CompareOAuthFlow(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
assert.Equal(t, "taff", extChanges.Changes[0].New) assert.Equal(t, "taff", extChanges.Changes[0].New)
assert.Equal(t, "tiff", extChanges.Changes[0].NewObject) assert.Equal(t, "tiff", extChanges.Changes[0].NewObject)
} }
func TestCompareOAuthFlow_RemoveScope(t *testing.T) { func TestCompareOAuthFlow_RemoveScope(t *testing.T) {
left := `authorizationUrl: toast left := `authorizationUrl: toast
tokenUrl: biscuits tokenUrl: biscuits
refreshUrl: roast refreshUrl: roast
scopes: scopes:
riff: raff riff: raff
x-burgers: nice` x-burgers: nice`
right := `authorizationUrl: toast right := `authorizationUrl: toast
tokenUrl: biscuits tokenUrl: biscuits
refreshUrl: roast refreshUrl: roast
scopes: scopes:
@@ -131,66 +131,66 @@ scopes:
tiff: taff tiff: taff
x-burgers: nice` x-burgers: nice`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.OAuthFlow var lDoc v3.OAuthFlow
var rDoc v3.OAuthFlow var rDoc v3.OAuthFlow
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare // compare
extChanges := CompareOAuthFlow(&rDoc, &lDoc) extChanges := CompareOAuthFlow(&rDoc, &lDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, "taff", extChanges.Changes[0].Original) assert.Equal(t, "taff", extChanges.Changes[0].Original)
assert.Equal(t, "tiff", extChanges.Changes[0].OriginalObject) assert.Equal(t, "tiff", extChanges.Changes[0].OriginalObject)
} }
func TestCompareOAuthFlow_ModifyScope(t *testing.T) { func TestCompareOAuthFlow_ModifyScope(t *testing.T) {
left := `authorizationUrl: toast left := `authorizationUrl: toast
tokenUrl: biscuits tokenUrl: biscuits
refreshUrl: roast refreshUrl: roast
scopes: scopes:
riff: ruffles riff: ruffles
x-burgers: nice` x-burgers: nice`
right := `authorizationUrl: toast right := `authorizationUrl: toast
tokenUrl: biscuits tokenUrl: biscuits
refreshUrl: roast refreshUrl: roast
scopes: scopes:
riff: raff riff: raff
x-burgers: nice` x-burgers: nice`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.OAuthFlow var lDoc v3.OAuthFlow
var rDoc v3.OAuthFlow var rDoc v3.OAuthFlow
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare // compare
extChanges := CompareOAuthFlow(&lDoc, &rDoc) extChanges := CompareOAuthFlow(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, "raff", extChanges.Changes[0].New) assert.Equal(t, "raff", extChanges.Changes[0].New)
assert.Equal(t, "raff", extChanges.Changes[0].NewObject) assert.Equal(t, "raff", extChanges.Changes[0].NewObject)
assert.Equal(t, "ruffles", extChanges.Changes[0].Original) assert.Equal(t, "ruffles", extChanges.Changes[0].Original)
assert.Equal(t, "ruffles", extChanges.Changes[0].OriginalObject) assert.Equal(t, "ruffles", extChanges.Changes[0].OriginalObject)
} }
func TestCompareOAuthFlows(t *testing.T) { func TestCompareOAuthFlows(t *testing.T) {
left := `implicit: left := `implicit:
authorizationUrl: cheese authorizationUrl: cheese
password: password:
authorizationUrl: cake authorizationUrl: cake
@@ -200,7 +200,7 @@ authorizationCode:
authorizationUrl: chalk authorizationUrl: chalk
x-coke: cola` x-coke: cola`
right := `implicit: right := `implicit:
authorizationUrl: cheese authorizationUrl: cheese
password: password:
authorizationUrl: cake authorizationUrl: cake
@@ -210,27 +210,27 @@ authorizationCode:
authorizationUrl: chalk authorizationUrl: chalk
x-coke: cola` x-coke: cola`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.OAuthFlows var lDoc v3.OAuthFlows
var rDoc v3.OAuthFlows var rDoc v3.OAuthFlows
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare // compare
extChanges := CompareOAuthFlows(&lDoc, &rDoc) extChanges := CompareOAuthFlows(&lDoc, &rDoc)
assert.Nil(t, extChanges) assert.Nil(t, extChanges)
} }
func TestCompareOAuthFlows_AddEverything(t *testing.T) { func TestCompareOAuthFlows_AddEverything(t *testing.T) {
left := `x-coke: cola` left := `x-coke: cola`
right := `implicit: right := `implicit:
authorizationUrl: cheese authorizationUrl: cheese
password: password:
authorizationUrl: cake authorizationUrl: cake
@@ -240,28 +240,28 @@ authorizationCode:
authorizationUrl: chalk authorizationUrl: chalk
x-coke: cola` x-coke: cola`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.OAuthFlows var lDoc v3.OAuthFlows
var rDoc v3.OAuthFlows var rDoc v3.OAuthFlows
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare // compare
extChanges := CompareOAuthFlows(&lDoc, &rDoc) extChanges := CompareOAuthFlows(&lDoc, &rDoc)
assert.Equal(t, 4, extChanges.TotalChanges()) assert.Equal(t, 4, extChanges.TotalChanges())
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
} }
func TestCompareOAuthFlows_RemoveEverything(t *testing.T) { func TestCompareOAuthFlows_RemoveEverything(t *testing.T) {
left := `x-coke: cola` left := `x-coke: cola`
right := `implicit: right := `implicit:
authorizationUrl: cheese authorizationUrl: cheese
password: password:
authorizationUrl: cake authorizationUrl: cake
@@ -271,26 +271,26 @@ authorizationCode:
authorizationUrl: chalk authorizationUrl: chalk
x-coke: cola` x-coke: cola`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.OAuthFlows var lDoc v3.OAuthFlows
var rDoc v3.OAuthFlows var rDoc v3.OAuthFlows
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare // compare
extChanges := CompareOAuthFlows(&rDoc, &lDoc) extChanges := CompareOAuthFlows(&rDoc, &lDoc)
assert.Equal(t, 4, extChanges.TotalChanges()) assert.Equal(t, 4, extChanges.TotalChanges())
assert.Equal(t, 4, extChanges.TotalBreakingChanges()) assert.Equal(t, 4, extChanges.TotalBreakingChanges())
} }
func TestCompareOAuthFlows_ModifyEverything(t *testing.T) { func TestCompareOAuthFlows_ModifyEverything(t *testing.T) {
left := `implicit: left := `implicit:
authorizationUrl: cheese authorizationUrl: cheese
password: password:
authorizationUrl: cake authorizationUrl: cake
@@ -300,7 +300,7 @@ authorizationCode:
authorizationUrl: chalk authorizationUrl: chalk
x-coke: cola` x-coke: cola`
right := `implicit: right := `implicit:
authorizationUrl: herbs authorizationUrl: herbs
password: password:
authorizationUrl: coffee authorizationUrl: coffee
@@ -310,20 +310,20 @@ authorizationCode:
authorizationUrl: pasta authorizationUrl: pasta
x-coke: cherry` x-coke: cherry`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.OAuthFlows var lDoc v3.OAuthFlows
var rDoc v3.OAuthFlows var rDoc v3.OAuthFlows
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare // compare
extChanges := CompareOAuthFlows(&lDoc, &rDoc) extChanges := CompareOAuthFlows(&lDoc, &rDoc)
assert.Equal(t, 5, extChanges.TotalChanges()) assert.Equal(t, 5, extChanges.TotalChanges())
assert.Equal(t, 4, extChanges.TotalBreakingChanges()) assert.Equal(t, 4, extChanges.TotalBreakingChanges())
} }

File diff suppressed because it is too large Load Diff

View File

@@ -24,8 +24,8 @@ func TestCompareParameters(t *testing.T) {
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -46,8 +46,8 @@ func TestCompareParameters_V3(t *testing.T) {
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -70,8 +70,8 @@ func TestCompareParameters_V3_Schema(t *testing.T) {
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -97,8 +97,8 @@ schema:
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -124,8 +124,8 @@ schema:
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -149,8 +149,8 @@ func TestCompareParameters_V3_Extensions(t *testing.T) {
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -175,8 +175,8 @@ func TestCompareParameters_V3_ExampleChange(t *testing.T) {
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -198,8 +198,8 @@ func TestCompareParameters_V3_ExampleEqual(t *testing.T) {
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -221,8 +221,8 @@ example: a string`
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -246,8 +246,8 @@ example: a string`
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -274,8 +274,8 @@ func TestCompareParameters_V3_ExamplesChanged(t *testing.T) {
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -305,8 +305,8 @@ func TestCompareParameters_V3_ExamplesAdded(t *testing.T) {
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -336,8 +336,8 @@ func TestCompareParameters_V3_ExamplesRemoved(t *testing.T) {
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -367,8 +367,8 @@ func TestCompareParameters_V3_ContentChanged(t *testing.T) {
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -402,8 +402,8 @@ func TestCompareParameters_V3_ContentAdded(t *testing.T) {
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -426,8 +426,8 @@ func TestCompareParameters_V2_DefaultChange(t *testing.T) {
// create low level objects // create low level objects
var lDoc v2.Parameter var lDoc v2.Parameter
var rDoc v2.Parameter var rDoc v2.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -451,8 +451,8 @@ func TestCompareParameters_V2_EnumChange(t *testing.T) {
// create low level objects // create low level objects
var lDoc v2.Parameter var lDoc v2.Parameter
var rDoc v2.Parameter var rDoc v2.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -478,8 +478,8 @@ func TestCompareParameters_V2_EnumEqual_Reorder(t *testing.T) {
// create low level objects // create low level objects
var lDoc v2.Parameter var lDoc v2.Parameter
var rDoc v2.Parameter var rDoc v2.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -501,8 +501,8 @@ example: a string`
// create low level objects // create low level objects
var lDoc v3.Parameter var lDoc v3.Parameter
var rDoc v3.Parameter var rDoc v3.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -525,8 +525,8 @@ func TestCompareParameters_V2_Equal(t *testing.T) {
// create low level objects // create low level objects
var lDoc v2.Parameter var lDoc v2.Parameter
var rDoc v2.Parameter var rDoc v2.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -547,8 +547,8 @@ func TestCompareParameters_V2(t *testing.T) {
// create low level objects // create low level objects
var lDoc v2.Parameter var lDoc v2.Parameter
var rDoc v2.Parameter var rDoc v2.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -571,8 +571,8 @@ func TestCompareParameters_V2_ItemsChange(t *testing.T) {
// create low level objects // create low level objects
var lDoc v2.Parameter var lDoc v2.Parameter
var rDoc v2.Parameter var rDoc v2.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -598,8 +598,8 @@ items:
// create low level objects // create low level objects
var lDoc v2.Parameter var lDoc v2.Parameter
var rDoc v2.Parameter var rDoc v2.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -624,8 +624,8 @@ items:
// create low level objects // create low level objects
var lDoc v2.Parameter var lDoc v2.Parameter
var rDoc v2.Parameter var rDoc v2.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -648,8 +648,8 @@ func TestCompareParameters_V2_Extensions(t *testing.T) {
// create low level objects // create low level objects
var lDoc v2.Parameter var lDoc v2.Parameter
var rDoc v2.Parameter var rDoc v2.Parameter
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)

View File

@@ -162,7 +162,7 @@ func ComparePathItems(l, r any) *PathItemChanges {
compareOpenAPIPathItem(lPath, rPath, &changes, pc) compareOpenAPIPathItem(lPath, rPath, &changes, pc)
} }
//CheckProperties(props) CheckProperties(props)
pc.Changes = changes pc.Changes = changes
return pc return pc
} }

View File

@@ -41,8 +41,8 @@ x-thing: thang.`
// create low level objects // create low level objects
var lDoc v2.PathItem var lDoc v2.PathItem
var rDoc v2.PathItem var rDoc v2.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -96,8 +96,8 @@ x-thing: ding-a-ling`
// create low level objects // create low level objects
var lDoc v2.PathItem var lDoc v2.PathItem
var rDoc v2.PathItem var rDoc v2.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -132,8 +132,8 @@ parameters:
// create low level objects // create low level objects
var lDoc v2.PathItem var lDoc v2.PathItem
var rDoc v2.PathItem var rDoc v2.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -172,8 +172,8 @@ parameters:
// create low level objects // create low level objects
var lDoc v2.PathItem var lDoc v2.PathItem
var rDoc v2.PathItem var rDoc v2.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -211,8 +211,8 @@ parameters:
// create low level objects // create low level objects
var lDoc v2.PathItem var lDoc v2.PathItem
var rDoc v2.PathItem var rDoc v2.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -245,8 +245,8 @@ parameters:
// create low level objects // create low level objects
var lDoc v2.PathItem var lDoc v2.PathItem
var rDoc v2.PathItem var rDoc v2.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -281,8 +281,8 @@ parameters:
// create low level objects // create low level objects
var lDoc v2.PathItem var lDoc v2.PathItem
var rDoc v2.PathItem var rDoc v2.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -322,8 +322,8 @@ parameters:
// create low level objects // create low level objects
var lDoc v2.PathItem var lDoc v2.PathItem
var rDoc v2.PathItem var rDoc v2.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -361,8 +361,8 @@ parameters:
// create low level objects // create low level objects
var lDoc v2.PathItem var lDoc v2.PathItem
var rDoc v2.PathItem var rDoc v2.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -407,8 +407,8 @@ x-thing: thang.`
// create low level objects // create low level objects
var lDoc v3.PathItem var lDoc v3.PathItem
var rDoc v3.PathItem var rDoc v3.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -475,8 +475,8 @@ x-thing: dang.`
// create low level objects // create low level objects
var lDoc v3.PathItem var lDoc v3.PathItem
var rDoc v3.PathItem var rDoc v3.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -501,8 +501,8 @@ parameters:
// create low level objects // create low level objects
var lDoc v3.PathItem var lDoc v3.PathItem
var rDoc v3.PathItem var rDoc v3.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -529,8 +529,8 @@ parameters:
// create low level objects // create low level objects
var lDoc v3.PathItem var lDoc v3.PathItem
var rDoc v3.PathItem var rDoc v3.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -571,8 +571,8 @@ trace:
// create low level objects // create low level objects
var lDoc v3.PathItem var lDoc v3.PathItem
var rDoc v3.PathItem var rDoc v3.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -611,8 +611,8 @@ trace:
// create low level objects // create low level objects
var lDoc v3.PathItem var lDoc v3.PathItem
var rDoc v3.PathItem var rDoc v3.PathItem
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)

View File

@@ -4,49 +4,49 @@
package model package model
import ( import (
"github.com/pb33f/libopenapi/datamodel/low" "github.com/pb33f/libopenapi/datamodel/low"
"github.com/pb33f/libopenapi/datamodel/low/v3" "github.com/pb33f/libopenapi/datamodel/low/v3"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"testing" "testing"
) )
func TestCompareRequestBodies(t *testing.T) { func TestCompareRequestBodies(t *testing.T) {
left := `description: something left := `description: something
required: true required: true
content: content:
application/json: application/json:
schema: schema:
type: int` type: int`
right := `description: something right := `description: something
required: true required: true
content: content:
application/json: application/json:
schema: schema:
type: int` type: int`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.RequestBody var lDoc v3.RequestBody
var rDoc v3.RequestBody var rDoc v3.RequestBody
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareRequestBodies(&lDoc, &rDoc) extChanges := CompareRequestBodies(&lDoc, &rDoc)
assert.Nil(t, extChanges) assert.Nil(t, extChanges)
} }
func TestCompareRequestBodies_Modified(t *testing.T) { func TestCompareRequestBodies_Modified(t *testing.T) {
left := `description: something left := `description: something
required: true required: true
x-pizza: thin x-pizza: thin
content: content:
@@ -54,7 +54,7 @@ content:
schema: schema:
type: int` type: int`
right := `x-pizza: oven right := `x-pizza: oven
description: nothing description: nothing
required: false required: false
content: content:
@@ -62,21 +62,21 @@ content:
schema: schema:
type: string` type: string`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.RequestBody var lDoc v3.RequestBody
var rDoc v3.RequestBody var rDoc v3.RequestBody
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareRequestBodies(&lDoc, &rDoc) extChanges := CompareRequestBodies(&lDoc, &rDoc)
assert.Equal(t, 4, extChanges.TotalChanges()) assert.Equal(t, 4, extChanges.TotalChanges())
assert.Equal(t, 2, extChanges.TotalBreakingChanges()) assert.Equal(t, 2, extChanges.TotalBreakingChanges())
} }

View File

@@ -32,8 +32,8 @@ x-toot: poot`
// create low level objects // create low level objects
var lDoc v2.Response var lDoc v2.Response
var rDoc v2.Response var rDoc v2.Response
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -70,8 +70,8 @@ x-toot: poot`
// create low level objects // create low level objects
var lDoc v2.Response var lDoc v2.Response
var rDoc v2.Response var rDoc v2.Response
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -103,8 +103,8 @@ examples:
// create low level objects // create low level objects
var lDoc v2.Response var lDoc v2.Response
var rDoc v2.Response var rDoc v2.Response
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -136,8 +136,8 @@ examples:
// create low level objects // create low level objects
var lDoc v2.Response var lDoc v2.Response
var rDoc v2.Response var rDoc v2.Response
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -169,8 +169,8 @@ x-toot: poot`
// create low level objects // create low level objects
var lDoc v3.Response var lDoc v3.Response
var rDoc v3.Response var rDoc v3.Response
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -215,8 +215,8 @@ x-toot: pooty`
// create low level objects // create low level objects
var lDoc v3.Response var lDoc v3.Response
var rDoc v3.Response var rDoc v3.Response
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)

View File

@@ -4,17 +4,17 @@
package model package model
import ( import (
"github.com/pb33f/libopenapi/datamodel/low" "github.com/pb33f/libopenapi/datamodel/low"
"github.com/pb33f/libopenapi/datamodel/low/v2" "github.com/pb33f/libopenapi/datamodel/low/v2"
"github.com/pb33f/libopenapi/datamodel/low/v3" "github.com/pb33f/libopenapi/datamodel/low/v3"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"testing" "testing"
) )
func TestCompareResponses_V2(t *testing.T) { func TestCompareResponses_V2(t *testing.T) {
left := `x-coffee: roasty left := `x-coffee: roasty
default: default:
schema: schema:
type: string type: string
@@ -27,27 +27,27 @@ default:
schema: schema:
type: string` type: string`
right := left right := left
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Responses var lDoc v2.Responses
var rDoc v2.Responses var rDoc v2.Responses
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareResponses(&lDoc, &rDoc) extChanges := CompareResponses(&lDoc, &rDoc)
assert.Nil(t, extChanges) assert.Nil(t, extChanges)
} }
func TestCompareResponses_V2_ModifyCode(t *testing.T) { func TestCompareResponses_V2_ModifyCode(t *testing.T) {
left := `200: left := `200:
description: OK response description: OK response
schema: schema:
type: int type: int
@@ -57,7 +57,7 @@ func TestCompareResponses_V2_ModifyCode(t *testing.T) {
type: int type: int
x-ting: tang` x-ting: tang`
right := `200: right := `200:
description: OK response description: OK response
schema: schema:
type: string type: string
@@ -67,27 +67,27 @@ x-ting: tang`
type: string type: string
x-ting: tang` x-ting: tang`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Responses var lDoc v2.Responses
var rDoc v2.Responses var rDoc v2.Responses
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareResponses(&lDoc, &rDoc) extChanges := CompareResponses(&lDoc, &rDoc)
assert.Equal(t, 2, extChanges.TotalChanges()) assert.Equal(t, 2, extChanges.TotalChanges())
assert.Equal(t, 2, extChanges.TotalBreakingChanges()) assert.Equal(t, 2, extChanges.TotalBreakingChanges())
assert.Equal(t, Modified, extChanges.ResponseChanges["404"].SchemaChanges.Changes[0].ChangeType) assert.Equal(t, Modified, extChanges.ResponseChanges["404"].SchemaChanges.Changes[0].ChangeType)
assert.Equal(t, Modified, extChanges.ResponseChanges["200"].SchemaChanges.Changes[0].ChangeType) assert.Equal(t, Modified, extChanges.ResponseChanges["200"].SchemaChanges.Changes[0].ChangeType)
} }
func TestCompareResponses_V2_AddSchema(t *testing.T) { func TestCompareResponses_V2_AddSchema(t *testing.T) {
left := `x-hack: code left := `x-hack: code
200: 200:
description: OK response description: OK response
schema: schema:
@@ -98,7 +98,7 @@ x-apple: pie
schema: schema:
type: int` type: int`
right := `404: right := `404:
description: not found response description: not found response
schema: schema:
type: int type: int
@@ -107,26 +107,26 @@ x-hack: all the code
description: OK response description: OK response
x-apple: pie` x-apple: pie`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Responses var lDoc v2.Responses
var rDoc v2.Responses var rDoc v2.Responses
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareResponses(&rDoc, &lDoc) extChanges := CompareResponses(&rDoc, &lDoc)
assert.Equal(t, 2, extChanges.TotalChanges()) assert.Equal(t, 2, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, ObjectAdded, extChanges.ResponseChanges["200"].Changes[0].ChangeType) assert.Equal(t, ObjectAdded, extChanges.ResponseChanges["200"].Changes[0].ChangeType)
} }
func TestCompareResponses_V2_RemoveSchema(t *testing.T) { func TestCompareResponses_V2_RemoveSchema(t *testing.T) {
left := `200: left := `200:
description: OK response description: OK response
schema: schema:
type: int type: int
@@ -135,38 +135,38 @@ func TestCompareResponses_V2_RemoveSchema(t *testing.T) {
schema: schema:
type: int` type: int`
right := `200: right := `200:
description: OK response description: OK response
404: 404:
description: not found response description: not found response
schema: schema:
type: int` type: int`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Responses var lDoc v2.Responses
var rDoc v2.Responses var rDoc v2.Responses
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareResponses(&lDoc, &rDoc) extChanges := CompareResponses(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, ObjectRemoved, extChanges.ResponseChanges["200"].Changes[0].ChangeType) assert.Equal(t, ObjectRemoved, extChanges.ResponseChanges["200"].Changes[0].ChangeType)
} }
func TestCompareResponses_V2_AddDefault(t *testing.T) { func TestCompareResponses_V2_AddDefault(t *testing.T) {
left := `200: left := `200:
description: OK response description: OK response
schema: schema:
type: int` type: int`
right := `200: right := `200:
description: OK response description: OK response
schema: schema:
type: int type: int
@@ -175,31 +175,31 @@ default:
schema: schema:
type: int` type: int`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Responses var lDoc v2.Responses
var rDoc v2.Responses var rDoc v2.Responses
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareResponses(&lDoc, &rDoc) extChanges := CompareResponses(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType) assert.Equal(t, ObjectAdded, extChanges.Changes[0].ChangeType)
} }
func TestCompareResponses_V2_RemoveDefault(t *testing.T) { func TestCompareResponses_V2_RemoveDefault(t *testing.T) {
left := `200: left := `200:
description: OK response description: OK response
schema: schema:
type: int` type: int`
right := `200: right := `200:
description: OK response description: OK response
schema: schema:
type: int type: int
@@ -208,26 +208,26 @@ default:
schema: schema:
type: int` type: int`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Responses var lDoc v2.Responses
var rDoc v2.Responses var rDoc v2.Responses
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareResponses(&rDoc, &lDoc) extChanges := CompareResponses(&rDoc, &lDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, ObjectRemoved, extChanges.Changes[0].ChangeType) assert.Equal(t, ObjectRemoved, extChanges.Changes[0].ChangeType)
} }
func TestCompareResponses_V2_ModifyDefault(t *testing.T) { func TestCompareResponses_V2_ModifyDefault(t *testing.T) {
left := `200: left := `200:
description: OK response description: OK response
schema: schema:
type: int type: int
@@ -236,7 +236,7 @@ default:
schema: schema:
type: string` type: string`
right := `200: right := `200:
description: OK response description: OK response
schema: schema:
type: int type: int
@@ -245,26 +245,26 @@ default:
schema: schema:
type: int` type: int`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v2.Responses var lDoc v2.Responses
var rDoc v2.Responses var rDoc v2.Responses
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareResponses(&lDoc, &rDoc) extChanges := CompareResponses(&lDoc, &rDoc)
assert.Equal(t, 2, extChanges.TotalChanges()) assert.Equal(t, 2, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
} }
func TestCompareResponses_V3(t *testing.T) { func TestCompareResponses_V3(t *testing.T) {
left := `x-coffee: roasty left := `x-coffee: roasty
default: default:
description: a thing description: a thing
200: 200:
@@ -272,27 +272,27 @@ default:
404: 404:
description: not found response` description: not found response`
right := left right := left
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Responses var lDoc v3.Responses
var rDoc v3.Responses var rDoc v3.Responses
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareResponses(&lDoc, &rDoc) extChanges := CompareResponses(&lDoc, &rDoc)
assert.Nil(t, extChanges) assert.Nil(t, extChanges)
} }
func TestCompareResponses_V3_ModifyCode(t *testing.T) { func TestCompareResponses_V3_ModifyCode(t *testing.T) {
left := `x-coffee: roasty left := `x-coffee: roasty
default: default:
description: a thing description: a thing
200: 200:
@@ -300,7 +300,7 @@ default:
404: 404:
description: not found response` description: not found response`
right := `404: right := `404:
description: not found response but new! description: not found response but new!
default: default:
description: a thing that changed description: a thing that changed
@@ -308,32 +308,32 @@ x-coffee: yum
200: 200:
description: blast off` description: blast off`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Responses var lDoc v3.Responses
var rDoc v3.Responses var rDoc v3.Responses
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareResponses(&lDoc, &rDoc) extChanges := CompareResponses(&lDoc, &rDoc)
assert.Equal(t, 4, extChanges.TotalChanges()) assert.Equal(t, 4, extChanges.TotalChanges())
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
} }
func TestCompareResponses_V3_AddDefault(t *testing.T) { func TestCompareResponses_V3_AddDefault(t *testing.T) {
left := `x-coffee: roasty left := `x-coffee: roasty
200: 200:
description: OK response description: OK response
404: 404:
description: not found response` description: not found response`
right := `x-coffee: roasty right := `x-coffee: roasty
default: default:
description: a thing description: a thing
200: 200:
@@ -341,33 +341,33 @@ default:
404: 404:
description: not found response` description: not found response`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Responses var lDoc v3.Responses
var rDoc v3.Responses var rDoc v3.Responses
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareResponses(&lDoc, &rDoc) extChanges := CompareResponses(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
assert.Equal(t, v3.DefaultLabel, extChanges.Changes[0].Property) assert.Equal(t, v3.DefaultLabel, extChanges.Changes[0].Property)
} }
func TestCompareResponses_V3_RemoveDefault(t *testing.T) { func TestCompareResponses_V3_RemoveDefault(t *testing.T) {
left := `x-coffee: roasty left := `x-coffee: roasty
200: 200:
description: OK response description: OK response
404: 404:
description: not found response` description: not found response`
right := `x-coffee: roasty right := `x-coffee: roasty
default: default:
description: a thing description: a thing
200: 200:
@@ -375,27 +375,27 @@ default:
404: 404:
description: not found response` description: not found response`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Responses var lDoc v3.Responses
var rDoc v3.Responses var rDoc v3.Responses
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareResponses(&rDoc, &lDoc) extChanges := CompareResponses(&rDoc, &lDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, v3.DefaultLabel, extChanges.Changes[0].Property) assert.Equal(t, v3.DefaultLabel, extChanges.Changes[0].Property)
} }
func TestCompareResponses_V3_ModifyDefault(t *testing.T) { func TestCompareResponses_V3_ModifyDefault(t *testing.T) {
left := `x-coffee: roasty left := `x-coffee: roasty
200: 200:
description: OK response description: OK response
404: 404:
@@ -403,7 +403,7 @@ func TestCompareResponses_V3_ModifyDefault(t *testing.T) {
default: default:
description: a thing` description: a thing`
right := `x-coffee: roasty right := `x-coffee: roasty
default: default:
description: a thing that changed! description: a thing that changed!
200: 200:
@@ -411,20 +411,20 @@ default:
404: 404:
description: not found response` description: not found response`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Responses var lDoc v3.Responses
var rDoc v3.Responses var rDoc v3.Responses
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
extChanges := CompareResponses(&lDoc, &rDoc) extChanges := CompareResponses(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
assert.Equal(t, v3.DescriptionLabel, extChanges.DefaultChanges.Changes[0].Property) assert.Equal(t, v3.DescriptionLabel, extChanges.DefaultChanges.Changes[0].Property)
} }

View File

@@ -27,8 +27,8 @@ x-nugget: chicken`
// create low level objects // create low level objects
var lDoc v2.Scopes var lDoc v2.Scopes
var rDoc v2.Scopes var rDoc v2.Scopes
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -53,8 +53,8 @@ x-nugget: chicken`
// create low level objects // create low level objects
var lDoc v2.Scopes var lDoc v2.Scopes
var rDoc v2.Scopes var rDoc v2.Scopes
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -81,8 +81,8 @@ x-nugget: chicken`
// create low level objects // create low level objects
var lDoc v2.Scopes var lDoc v2.Scopes
var rDoc v2.Scopes var rDoc v2.Scopes
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -110,8 +110,8 @@ x-nugget: soup`
// create low level objects // create low level objects
var lDoc v2.Scopes var lDoc v2.Scopes
var rDoc v2.Scopes var rDoc v2.Scopes
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)

View File

@@ -28,8 +28,8 @@ func TestCompareSecurityRequirement_V2(t *testing.T) {
// create low level objects // create low level objects
var lDoc base.SecurityRequirement var lDoc base.SecurityRequirement
var rDoc base.SecurityRequirement var rDoc base.SecurityRequirement
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -61,8 +61,8 @@ biscuit:
// create low level objects // create low level objects
var lDoc base.SecurityRequirement var lDoc base.SecurityRequirement
var rDoc base.SecurityRequirement var rDoc base.SecurityRequirement
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -93,8 +93,8 @@ biscuit:
// create low level objects // create low level objects
var lDoc base.SecurityRequirement var lDoc base.SecurityRequirement
var rDoc base.SecurityRequirement var rDoc base.SecurityRequirement
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -125,8 +125,8 @@ milk:
// create low level objects // create low level objects
var lDoc base.SecurityRequirement var lDoc base.SecurityRequirement
var rDoc base.SecurityRequirement var rDoc base.SecurityRequirement
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -161,8 +161,8 @@ milk:
// create low level objects // create low level objects
var lDoc base.SecurityRequirement var lDoc base.SecurityRequirement
var rDoc base.SecurityRequirement var rDoc base.SecurityRequirement
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -196,8 +196,8 @@ biscuit:
// create low level objects // create low level objects
var lDoc base.SecurityRequirement var lDoc base.SecurityRequirement
var rDoc base.SecurityRequirement var rDoc base.SecurityRequirement
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -234,8 +234,8 @@ biscuit:
// create low level objects // create low level objects
var lDoc base.SecurityRequirement var lDoc base.SecurityRequirement
var rDoc base.SecurityRequirement var rDoc base.SecurityRequirement
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -268,8 +268,8 @@ biscuit:
// create low level objects // create low level objects
var lDoc base.SecurityRequirement var lDoc base.SecurityRequirement
var rDoc base.SecurityRequirement var rDoc base.SecurityRequirement
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -302,8 +302,8 @@ biscuit:
// create low level objects // create low level objects
var lDoc base.SecurityRequirement var lDoc base.SecurityRequirement
var rDoc base.SecurityRequirement var rDoc base.SecurityRequirement
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -334,8 +334,8 @@ biscuit:
// create low level objects // create low level objects
var lDoc base.SecurityRequirement var lDoc base.SecurityRequirement
var rDoc base.SecurityRequirement var rDoc base.SecurityRequirement
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -370,8 +370,8 @@ biscuit:
// create low level objects // create low level objects
var lDoc base.SecurityRequirement var lDoc base.SecurityRequirement
var rDoc base.SecurityRequirement var rDoc base.SecurityRequirement
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -400,8 +400,8 @@ biscuit:
// // create low level objects // // create low level objects
// var lDoc v3.SecurityRequirement // var lDoc v3.SecurityRequirement
// var rDoc v3.SecurityRequirement // var rDoc v3.SecurityRequirement
// _ = low.BuildModel(&lNode, &lDoc) // _ = low.BuildModel(lNode.Content[0], &lDoc)
// _ = low.BuildModel(&rNode, &rDoc) // _ = low.BuildModel(rNode.Content[0], &rDoc)
// _ = lDoc.Build(lNode.Content[0], nil) // _ = lDoc.Build(lNode.Content[0], nil)
// _ = rDoc.Build(rNode.Content[0], nil) // _ = rDoc.Build(rNode.Content[0], nil)
// //
@@ -428,8 +428,8 @@ biscuit:
// // create low level objects // // create low level objects
// var lDoc v3.SecurityRequirement // var lDoc v3.SecurityRequirement
// var rDoc v3.SecurityRequirement // var rDoc v3.SecurityRequirement
// _ = low.BuildModel(&lNode, &lDoc) // _ = low.BuildModel(lNode.Content[0], &lDoc)
// _ = low.BuildModel(&rNode, &rDoc) // _ = low.BuildModel(rNode.Content[0], &rDoc)
// _ = lDoc.Build(lNode.Content[0], nil) // _ = lDoc.Build(lNode.Content[0], nil)
// _ = rDoc.Build(rNode.Content[0], nil) // _ = rDoc.Build(rNode.Content[0], nil)
// //
@@ -458,8 +458,8 @@ biscuit:
// // create low level objects // // create low level objects
// var lDoc v3.SecurityRequirement // var lDoc v3.SecurityRequirement
// var rDoc v3.SecurityRequirement // var rDoc v3.SecurityRequirement
// _ = low.BuildModel(&lNode, &lDoc) // _ = low.BuildModel(lNode.Content[0], &lDoc)
// _ = low.BuildModel(&rNode, &rDoc) // _ = low.BuildModel(rNode.Content[0], &rDoc)
// _ = lDoc.Build(lNode.Content[0], nil) // _ = lDoc.Build(lNode.Content[0], nil)
// _ = rDoc.Build(rNode.Content[0], nil) // _ = rDoc.Build(rNode.Content[0], nil)
// //
@@ -490,8 +490,8 @@ biscuit:
// // create low level objects // // create low level objects
// var lDoc v3.SecurityRequirement // var lDoc v3.SecurityRequirement
// var rDoc v3.SecurityRequirement // var rDoc v3.SecurityRequirement
// _ = low.BuildModel(&lNode, &lDoc) // _ = low.BuildModel(lNode.Content[0], &lDoc)
// _ = low.BuildModel(&rNode, &rDoc) // _ = low.BuildModel(rNode.Content[0], &rDoc)
// _ = lDoc.Build(lNode.Content[0], nil) // _ = lDoc.Build(lNode.Content[0], nil)
// _ = rDoc.Build(rNode.Content[0], nil) // _ = rDoc.Build(rNode.Content[0], nil)
// //
@@ -522,8 +522,8 @@ biscuit:
// // create low level objects // // create low level objects
// var lDoc v3.SecurityRequirement // var lDoc v3.SecurityRequirement
// var rDoc v3.SecurityRequirement // var rDoc v3.SecurityRequirement
// _ = low.BuildModel(&lNode, &lDoc) // _ = low.BuildModel(lNode.Content[0], &lDoc)
// _ = low.BuildModel(&rNode, &rDoc) // _ = low.BuildModel(rNode.Content[0], &rDoc)
// _ = lDoc.Build(lNode.Content[0], nil) // _ = lDoc.Build(lNode.Content[0], nil)
// _ = rDoc.Build(rNode.Content[0], nil) // _ = rDoc.Build(rNode.Content[0], nil)
// //

View File

@@ -35,8 +35,8 @@ x-beer: tasty`
// create low level objects // create low level objects
var lDoc v2.SecurityScheme var lDoc v2.SecurityScheme
var rDoc v2.SecurityScheme var rDoc v2.SecurityScheme
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -64,8 +64,8 @@ x-beer: very tasty`
// create low level objects // create low level objects
var lDoc v2.SecurityScheme var lDoc v2.SecurityScheme
var rDoc v2.SecurityScheme var rDoc v2.SecurityScheme
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -95,8 +95,8 @@ scopes:
// create low level objects // create low level objects
var lDoc v2.SecurityScheme var lDoc v2.SecurityScheme
var rDoc v2.SecurityScheme var rDoc v2.SecurityScheme
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -124,8 +124,8 @@ scopes:
// create low level objects // create low level objects
var lDoc v2.SecurityScheme var lDoc v2.SecurityScheme
var rDoc v2.SecurityScheme var rDoc v2.SecurityScheme
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -153,8 +153,8 @@ func TestCompareSecuritySchemes_v2_ModifyScope(t *testing.T) {
// create low level objects // create low level objects
var lDoc v2.SecurityScheme var lDoc v2.SecurityScheme
var rDoc v2.SecurityScheme var rDoc v2.SecurityScheme
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -187,8 +187,8 @@ description: a thing`
// create low level objects // create low level objects
var lDoc v3.SecurityScheme var lDoc v3.SecurityScheme
var rDoc v3.SecurityScheme var rDoc v3.SecurityScheme
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -218,8 +218,8 @@ x-beer: cool`
// create low level objects // create low level objects
var lDoc v3.SecurityScheme var lDoc v3.SecurityScheme
var rDoc v3.SecurityScheme var rDoc v3.SecurityScheme
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -250,8 +250,8 @@ flows:
// create low level objects // create low level objects
var lDoc v3.SecurityScheme var lDoc v3.SecurityScheme
var rDoc v3.SecurityScheme var rDoc v3.SecurityScheme
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -278,8 +278,8 @@ flows:
// create low level objects // create low level objects
var lDoc v3.SecurityScheme var lDoc v3.SecurityScheme
var rDoc v3.SecurityScheme var rDoc v3.SecurityScheme
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
@@ -309,8 +309,8 @@ flows:
// create low level objects // create low level objects
var lDoc v3.SecurityScheme var lDoc v3.SecurityScheme
var rDoc v3.SecurityScheme var rDoc v3.SecurityScheme
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)

View File

@@ -4,16 +4,16 @@
package model package model
import ( import (
"github.com/pb33f/libopenapi/datamodel/low" "github.com/pb33f/libopenapi/datamodel/low"
v3 "github.com/pb33f/libopenapi/datamodel/low/v3" v3 "github.com/pb33f/libopenapi/datamodel/low/v3"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"testing" "testing"
) )
func TestCompareServers(t *testing.T) { func TestCompareServers(t *testing.T) {
left := `url: https://pb33f.io left := `url: https://pb33f.io
description: a server description: a server
variables: variables:
thing: thing:
@@ -22,7 +22,7 @@ variables:
- biccy - biccy
default: choccy` default: choccy`
right := `url: https://pb33f.io right := `url: https://pb33f.io
description: a server description: a server
variables: variables:
thing: thing:
@@ -31,26 +31,26 @@ variables:
- biccy - biccy
default: choccy` default: choccy`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Server var lDoc v3.Server
var rDoc v3.Server var rDoc v3.Server
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareServers(&lDoc, &rDoc) extChanges := CompareServers(&lDoc, &rDoc)
assert.Nil(t, extChanges) assert.Nil(t, extChanges)
} }
func TestCompareServers_Modified(t *testing.T) { func TestCompareServers_Modified(t *testing.T) {
left := `url: https://pb33f.io left := `url: https://pb33f.io
description: a server description: a server
variables: variables:
thing: thing:
@@ -59,7 +59,7 @@ variables:
- biccy - biccy
default: choccy` default: choccy`
right := `url: https://pb33f.io/hotness right := `url: https://pb33f.io/hotness
description: a server that is not description: a server that is not
variables: variables:
thing: thing:
@@ -68,26 +68,26 @@ variables:
- biccy - biccy
default: biccy` default: biccy`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Server var lDoc v3.Server
var rDoc v3.Server var rDoc v3.Server
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareServers(&lDoc, &rDoc) extChanges := CompareServers(&lDoc, &rDoc)
assert.Equal(t, 3, extChanges.TotalChanges()) assert.Equal(t, 3, extChanges.TotalChanges())
assert.Equal(t, 2, extChanges.TotalBreakingChanges()) assert.Equal(t, 2, extChanges.TotalBreakingChanges())
} }
func TestCompareServers_Added(t *testing.T) { func TestCompareServers_Added(t *testing.T) {
left := `url: https://pb33f.io left := `url: https://pb33f.io
variables: variables:
thing: thing:
enum: enum:
@@ -95,7 +95,7 @@ variables:
- biccy - biccy
default: choccy` default: choccy`
right := `url: https://pb33f.io right := `url: https://pb33f.io
description: a server description: a server
variables: variables:
thing: thing:
@@ -105,28 +105,28 @@ variables:
- tea - tea
default: choccy` default: choccy`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Server var lDoc v3.Server
var rDoc v3.Server var rDoc v3.Server
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareServers(&lDoc, &rDoc) extChanges := CompareServers(&lDoc, &rDoc)
assert.Equal(t, 2, extChanges.TotalChanges()) assert.Equal(t, 2, extChanges.TotalChanges())
assert.Equal(t, 0, extChanges.TotalBreakingChanges()) assert.Equal(t, 0, extChanges.TotalBreakingChanges())
assert.Equal(t, PropertyAdded, extChanges.Changes[0].ChangeType) assert.Equal(t, PropertyAdded, extChanges.Changes[0].ChangeType)
assert.Equal(t, ObjectAdded, extChanges.ServerVariableChanges["thing"].Changes[0].ChangeType) assert.Equal(t, ObjectAdded, extChanges.ServerVariableChanges["thing"].Changes[0].ChangeType)
} }
func TestCompareServers_Removed(t *testing.T) { func TestCompareServers_Removed(t *testing.T) {
left := `url: https://pb33f.io left := `url: https://pb33f.io
variables: variables:
thing: thing:
enum: enum:
@@ -134,7 +134,7 @@ variables:
- biccy - biccy
default: choccy` default: choccy`
right := `url: https://pb33f.io right := `url: https://pb33f.io
description: a server description: a server
variables: variables:
thing: thing:
@@ -144,22 +144,22 @@ variables:
- tea - tea
default: choccy` default: choccy`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc v3.Server var lDoc v3.Server
var rDoc v3.Server var rDoc v3.Server
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareServers(&rDoc, &lDoc) extChanges := CompareServers(&rDoc, &lDoc)
assert.Equal(t, 2, extChanges.TotalChanges()) assert.Equal(t, 2, extChanges.TotalChanges())
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
assert.Equal(t, PropertyRemoved, extChanges.Changes[0].ChangeType) assert.Equal(t, PropertyRemoved, extChanges.Changes[0].ChangeType)
assert.Equal(t, ObjectRemoved, extChanges.ServerVariableChanges["thing"].Changes[0].ChangeType) assert.Equal(t, ObjectRemoved, extChanges.ServerVariableChanges["thing"].Changes[0].ChangeType)
} }

View File

@@ -32,8 +32,8 @@ enum:
// create low level objects // create low level objects
var lDoc v3.ServerVariable var lDoc v3.ServerVariable
var rDoc v3.ServerVariable var rDoc v3.ServerVariable
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareServerVariables(&lDoc, &rDoc) extChanges := CompareServerVariables(&lDoc, &rDoc)
@@ -61,8 +61,8 @@ enum:
// create low level objects // create low level objects
var lDoc v3.ServerVariable var lDoc v3.ServerVariable
var rDoc v3.ServerVariable var rDoc v3.ServerVariable
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareServerVariables(&lDoc, &rDoc) extChanges := CompareServerVariables(&lDoc, &rDoc)
@@ -94,8 +94,8 @@ enum:
// create low level objects // create low level objects
var lDoc v3.ServerVariable var lDoc v3.ServerVariable
var rDoc v3.ServerVariable var rDoc v3.ServerVariable
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareServerVariables(&lDoc, &rDoc) extChanges := CompareServerVariables(&lDoc, &rDoc)
@@ -123,8 +123,8 @@ enum:
// create low level objects // create low level objects
var lDoc v3.ServerVariable var lDoc v3.ServerVariable
var rDoc v3.ServerVariable var rDoc v3.ServerVariable
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareServerVariables(&lDoc, &rDoc) extChanges := CompareServerVariables(&lDoc, &rDoc)
@@ -153,8 +153,8 @@ enum:
// create low level objects // create low level objects
var lDoc v3.ServerVariable var lDoc v3.ServerVariable
var rDoc v3.ServerVariable var rDoc v3.ServerVariable
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
// compare. // compare.
extChanges := CompareServerVariables(&rDoc, &lDoc) extChanges := CompareServerVariables(&rDoc, &lDoc)

View File

@@ -4,141 +4,141 @@
package model package model
import ( import (
"github.com/pb33f/libopenapi/datamodel/low" "github.com/pb33f/libopenapi/datamodel/low"
"github.com/pb33f/libopenapi/datamodel/low/base" "github.com/pb33f/libopenapi/datamodel/low/base"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"testing" "testing"
) )
func TestCompareXML_NameChanged(t *testing.T) { func TestCompareXML_NameChanged(t *testing.T) {
left := `name: xml thing left := `name: xml thing
namespace: something namespace: something
prefix: another prefix: another
attribute: true attribute: true
wrapped: true` wrapped: true`
right := `namespace: something right := `namespace: something
prefix: another prefix: another
name: changed xml thing name: changed xml thing
attribute: true attribute: true
wrapped: true` wrapped: true`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.XML var lDoc base.XML
var rDoc base.XML var rDoc base.XML
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareXML(&lDoc, &rDoc) extChanges := CompareXML(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, Modified, extChanges.Changes[0].ChangeType) assert.Equal(t, Modified, extChanges.Changes[0].ChangeType)
} }
func TestCompareXML_NameRemoved(t *testing.T) { func TestCompareXML_NameRemoved(t *testing.T) {
left := `name: xml thing left := `name: xml thing
namespace: something namespace: something
prefix: another prefix: another
attribute: true attribute: true
wrapped: true` wrapped: true`
right := `wrapped: true right := `wrapped: true
prefix: another prefix: another
attribute: true attribute: true
namespace: something` namespace: something`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.XML var lDoc base.XML
var rDoc base.XML var rDoc base.XML
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareXML(&lDoc, &rDoc) extChanges := CompareXML(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, PropertyRemoved, extChanges.Changes[0].ChangeType) assert.Equal(t, PropertyRemoved, extChanges.Changes[0].ChangeType)
assert.Equal(t, 1, extChanges.TotalBreakingChanges()) assert.Equal(t, 1, extChanges.TotalBreakingChanges())
} }
func TestCompareXML_ExtensionAdded(t *testing.T) { func TestCompareXML_ExtensionAdded(t *testing.T) {
left := `name: xml thing left := `name: xml thing
namespace: something namespace: something
prefix: another prefix: another
attribute: true attribute: true
wrapped: true` wrapped: true`
right := `name: xml thing right := `name: xml thing
namespace: something namespace: something
prefix: another prefix: another
attribute: true attribute: true
wrapped: true wrapped: true
x-coffee: time` x-coffee: time`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.XML var lDoc base.XML
var rDoc base.XML var rDoc base.XML
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareXML(&lDoc, &rDoc) extChanges := CompareXML(&lDoc, &rDoc)
assert.Equal(t, 1, extChanges.TotalChanges()) assert.Equal(t, 1, extChanges.TotalChanges())
assert.Equal(t, ObjectAdded, extChanges.ExtensionChanges.Changes[0].ChangeType) assert.Equal(t, ObjectAdded, extChanges.ExtensionChanges.Changes[0].ChangeType)
} }
func TestCompareXML_Identical(t *testing.T) { func TestCompareXML_Identical(t *testing.T) {
left := `name: xml thing left := `name: xml thing
namespace: something namespace: something
prefix: another prefix: another
attribute: true attribute: true
wrapped: true` wrapped: true`
right := `name: xml thing right := `name: xml thing
namespace: something namespace: something
prefix: another prefix: another
attribute: true attribute: true
wrapped: true` wrapped: true`
var lNode, rNode yaml.Node var lNode, rNode yaml.Node
_ = yaml.Unmarshal([]byte(left), &lNode) _ = yaml.Unmarshal([]byte(left), &lNode)
_ = yaml.Unmarshal([]byte(right), &rNode) _ = yaml.Unmarshal([]byte(right), &rNode)
// create low level objects // create low level objects
var lDoc base.XML var lDoc base.XML
var rDoc base.XML var rDoc base.XML
_ = low.BuildModel(&lNode, &lDoc) _ = low.BuildModel(lNode.Content[0], &lDoc)
_ = low.BuildModel(&rNode, &rDoc) _ = low.BuildModel(rNode.Content[0], &rDoc)
_ = lDoc.Build(lNode.Content[0], nil) _ = lDoc.Build(lNode.Content[0], nil)
_ = rDoc.Build(rNode.Content[0], nil) _ = rDoc.Build(rNode.Content[0], nil)
// compare. // compare.
extChanges := CompareXML(&lDoc, &rDoc) extChanges := CompareXML(&lDoc, &rDoc)
assert.Nil(t, extChanges) assert.Nil(t, extChanges)
} }