本文整理汇总了Golang中github.com/go-openapi/loads.Spec函数的典型用法代码示例。如果您正苦于以下问题:Golang Spec函数的具体用法?Golang Spec怎么用?Golang Spec使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Spec函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestSchemaValidation_AllOfProps
func TestSchemaValidation_AllOfProps(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "AllOfValidations"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
prop := gm.Properties[0]
if assertValidation(t, "\"meta\"", "m.Meta", prop) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("all_of_validations.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "m.validateMeta(formats", res)
assertInCode(t, "validate.MinLength(\"meta\"+\".\"+\"name\",", res)
assertInCode(t, "validate.MinimumInt(\"meta\"+\".\"+\"age\",", res)
assertInCode(t, "validate.MinItems(\"meta\"+\".\"+\"args\",", res)
assertInCode(t, "validate.MinItems(\"meta\"+\".\"+\"assoc\",", res)
assertInCode(t, "validate.MinItems(\"meta\"+\".\"+\"assoc\"+\".\"+strconv.Itoa(i),", res)
assertInCode(t, "validate.MinItems(\"meta\"+\".\"+\"assoc\"+\".\"+strconv.Itoa(i)+\".\"+strconv.Itoa(ii),", res)
assertInCode(t, "validate.MinLength(\"meta\"+\".\"+\"assoc\"+\".\"+strconv.Itoa(i)+\".\"+strconv.Itoa(ii)+\".\"+strconv.Itoa(iii),", res)
assertInCode(t, "validate.MinimumInt(\"meta\"+\".\"+\"opts\"+\".\"+k,", res)
assertInCode(t, "validate.MinimumInt(\"meta\"+\".\"+\"extOpts\"+\".\"+k+\".\"+kk+\".\"+kkk,", res)
assertInCode(t, "validate.MinLength(\"meta\"+\".\"+\"coords\"+\".\"+\"name\",", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
}
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:35,代码来源:schemavalidation_test.go
示例2: TestSchemaValidation_RefedAllOf
func TestSchemaValidation_RefedAllOf(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "RefedAllOfValidations"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) && assert.Len(t, gm.AllOf, 2) {
//prop := gm.AllOf[0]
//if assertValidation(t, "\"meta\"", "m.Meta", prop) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("all_of_validations.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "m.NamedString.Validate(formats)", res)
assertInCode(t, "m.NamedNumber.Validate(formats)", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
}
}
//}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:26,代码来源:schemavalidation_test.go
示例3: TestGenerateServer_Parameters
func TestGenerateServer_Parameters(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.discriminators.yml")
if assert.NoError(t, err) {
method, path, op, ok := analysis.New(specDoc.Spec()).OperationForName("modelOp")
if assert.True(t, ok) {
bldr := codeGenOpBuilder{
Name: "modelOp",
Method: method,
Path: path,
APIPackage: "restapi",
ModelsPackage: "models",
Principal: "",
Target: ".",
Doc: specDoc,
Analyzed: analysis.New(specDoc.Spec()),
Operation: *op,
Authed: false,
DefaultScheme: "http",
ExtraSchemas: make(map[string]GenSchema),
}
genOp, err := bldr.MakeOperation()
if assert.NoError(t, err) {
assert.True(t, genOp.Responses[200].Schema.IsBaseType)
var buf bytes.Buffer
err := parameterTemplate.Execute(&buf, genOp)
if assert.NoError(t, err) {
res := buf.String()
assertInCode(t, "Pet models.Pet", res)
assertInCode(t, "body, err := models.UnmarshalPet(r.Body, route.Consumer)", res)
assertInCode(t, "o.Pet = body", res)
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:35,代码来源:discriminators_test.go
示例4: TestSchemaValidation_NamedNestedMap
func TestSchemaValidation_NamedNestedMap(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "NamedNestedMap"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
if assertValidation(t, "", "m", gm.GenSchema) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("named_nested_map.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "for k := range m {", res)
assertInCode(t, "for kk := range m[k] {", res)
assertInCode(t, "for kkk := range m[k][kk] {", res)
assertInCode(t, "err := validate.MinimumInt(k+\".\"+kk+\".\"+kkk,", res)
assertInCode(t, "err := validate.MaximumInt(k+\".\"+kk+\".\"+kkk,", res)
assertInCode(t, "err := validate.MultipleOf(k+\".\"+kk+\".\"+kkk,", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
}
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:29,代码来源:schemavalidation_test.go
示例5: TestEnum_MapThing
func TestEnum_MapThing(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.enums.yml")
if assert.NoError(t, err) {
definitions := specDoc.Spec().Definitions
k := "MapThing"
schema := definitions[k]
genModel, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, genModel)
if assert.NoError(t, err) {
ff, err := formatGoFile("map_thing.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(ff)
assertInCode(t, "var mapThingEnum []interface{}", res)
assertInCode(t, k+") validateMapThingEnum(path, location string, value MapThing)", res)
assertInCode(t, "m.validateMapThingEnum(\"\", \"body\", m)", res)
assertInCode(t, "var mapThingValueEnum []interface{}", res)
assertInCode(t, k+") validateMapThingValueEnum(path, location string, value string)", res)
assertInCode(t, "m.validateMapThingValueEnum(k, \"body\", *m[k])", res)
} else {
fmt.Println(buf.String())
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:27,代码来源:enum_test.go
示例6: TestEnum_NewPrototype
func TestEnum_NewPrototype(t *testing.T) {
// ensure that the enum validation for the anonymous object under the delegate property
// is rendered.
specDoc, err := loads.Spec("../fixtures/codegen/todolist.enums.yml")
if assert.NoError(t, err) {
definitions := specDoc.Spec().Definitions
k := "NewPrototype"
schema := definitions[k]
genModel, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, genModel)
if assert.NoError(t, err) {
ff, err := formatGoFile("object_thing.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(ff)
assertInCode(t, "ActivatingUser *NewPrototypeActivatingUser `json:\"activating_user,omitempty\"`", res)
assertInCode(t, "Delegate *NewPrototypeDelegate `json:\"delegate\"`", res)
assertInCode(t, "Role *string `json:\"role\"`", res)
assertInCode(t, "var newPrototypeTypeRolePropEnum []interface{}", res)
assertInCode(t, "var newPrototypeDelegateTypeKindPropEnum []interface{}", res)
assertInCode(t, "m.validateDelegate(formats)", res)
assertInCode(t, "m.validateRole(formats)", res)
assertInCode(t, "m.validateActivatingUser(formats)", res)
assertInCode(t, "m.Delegate.Validate(formats)", res)
assertInCode(t, "m.ActivatingUser.Validate(formats)", res)
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:31,代码来源:enum_test.go
示例7: TestEnum_SliceAndAdditionalItemsThing
func TestEnum_SliceAndAdditionalItemsThing(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.enums.yml")
if assert.NoError(t, err) {
definitions := specDoc.Spec().Definitions
k := "SliceAndAdditionalItemsThing"
schema := definitions[k]
genModel, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, genModel)
if assert.NoError(t, err) {
ff, err := formatGoFile("slice_and_additional_items_thing.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(ff)
assertInCode(t, "var sliceAndAdditionalItemsThingEnum []interface{}", res)
assertInCode(t, k+") validateSliceAndAdditionalItemsThingEnum(path, location string, value SliceAndAdditionalItemsThing)", res)
//assertInCode(t, "m.validateSliceAndAdditionalItemsThingEnum(\"\", \"body\", m)", res)
assertInCode(t, "var sliceAndAdditionalItemsThingTypeP0PropEnum []interface{}", res)
assertInCode(t, k+") validateP0Enum(path, location string, value string)", res)
assertInCode(t, "m.validateP0Enum(\"0\", \"body\", *m.P0)", res)
assertInCode(t, "var sliceAndAdditionalItemsThingItemsEnum []interface{}", res)
assertInCode(t, k+") validateSliceAndAdditionalItemsThingItemsEnum(path, location string, value float32)", res)
assertInCode(t, "m.validateSliceAndAdditionalItemsThingItemsEnum(strconv.Itoa(i+1), \"body\", m.SliceAndAdditionalItemsThingItems[i])", res)
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:28,代码来源:enum_test.go
示例8: TestSchemaValidation_NestedMapPropsComplex
func TestSchemaValidation_NestedMapPropsComplex(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "NestedMapComplexValidations"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
prop := gm.Properties[0]
if assertValidation(t, "\"meta\"", "m.Meta", prop) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("nested_map_complex_validations.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "m.validateMeta(formats", res)
assertInCode(t, "for k := range m.Meta {", res)
assertInCode(t, "for kk := range m.Meta[k] {", res)
assertInCode(t, "for kkk := range m.Meta[k][kk] {", res)
assertInCode(t, "val.Validate(formats)", res)
assertInCode(t, "err := validate.MinLength(\"name\",", res)
assertInCode(t, "err := validate.MaxLength(\"name\",", res)
assertInCode(t, "err := validate.Pattern(\"name\",", res)
assertInCode(t, "err := validate.MinimumInt(\"age\",", res)
assertInCode(t, "err := validate.MaximumInt(\"age\",", res)
assertInCode(t, "err := validate.MultipleOf(\"age\",", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
}
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:35,代码来源:schemavalidation_test.go
示例9: TestSchemaValidation_SimpleZeroAllowed
func TestSchemaValidation_SimpleZeroAllowed(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "SimpleZeroAllowed"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("simple_zero_allowed.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "swag.IsZero(m.ID)", res)
assertInCode(t, "validate.Required(\"name\", \"body\", m.Name)", res)
assertInCode(t, "validate.MinLength(\"id\", \"body\", string(m.ID), 2)", res)
assertInCode(t, "validate.Required(\"urls\", \"body\", m.Urls)", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:26,代码来源:schemavalidation_test.go
示例10: TestSchemaValidation_ArrayAdditionalProps
func TestSchemaValidation_ArrayAdditionalProps(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "ArrayAdditionalValidations"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
prop := gm.Properties[0]
if assertValidation(t, "\"args\"", "m.Args", prop) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("array_additional_validations.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "m.validateArgs(formats", res)
assertInCode(t, "err := validate.Required(\"P0\",", res)
assertInCode(t, "err := validate.MinLength(\"P0\",", res)
assertInCode(t, "err := validate.MaxLength(\"P0\",", res)
assertInCode(t, "err := validate.Pattern(\"P0\",", res)
assertInCode(t, "err := validate.Required(\"P1\",", res)
assertInCode(t, "err := validate.Minimum(\"P1\",", res)
assertInCode(t, "err := validate.Maximum(\"P1\",", res)
assertInCode(t, "err := validate.MultipleOf(\"P1\",", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
assertInCode(t, "m.ArrayAdditionalValidationsArgsTuple0Items[i]", res)
}
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:34,代码来源:schemavalidation_test.go
示例11: TestSchemaValidation_RequiredProps
func TestSchemaValidation_RequiredProps(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "RequiredProps"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
assert.Len(t, gm.Properties, 6)
for _, p := range gm.Properties {
if assert.True(t, p.Required) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("required_props.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "validate"+swag.ToGoName(p.Name), res)
assertInCode(t, "err := validate.Required", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
}
}
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:28,代码来源:schemavalidation_test.go
示例12: TestSchemaValidation_NamedNestedArray
func TestSchemaValidation_NamedNestedArray(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "NamedNestedArray"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
if assertValidation(t, "", "m", gm.GenSchema) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("named_nested_array.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "iNamedNestedArraySize := int64(len(m))", res)
assertInCode(t, "iiNamedNestedArraySize := int64(len(m[i]))", res)
assertInCode(t, "iiiNamedNestedArraySize := int64(len(m[i][ii]))", res)
assertInCode(t, "err := validate.MinItems(\"\"", res)
assertInCode(t, "err := validate.MaxItems(\"\"", res)
assertInCode(t, "err := validate.MinItems(strconv.Itoa(i),", res)
assertInCode(t, "err := validate.MaxItems(strconv.Itoa(i),", res)
assertInCode(t, "err := validate.MinItems(strconv.Itoa(i)+\".\"+strconv.Itoa(ii),", res)
assertInCode(t, "err := validate.MaxItems(strconv.Itoa(i)+\".\"+strconv.Itoa(ii),", res)
assertInCode(t, "err := validate.MinLength(strconv.Itoa(i)+\".\"+strconv.Itoa(ii)+\".\"+strconv.Itoa(iii),", res)
assertInCode(t, "err := validate.MaxLength(strconv.Itoa(i)+\".\"+strconv.Itoa(ii)+\".\"+strconv.Itoa(iii),", res)
assertInCode(t, "err := validate.Pattern(strconv.Itoa(i)+\".\"+strconv.Itoa(ii)+\".\"+strconv.Itoa(iii),", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
}
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:35,代码来源:schemavalidation_test.go
示例13: TestSchemaValidation_NamedArrayAdditional
func TestSchemaValidation_NamedArrayAdditional(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "NamedArrayAdditional"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
if assertValidation(t, "", "m", gm.GenSchema) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("named_array_additional.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, k+") validateP0(formats", res)
assertInCode(t, k+") validateP1(formats", res)
assertInCode(t, "err := validate.Required(\"0\",", res)
assertInCode(t, "err := validate.MinLength(\"0\",", res)
assertInCode(t, "err := validate.MaxLength(\"0\",", res)
assertInCode(t, "err := validate.Pattern(\"0\",", res)
assertInCode(t, "err := validate.Required(\"1\",", res)
assertInCode(t, "err := validate.Minimum(\"1\",", res)
assertInCode(t, "err := validate.Maximum(\"1\",", res)
assertInCode(t, "err := validate.MultipleOf(\"1\",", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
assertInCode(t, "m.NamedArrayAdditionalItems[i]", res)
}
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:35,代码来源:schemavalidation_test.go
示例14: TestSchemaValidation_NumberProps
func TestSchemaValidation_NumberProps(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "NumberValidations"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
prop := gm.Properties[0]
if assertValidation(t, "\"age\"", "m.Age", prop) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("number_validations.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "m.validateAge(formats", res)
assertInCode(t, "err := validate.MinimumInt(\"age\",", res)
assertInCode(t, "err := validate.MaximumInt(\"age\",", res)
assertInCode(t, "err := validate.MultipleOf(\"age\",", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
}
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:28,代码来源:schemavalidation_test.go
示例15: TestSchemaValidation_ArrayProps
func TestSchemaValidation_ArrayProps(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "ArrayValidations"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
prop := gm.Properties[0]
if assertValidation(t, "\"tags\"", "m.Tags", prop) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("array_validations.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "m.validateTags(formats", res)
assertInCode(t, "err := validate.MinItems(\"tags\"", res)
assertInCode(t, "err := validate.MaxItems(\"tags\"", res)
assertInCode(t, "err := validate.MinLength(\"tags\"+\".\"+strconv.Itoa(i),", res)
assertInCode(t, "err := validate.MaxLength(\"tags\"+\".\"+strconv.Itoa(i),", res)
assertInCode(t, "err := validate.Pattern(\"tags\"+\".\"+strconv.Itoa(i),", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
}
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:30,代码来源:schemavalidation_test.go
示例16: TestSchemaValidation_Pet
func TestSchemaValidation_Pet(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "Pet"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("pet.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "swag.IsZero(m.Status)", res)
assertInCode(t, "swag.IsZero(m.Tags)", res)
assertInCode(t, "validate.Required(\"name\", \"body\", m.Name)", res)
assertInCode(t, "validate.Required(\"photoUrls\", \"body\", m.PhotoUrls)", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:25,代码来源:schemavalidation_test.go
示例17: TestSchemaValidation_UpdateOrg
func TestSchemaValidation_UpdateOrg(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "UpdateOrg"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("pet.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "swag.IsZero(m.TagExpiration)", res)
assertInCode(t, "validate.MinimumInt(\"tag_expiration\", \"body\", int64(*m.TagExpiration)", res)
assertInCode(t, "validate.MaximumInt(\"tag_expiration\", \"body\", int64(*m.TagExpiration)", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
} else {
fmt.Println(buf.String())
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:26,代码来源:schemavalidation_test.go
示例18: opBuilder
func opBuilder(name, fname string) (codeGenOpBuilder, error) {
if fname == "" {
fname = "../fixtures/codegen/todolist.simple.yml"
}
specDoc, err := loads.Spec(fname)
if err != nil {
return codeGenOpBuilder{}, err
}
analyzed := analysis.New(specDoc.Spec())
method, path, op, ok := analyzed.OperationForName(name)
if !ok {
return codeGenOpBuilder{}, errors.New("No operation could be found for " + name)
}
return codeGenOpBuilder{
Name: name,
Method: method,
Path: path,
APIPackage: "restapi",
ModelsPackage: "models",
Principal: "models.User",
Target: ".",
Operation: *op,
Doc: specDoc,
Analyzed: analyzed,
Authed: false,
ExtraSchemas: make(map[string]GenSchema),
}, nil
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:31,代码来源:operation_test.go
示例19: TestGenerateModel_DiscriminatorSlices
func TestGenerateModel_DiscriminatorSlices(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.discriminators.yml")
if assert.NoError(t, err) {
definitions := specDoc.Spec().Definitions
k := "Kennel"
schema := definitions[k]
genModel, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
assert.True(t, genModel.HasBaseType)
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, genModel)
if assert.NoError(t, err) {
b, err := formatGoFile("has_discriminator.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(b)
assertInCode(t, "type Kennel struct {", res)
assertInCode(t, "ID int64 `json:\"id,omitempty\"`", res)
assertInCode(t, "Pets []Pet `json:\"pets\"`", res)
assertInCode(t, "if err := m.Pets[i].Validate(formats); err != nil {", res)
assertInCode(t, "m.validatePet", res)
} else {
fmt.Println(buf.String())
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:27,代码来源:discriminators_test.go
示例20: TestGenerateModel_Bitbucket_Repository
func TestGenerateModel_Bitbucket_Repository(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/bitbucket.json")
if assert.NoError(t, err) {
definitions := specDoc.Spec().Definitions
k := "repository"
schema := definitions[k]
genModel, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
assert.True(t, genModel.IsNullable)
for _, gm := range genModel.AllOf {
for _, p := range gm.Properties {
if p.Name == "parent" {
assert.True(t, p.IsNullable)
}
}
}
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, genModel)
if assert.NoError(t, err) {
b, err := formatGoFile("repository.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(b)
assertInCode(t, "Parent *Repository", res)
assertNotInCode(t, "Parent Repository", res)
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:29,代码来源:discriminators_test.go
注:本文中的github.com/go-openapi/loads.Spec函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论