package restful import ( "testing" "time" ) func TestRouteBuilder_PathParameter(t *testing.T) { p := &Parameter{&ParameterData{Name: "name", Description: "desc"}} p.AllowMultiple(true) p.DataType("int") p.Required(true) values := map[string]string{"a": "b"} p.AllowableValues(values) p.bePath() b := new(RouteBuilder) b.function = dummy b.Param(p) r := b.Build() if !r.ParameterDocs[0].Data().AllowMultiple { t.Error("AllowMultiple invalid") } if r.ParameterDocs[0].Data().DataType != "int" { t.Error("dataType invalid") } if !r.ParameterDocs[0].Data().Required { t.Error("required invalid") } if r.ParameterDocs[0].Data().Kind != PathParameterKind { t.Error("kind invalid") } if r.ParameterDocs[0].Data().AllowableValues["a"] != "b" { t.Error("allowableValues invalid") } if b.ParameterNamed("name") == nil { t.Error("access to parameter failed") } } func TestRouteBuilder(t *testing.T) { json := "application/json" b := new(RouteBuilder) b.To(dummy) b.Path("/routes").Method("HEAD").Consumes(json).Produces(json).Metadata("test", "test-value").DefaultReturns("default", time.Now()) r := b.Build() if r.Path != "/routes" { t.Error("path invalid") } if r.Produces[0] != json { t.Error("produces invalid") } if r.Consumes[0] != json { t.Error("consumes invalid") } if r.Operation != "dummy" { t.Error("Operation not set") } if r.Metadata["test"] != "test-value" { t.Errorf("Metadata not set") } if _, ok := r.ResponseErrors[0]; !ok { t.Fatal("expected default response") } } func TestAnonymousFuncNaming(t *testing.T) { f1 := func() {} f2 := func() {} if got, want := nameOfFunction(f1), "func1"; got != want { t.Errorf("got %v want %v", got, want) } if got, want := nameOfFunction(f2), "func2"; got != want { t.Errorf("got %v want %v", got, want) } }