MCPcopy Index your code
hub / github.com/oapi-codegen/oapi-codegen / TestRemoteExternalReference

Function TestRemoteExternalReference

pkg/codegen/codegen_test.go:211–270  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

209}
210
211func TestRemoteExternalReference(t *testing.T) {
212 if testing.Short() {
213 t.Skip("Skipping test that interacts with the network")
214 }
215
216 packageName := "api"
217 opts := Configuration{
218 PackageName: packageName,
219 Generate: GenerateOptions{
220 Models: true,
221 },
222 ImportMapping: map[string]string{
223 remoteRefFile: remoteRefImport,
224 },
225 }
226 spec := "test_specs/remote-external-reference.yaml"
227 swagger, err := util.LoadSwagger(spec)
228 require.NoError(t, err)
229
230 // Run our code generation:
231 code, err := Generate(swagger, opts)
232 assert.NoError(t, err)
233 assert.NotEmpty(t, code)
234
235 // Check that we have valid (formattable) code:
236 _, err = format.Source([]byte(code))
237 assert.NoError(t, err)
238
239 // Check that we have a package:
240 assert.Contains(t, code, "package api")
241
242 // Check import
243 assert.Contains(t, code, `externalRef0 "github.com/oapi-codegen/oapi-codegen/v2/examples/petstore-expanded"`)
244
245 // Check generated oneOf structure:
246 assert.Contains(t, code, `
247// ExampleSchema_Item defines model for ExampleSchema.Item.
248type ExampleSchema_Item struct {
249 union json.RawMessage
250}
251`)
252
253 // Check generated oneOf structure As method:
254 assert.Contains(t, code, `
255// AsExternalRef0NewPet returns the union data inside the ExampleSchema_Item as a externalRef0.NewPet
256func (t ExampleSchema_Item) AsExternalRef0NewPet() (externalRef0.NewPet, error) {
257`)
258
259 // Check generated oneOf structure From method:
260 assert.Contains(t, code, `
261// FromExternalRef0NewPet overwrites any union data inside the ExampleSchema_Item as the provided externalRef0.NewPet
262func (t *ExampleSchema_Item) FromExternalRef0NewPet(v externalRef0.NewPet) error {
263`)
264
265 // Check generated oneOf structure Merge method:
266 assert.Contains(t, code, `
267// FromExternalRef0NewPet overwrites any union data inside the ExampleSchema_Item as the provided externalRef0.NewPet
268func (t *ExampleSchema_Item) FromExternalRef0NewPet(v externalRef0.NewPet) error {

Callers

nothing calls this directly

Calls 2

LoadSwaggerFunction · 0.92
GenerateFunction · 0.85

Tested by

no test coverage detected