// Required adds a "required" validation to the attribute. // See http://json-schema.org/latest/json-schema-validation.html#anchor61. func Required(names ...string) { var at *design.AttributeDefinition if a, ok := attributeDefinition(false); ok { at = a } else if mt, ok := mediaTypeDefinition(true); ok { at = mt.AttributeDefinition } else { return } if at.Type != nil && at.Type.Kind() != design.ObjectKind { incompatibleAttributeType("required", at.Type.Name(), "an object") } else { at.Validations = append(at.Validations, &dslengine.RequiredValidationDefinition{Names: names}) } }
codegen.TempCount = 0 }) Describe("ValidationChecker", func() { Context("given an attribute definition and validations", func() { var attType design.DataType var validations []dslengine.ValidationDefinition att := new(design.AttributeDefinition) target := "val" context := "context" var code string // generated code JustBeforeEach(func() { att.Type = attType att.Validations = validations code = codegen.RecursiveChecker(att, false, false, target, context, 1) }) Context("of enum", func() { BeforeEach(func() { attType = design.Integer enumVal := &dslengine.EnumValidationDefinition{ Values: []interface{}{1, 2, 3}, } validations = []dslengine.ValidationDefinition{enumVal} }) It("produces the validation go code", func() { Ω(code).Should(Equal(enumValCode)) })