From 013cd4d6372587f43bc14d83eb225c0252eeddf6 Mon Sep 17 00:00:00 2001 From: pancho horrillo Date: Thu, 3 Oct 2019 18:22:18 +0200 Subject: [PATCH] Add internal/client/route_remove{,_test}.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Héctor Hurtado --- internal/client/route_remove.go | 10 +++++++ internal/client/route_remove_test.go | 41 ++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 internal/client/route_remove.go create mode 100644 internal/client/route_remove_test.go diff --git a/internal/client/route_remove.go b/internal/client/route_remove.go new file mode 100644 index 0000000..fc53a5a --- /dev/null +++ b/internal/client/route_remove.go @@ -0,0 +1,10 @@ +package client + +import ( + "github.com/BBVA/kapow/internal/http" +) + +func RemoveRoute(host, id string) error { + url := host + "/routes/" + id + return http.Delete(url, nil, nil) +} diff --git a/internal/client/route_remove_test.go b/internal/client/route_remove_test.go new file mode 100644 index 0000000..6c85b83 --- /dev/null +++ b/internal/client/route_remove_test.go @@ -0,0 +1,41 @@ +package client + +import ( + "net/http" + "testing" + + gock "gopkg.in/h2non/gock.v1" +) + +func TestRemoveRouteExistent(t *testing.T) { + const ( + host = "http://localhost:8080" + routeID = "ROUTE_ID_OLDER_BUT_IT_CHECKS_OUT" + ) + + defer gock.Off() + gock.New(host).Delete("/routes/" + routeID).Reply(http.StatusNoContent) + + err := RemoveRoute(host, routeID) + if err != nil { + t.Errorf("unexpected error: ‘%s’", err) + } +} + +func TestRemoveRouteNonExistent(t *testing.T) { + const ( + host = "http://localhost:8080" + routeID = "ROUTE_THIS_ONE_WONT_WORK_BUDDY" + ) + expected := http.StatusText(http.StatusNotFound) + + defer gock.Off() + gock.New(host).Delete("/routes/" + routeID).Reply(http.StatusNotFound) + + err := RemoveRoute(host, routeID) + if err == nil { + t.Errorf("error not reported for nonexistent route") + } else if err.Error() != expected { + t.Errorf("error mismatch: expected ‘%s’, got ‘%s’", expected, err) + } +}