Skip to content

Commit 1795bb5

Browse files
committed
Refactored mock renderer types
makes more sense when using as an API. Signed-off-by: Quobix <dave@quobix.com>
1 parent 5faa24e commit 1795bb5

3 files changed

Lines changed: 268 additions & 268 deletions

File tree

renderer/mock_generator.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ const Schema = "Schema"
1818
type MockType int
1919

2020
const (
21-
MockJSON MockType = iota
22-
MockYAML
21+
JSON MockType = iota
22+
YAML
2323
)
2424

2525
// MockGenerator is used to generate mocks for high-level mockable structs or *base.Schema pointers.
@@ -144,7 +144,7 @@ func (mg *MockGenerator) GenerateMock(mock any, name string) ([]byte, error) {
144144

145145
func (mg *MockGenerator) renderMock(v any) []byte {
146146
switch {
147-
case mg.mockType == MockYAML:
147+
case mg.mockType == YAML:
148148
return mg.renderMockYAML(v)
149149
default:
150150
return mg.renderMockJSON(v)

renderer/mock_generator_examples_test.go

Lines changed: 79 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -4,125 +4,125 @@
44
package renderer
55

66
import (
7-
"fmt"
8-
"github.com/pb33f/libopenapi"
9-
"os"
7+
"fmt"
8+
"github.com/pb33f/libopenapi"
9+
"os"
1010
)
1111

1212
func ExampleMockGenerator_generateBurgerMock_yaml() {
1313

14-
// create a new YAML mock generator
15-
mg := NewMockGenerator(MockYAML)
14+
// create a new YAML mock generator
15+
mg := NewMockGenerator(YAML)
1616

17-
burgerShop, _ := os.ReadFile("../test_specs/burgershop.openapi.yaml")
17+
burgerShop, _ := os.ReadFile("../test_specs/burgershop.openapi.yaml")
1818

19-
// create a new document from specification and build a v3 model.
20-
document, _ := libopenapi.NewDocument(burgerShop)
21-
v3Model, _ := document.BuildV3Model()
19+
// create a new document from specification and build a v3 model.
20+
document, _ := libopenapi.NewDocument(burgerShop)
21+
v3Model, _ := document.BuildV3Model()
2222

23-
// create a mock of the Burger model
24-
burgerModel := v3Model.Model.Components.Schemas["Burger"]
25-
burger := burgerModel.Schema()
26-
mock, err := mg.GenerateMock(burger, "")
23+
// create a mock of the Burger model
24+
burgerModel := v3Model.Model.Components.Schemas["Burger"]
25+
burger := burgerModel.Schema()
26+
mock, err := mg.GenerateMock(burger, "")
2727

28-
if err != nil {
29-
panic(err)
30-
}
31-
fmt.Println(string(mock))
32-
// Output: name: Big Mac
33-
//numPatties: 2
28+
if err != nil {
29+
panic(err)
30+
}
31+
fmt.Println(string(mock))
32+
// Output: name: Big Mac
33+
//numPatties: 2
3434
}
3535

3636
func ExampleMockGenerator_generateFriesMock_json() {
3737

38-
// create a new YAML mock generator
39-
mg := NewMockGenerator(MockJSON)
38+
// create a new YAML mock generator
39+
mg := NewMockGenerator(JSON)
4040

41-
burgerShop, _ := os.ReadFile("../test_specs/burgershop.openapi.yaml")
41+
burgerShop, _ := os.ReadFile("../test_specs/burgershop.openapi.yaml")
4242

43-
// create a new document from specification and build a v3 model.
44-
document, _ := libopenapi.NewDocument(burgerShop)
45-
v3Model, _ := document.BuildV3Model()
43+
// create a new document from specification and build a v3 model.
44+
document, _ := libopenapi.NewDocument(burgerShop)
45+
v3Model, _ := document.BuildV3Model()
4646

47-
// create a mock of the Fries model
48-
friesModel := v3Model.Model.Components.Schemas["Fries"]
49-
fries := friesModel.Schema()
50-
mock, err := mg.GenerateMock(fries, "")
47+
// create a mock of the Fries model
48+
friesModel := v3Model.Model.Components.Schemas["Fries"]
49+
fries := friesModel.Schema()
50+
mock, err := mg.GenerateMock(fries, "")
5151

52-
if err != nil {
53-
panic(err)
54-
}
55-
fmt.Println(string(mock))
56-
// Output: {"favoriteDrink":{"drinkType":"coke","size":"M"},"potatoShape":"Crispy Shoestring"}
52+
if err != nil {
53+
panic(err)
54+
}
55+
fmt.Println(string(mock))
56+
// Output: {"favoriteDrink":{"drinkType":"coke","size":"M"},"potatoShape":"Crispy Shoestring"}
5757
}
5858

5959
func ExampleMockGenerator_generateRequestMock_json() {
6060

61-
// create a new YAML mock generator
62-
mg := NewMockGenerator(MockJSON)
61+
// create a new YAML mock generator
62+
mg := NewMockGenerator(JSON)
6363

64-
burgerShop, _ := os.ReadFile("../test_specs/burgershop.openapi.yaml")
64+
burgerShop, _ := os.ReadFile("../test_specs/burgershop.openapi.yaml")
6565

66-
// create a new document from specification and build a v3 model.
67-
document, _ := libopenapi.NewDocument(burgerShop)
68-
v3Model, _ := document.BuildV3Model()
66+
// create a new document from specification and build a v3 model.
67+
document, _ := libopenapi.NewDocument(burgerShop)
68+
v3Model, _ := document.BuildV3Model()
6969

70-
// create a mock of the burger request model, extracted from the operation directly.
71-
burgerRequestModel := v3Model.Model.Paths.PathItems["/burgers"].Post.RequestBody.Content["application/json"]
70+
// create a mock of the burger request model, extracted from the operation directly.
71+
burgerRequestModel := v3Model.Model.Paths.PathItems["/burgers"].Post.RequestBody.Content["application/json"]
7272

73-
// use the 'cakeBurger' example to generate a mock
74-
mock, err := mg.GenerateMock(burgerRequestModel, "cakeBurger")
73+
// use the 'cakeBurger' example to generate a mock
74+
mock, err := mg.GenerateMock(burgerRequestModel, "cakeBurger")
7575

76-
if err != nil {
77-
panic(err)
78-
}
79-
fmt.Println(string(mock))
80-
// Output: {"name":"Chocolate Cake Burger","numPatties":5}
76+
if err != nil {
77+
panic(err)
78+
}
79+
fmt.Println(string(mock))
80+
// Output: {"name":"Chocolate Cake Burger","numPatties":5}
8181
}
8282

8383
func ExampleMockGenerator_generateResponseMock_json() {
8484

85-
mg := NewMockGenerator(MockJSON)
86-
// create a new YAML mock generator
85+
mg := NewMockGenerator(JSON)
86+
// create a new YAML mock generator
8787

88-
burgerShop, _ := os.ReadFile("../test_specs/burgershop.openapi.yaml")
88+
burgerShop, _ := os.ReadFile("../test_specs/burgershop.openapi.yaml")
8989

90-
// create a new document from specification and build a v3 model.
91-
document, _ := libopenapi.NewDocument(burgerShop)
92-
v3Model, _ := document.BuildV3Model()
90+
// create a new document from specification and build a v3 model.
91+
document, _ := libopenapi.NewDocument(burgerShop)
92+
v3Model, _ := document.BuildV3Model()
9393

94-
// create a mock of the burger response model, extracted from the operation directly.
95-
burgerResponseModel := v3Model.Model.Paths.PathItems["/burgers"].Post.Responses.Codes["200"].Content["application/json"]
94+
// create a mock of the burger response model, extracted from the operation directly.
95+
burgerResponseModel := v3Model.Model.Paths.PathItems["/burgers"].Post.Responses.Codes["200"].Content["application/json"]
9696

97-
// use the 'filetOFish' example to generate a mock
98-
mock, err := mg.GenerateMock(burgerResponseModel, "filetOFish")
97+
// use the 'filetOFish' example to generate a mock
98+
mock, err := mg.GenerateMock(burgerResponseModel, "filetOFish")
9999

100-
if err != nil {
101-
panic(err)
102-
}
103-
fmt.Println(string(mock))
104-
// Output: {"name":"Filet-O-Fish","numPatties":1}
100+
if err != nil {
101+
panic(err)
102+
}
103+
fmt.Println(string(mock))
104+
// Output: {"name":"Filet-O-Fish","numPatties":1}
105105
}
106106

107107
func ExampleMockGenerator_generatePolymorphicMock_json() {
108108

109-
mg := NewMockGenerator(MockJSON)
110-
// create a new YAML mock generator
109+
mg := NewMockGenerator(JSON)
110+
// create a new YAML mock generator
111111

112-
burgerShop, _ := os.ReadFile("../test_specs/burgershop.openapi.yaml")
112+
burgerShop, _ := os.ReadFile("../test_specs/burgershop.openapi.yaml")
113113

114-
// create a new document from specification and build a v3 model.
115-
document, _ := libopenapi.NewDocument(burgerShop)
116-
v3Model, _ := document.BuildV3Model()
114+
// create a new document from specification and build a v3 model.
115+
document, _ := libopenapi.NewDocument(burgerShop)
116+
v3Model, _ := document.BuildV3Model()
117117

118-
// create a mock of the SomePayload component, which uses polymorphism (incorrectly)
119-
payloadModel := v3Model.Model.Components.Schemas["SomePayload"]
120-
payload := payloadModel.Schema()
121-
mock, err := mg.GenerateMock(payload, "")
118+
// create a mock of the SomePayload component, which uses polymorphism (incorrectly)
119+
payloadModel := v3Model.Model.Components.Schemas["SomePayload"]
120+
payload := payloadModel.Schema()
121+
mock, err := mg.GenerateMock(payload, "")
122122

123-
if err != nil {
124-
panic(err)
125-
}
126-
fmt.Println(string(mock))
127-
// Output: {"drinkType":"coke","size":"M"}
123+
if err != nil {
124+
panic(err)
125+
}
126+
fmt.Println(string(mock))
127+
// Output: {"drinkType":"coke","size":"M"}
128128
}

0 commit comments

Comments
 (0)