Files
gocryptotrader/exchanges/mock/common_test.go
2019-08-23 21:59:01 +10:00

141 lines
3.2 KiB
Go

package mock
import (
"encoding/json"
"net/url"
"testing"
)
func TestMatchURLVals(t *testing.T) {
testVal, testVal2, testVal3, emptyVal := url.Values{}, url.Values{}, url.Values{}, url.Values{}
testVal.Add("test", "test")
testVal2.Add("test2", "test2")
testVal3.Add("test", "diferentValString")
nonceVal1, nonceVal2 := url.Values{}, url.Values{}
nonceVal1.Add("nonce", "012349723587")
nonceVal2.Add("nonce", "9327373874")
var expected = false
received := MatchURLVals(testVal, emptyVal)
if received != expected {
t.Errorf("Test Failed - MatchURLVals error expected %v received %v",
expected,
received)
}
received = MatchURLVals(emptyVal, testVal)
if received != expected {
t.Errorf("Test Failed - MatchURLVals error expected %v received %v",
expected,
received)
}
received = MatchURLVals(testVal, testVal2)
if received != expected {
t.Errorf("Test Failed - MatchURLVals error expected %v received %v",
expected,
received)
}
received = MatchURLVals(testVal2, testVal)
if received != expected {
t.Errorf("Test Failed - MatchURLVals error expected %v received %v",
expected,
received)
}
received = MatchURLVals(testVal, testVal3)
if received != expected {
t.Errorf("Test Failed - MatchURLVals error expected %v received %v",
expected,
received)
}
received = MatchURLVals(nonceVal1, testVal2)
if received != expected {
t.Errorf("Test Failed - MatchURLVals error expected %v received %v",
expected,
received)
}
expected = true
received = MatchURLVals(emptyVal, emptyVal)
if received != expected {
t.Errorf("Test Failed - MatchURLVals error expected %v received %v",
expected,
received)
}
received = MatchURLVals(testVal, testVal)
if received != expected {
t.Errorf("Test Failed - MatchURLVals error expected %v received %v",
expected,
received)
}
received = MatchURLVals(nonceVal1, nonceVal2)
if received != expected {
t.Errorf("Test Failed - MatchURLVals error expected %v received %v",
expected,
received)
}
}
func TestDeriveURLValsFromJSON(t *testing.T) {
test1 := struct {
Things []string `json:"things"`
Data struct {
Numbers []int `json:"numbers"`
Number float64 `json:"number"`
SomeString string `json:"somestring"`
} `json:"data"`
}{
Things: []string{"hello", "world"},
Data: struct {
Numbers []int `json:"numbers"`
Number float64 `json:"number"`
SomeString string `json:"somestring"`
}{
Numbers: []int{1, 3, 3, 7},
Number: 3.14,
SomeString: "hello, peoples",
},
}
payload, err := json.Marshal(test1)
if err != nil {
t.Error("Test Failed - marshal error", err)
}
_, err = DeriveURLValsFromJSONMap(payload)
if err != nil {
t.Error("Test Failed - DeriveURLValsFromJSON error", err)
}
test2 := map[string]string{
"val": "1",
"val2": "2",
"val3": "3",
"val4": "4",
"val5": "5",
"val6": "6",
"val7": "7",
}
payload, err = json.Marshal(test2)
if err != nil {
t.Error("Test Failed - marshal error", err)
}
vals, err := DeriveURLValsFromJSONMap(payload)
if err != nil {
t.Error("Test Failed - DeriveURLValsFromJSON error", err)
}
if vals["val"][0] != "1" {
t.Error("Test Failed - DeriveURLValsFromJSON unexpected value",
vals["val"][0])
}
}