func (s *S) TestOneOf(c *gc.C) { sch := schema.OneOf(schema.Const("foo"), schema.Const(42)) out, err := sch.Coerce("foo", aPath) c.Assert(err, gc.IsNil) c.Assert(out, gc.Equals, "foo") out, err = sch.Coerce(42, aPath) c.Assert(err, gc.IsNil) c.Assert(out, gc.Equals, 42) out, err = sch.Coerce("bar", aPath) c.Assert(out, gc.IsNil) c.Assert(err, gc.ErrorMatches, `<path>: unexpected value "bar"`) }
v, err = mapC.Coerce(v, path) if err != nil { return } m := v.(map[string]interface{}) if _, ok := m["limit"]; !ok { m["limit"] = c.limit } return ifaceSchema.Coerce(m, path) } var ifaceSchema = schema.FieldMap( schema.Fields{ "interface": schema.String(), "limit": schema.OneOf(schema.Const(nil), schema.Int()), "scope": schema.OneOf(schema.Const(string(ScopeGlobal)), schema.Const(string(ScopeContainer))), "optional": schema.Bool(), }, schema.Defaults{ "scope": string(ScopeGlobal), "optional": false, }, ) var charmSchema = schema.FieldMap( schema.Fields{ "name": schema.String(), "summary": schema.String(), "description": schema.String(), "peers": schema.StringMap(ifaceExpander(int64(1))),