Browse Source

Added BodyToString and fixed mistake

Piotr Czajkowski 4 years ago
parent
commit
a9e23d4512
2 changed files with 23 additions and 14 deletions
  1. 13 0
      rest.go
  2. 10 14
      rest_test.go

+ 13 - 0
rest.go

@@ -1,6 +1,7 @@
 package rest
 
 import (
+	"bytes"
 	"encoding/json"
 	"fmt"
 	"io"
@@ -29,3 +30,15 @@ func GET(url string) (io.ReadCloser, error) {
 
 	return resp.Body, nil
 }
+
+// BodyToString returns string read from given Body.
+func BodyToString(data io.ReadCloser) (string, error) {
+	var buffer bytes.Buffer
+
+	_, err := buffer.ReadFrom(data)
+	if err != nil {
+		return "", err
+	}
+
+	return buffer.String(), nil
+}

+ 10 - 14
rest_test.go

@@ -62,7 +62,7 @@ func fakeServer(statusCode int, data string) *httptest.Server {
 	return httptest.NewServer(http.HandlerFunc(function))
 }
 
-func TestGET(t *testing.T) {
+func TestGETBodyToString(t *testing.T) {
 	expected := "Some text"
 	server := fakeServer(http.StatusOK, expected)
 	defer server.Close()
@@ -77,19 +77,17 @@ func TestGET(t *testing.T) {
 		t.Error(err)
 	}
 
-	result, errReading := ioutil.ReadAll(data)
+	result, errReading := BodyToString(data)
 	if errReading != nil {
-		t.Error(err)
+		t.Error(errReading)
 	}
 
-	resultString := string(result)
-
-	if expected != resultString {
-		t.Errorf("Wrong result, %v", resultString)
+	if expected != result {
+		t.Errorf("Wrong result, %v", result)
 	}
 }
 
-func TestGET404(t *testing.T) {
+func TestGETBodyToString404(t *testing.T) {
 	expected := "Some text"
 	server := fakeServer(http.StatusNotFound, expected)
 	defer server.Close()
@@ -104,15 +102,13 @@ func TestGET404(t *testing.T) {
 		t.Error("There should be an error!")
 	}
 
-	result, errReading := ioutil.ReadAll(data)
+	result, errReading := BodyToString(data)
 	if errReading != nil {
-		t.Error(err)
+		t.Error(errReading)
 	}
 
-	resultString := string(result)
-
-	if expected != resultString {
-		t.Errorf("Wrong result, %v", resultString)
+	if expected != result {
+		t.Errorf("Wrong result, %v", result)
 	}
 }