mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-09 04:20:17 +00:00
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:
@@ -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())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user