From 21a324d2d21e94c92b709654a9f6f80cfc37322e Mon Sep 17 00:00:00 2001
From: Martin Schmollinger <martin.schmollinger@reutlingen-university.de>
Date: Sun, 7 May 2023 22:20:53 +0200
Subject: [PATCH] Added some unit tests for handlers

---
 src/myaktion/handler/campaign_test.go | 19 +++++++++++++++++++
 src/myaktion/handler/health_test.go   | 23 +++++++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 src/myaktion/handler/campaign_test.go
 create mode 100644 src/myaktion/handler/health_test.go

diff --git a/src/myaktion/handler/campaign_test.go b/src/myaktion/handler/campaign_test.go
new file mode 100644
index 0000000..ef56393
--- /dev/null
+++ b/src/myaktion/handler/campaign_test.go
@@ -0,0 +1,19 @@
+package handler
+
+import (
+	"net/http"
+	"net/http/httptest"
+	"testing"
+)
+
+func TestCreateCampaignBadRequest(t *testing.T) {
+	rr := httptest.NewRecorder()
+	//No campaign in the body of the request -> nil
+	req := httptest.NewRequest(http.MethodPost, "/campaigns", nil)
+	handler := http.HandlerFunc(CreateCampaign)
+	handler.ServeHTTP(rr, req)
+
+	if status := rr.Code; status != http.StatusBadRequest {
+		t.Errorf("handler did not recognize bad request")
+	}
+}
diff --git a/src/myaktion/handler/health_test.go b/src/myaktion/handler/health_test.go
new file mode 100644
index 0000000..ac191cc
--- /dev/null
+++ b/src/myaktion/handler/health_test.go
@@ -0,0 +1,23 @@
+package handler
+
+import (
+	"net/http"
+	"net/http/httptest"
+	"testing"
+)
+
+func TestHealth(t *testing.T) {
+	rr := httptest.NewRecorder()
+	req := httptest.NewRequest("GET", "/health", nil)
+	handler := http.HandlerFunc(Health)
+	handler.ServeHTTP(rr, req)
+
+	if status := rr.Code; status != http.StatusOK {
+		t.Errorf("handler returned wrong status code: got %v want %v", status, http.StatusOK)
+	}
+
+	expected := `{"alive": true}`
+	if rr.Body.String() != expected {
+		t.Errorf("handler returned unexpected body: got %v want %v", rr.Body.String(), expected)
+	}
+}
-- 
GitLab