@@ -0,0 +1,45 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSpeciesTaskTemplateClientPaths(t *testing.T) {
|
||||
handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
switch {
|
||||
case r.Method == http.MethodPost && r.URL.Path == "/v1/gardens/3/species/2/task-templates":
|
||||
w.WriteHeader(http.StatusCreated)
|
||||
_, _ = w.Write([]byte(`{"task_template":{"id":7,"species_id":2,"title":"Schneiden"}}`))
|
||||
case r.Method == http.MethodGet && r.URL.Path == "/v1/gardens/3/species/2/task-templates":
|
||||
_, _ = w.Write([]byte(`{"task_templates":[{"id":7,"species_id":2,"title":"Schneiden"}]}`))
|
||||
case r.Method == http.MethodGet && r.URL.Path == "/v1/gardens/3/species/2/task-templates/7":
|
||||
_, _ = w.Write([]byte(`{"task_template":{"id":7,"species_id":2,"title":"Schneiden"}}`))
|
||||
case r.Method == http.MethodPatch && r.URL.Path == "/v1/gardens/3/species/2/task-templates/7":
|
||||
_, _ = w.Write([]byte(`{"task_template":{"id":7,"species_id":2,"title":"Schneiden","version":2}}`))
|
||||
case r.Method == http.MethodDelete && r.URL.Path == "/v1/gardens/3/species/2/task-templates/7":
|
||||
w.WriteHeader(http.StatusNoContent)
|
||||
default:
|
||||
http.NotFound(w, r)
|
||||
}
|
||||
})
|
||||
apiClient := newTestClient(t, handler)
|
||||
title := "Schneiden"
|
||||
if value, _, err := apiClient.CreateSpeciesTaskTemplate(context.Background(), 3, 2, SpeciesTaskTemplateInput{Title: &title}); err != nil || value.ID != 7 {
|
||||
t.Fatalf("create: %+v %v", value, err)
|
||||
}
|
||||
if values, _, err := apiClient.SpeciesTaskTemplates(context.Background(), 3, 2); err != nil || len(values) != 1 {
|
||||
t.Fatalf("list: %+v %v", values, err)
|
||||
}
|
||||
if _, _, err := apiClient.SpeciesTaskTemplate(context.Background(), 3, 2, 7); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if value, _, err := apiClient.UpdateSpeciesTaskTemplate(context.Background(), 3, 2, 7, SpeciesTaskTemplateInput{Title: &title}); err != nil || value.Version != 2 {
|
||||
t.Fatalf("update: %+v %v", value, err)
|
||||
}
|
||||
if _, err := apiClient.DeleteSpeciesTaskTemplate(context.Background(), 3, 2, 7); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user