From 18489f7a305193074ecb34f78cf050f34e23c69e Mon Sep 17 00:00:00 2001 From: Marco Franssen Date: Fri, 10 Aug 2018 14:44:51 +0200 Subject: [PATCH] Added test for config/all json response --- restful_server_test.go | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 restful_server_test.go diff --git a/restful_server_test.go b/restful_server_test.go new file mode 100644 index 00000000..b20f8b2f --- /dev/null +++ b/restful_server_test.go @@ -0,0 +1,52 @@ +package main + +import ( + "encoding/json" + "io/ioutil" + "net/http" + "net/http/httptest" + "reflect" + "strings" + "testing" + + "github.com/thrasher-/gocryptotrader/config" +) + +func loadConfig(t *testing.T) *config.Config { + cfg := config.GetConfig() + err := cfg.LoadConfig(strings.Replace(config.ConfigTestFile, "..", ".", 1)) + if err != nil { + t.Error("Test failed. GetCurrencyConfig LoadConfig error", err) + } + return cfg +} + +func makeHTTPGetRequest(t *testing.T, url string, response interface{}) *http.Response { + req := httptest.NewRequest("GET", "http://localhost:9050/config/all", nil) + w := httptest.NewRecorder() + + err := RESTfulJSONResponse(w, req, response) + if err != nil { + t.Error("Test failed. Failed to make response.", err) + } + return w.Result() +} + +// TestConfigAllJsonResponse test if config/all restful json response is valid +func TestConfigAllJsonResponse(t *testing.T) { + cfg := loadConfig(t) + resp := makeHTTPGetRequest(t, "http://localhost:9050/config/all", cfg) + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + t.Error("Test failed. Body not readable", err) + } + var responseConfig config.Config + jsonErr := json.Unmarshal(body, &responseConfig) + if jsonErr != nil { + t.Error("Test failed. Response not parseable as json", err) + } + + if reflect.DeepEqual(responseConfig, cfg) { + t.Error("Test failed. Json not equal to config") + } +}