-
-
Notifications
You must be signed in to change notification settings - Fork 29
/
curl_test.go
36 lines (28 loc) · 928 Bytes
/
curl_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package curl
import (
"bytes"
"io"
"net/http"
"net/url"
"testing"
)
func TestGetCommand(t *testing.T) {
form := url.Values{}
form.Add("key1", "val1")
form.Add("key2", "val2")
body := form.Encode()
req, _ := http.NewRequest(http.MethodPost, "https://www.google.com", io.NopCloser(bytes.NewBufferString(body)))
req.Header.Set("HEADER1", "HEADER_VAL1")
command, _ := GetCommand(req)
if command != "curl -X 'POST' -d 'key1=val1&key2=val2' -H 'Header1: HEADER_VAL1' 'https://www.google.com'" {
t.Fatal(command)
}
}
func TestGetCommand_json(t *testing.T) {
req, _ := http.NewRequest(http.MethodPut, "https://www.google.com?a=1&b=2", bytes.NewBufferString(`{"hello":"world"}`))
req.Header.Set("Content-Type", "application/json")
command, _ := GetCommand(req)
if command != `curl -X 'PUT' -d '{"hello":"world"}' -H 'Content-Type: application/json' 'https://www.google.com?a=1&b=2'` {
t.Fatal(command)
}
}