Sfoglia il codice sorgente

Add test for network

tags/v2.0.0-rc1
9seconds 5 anni fa
parent
commit
155a97c25d
1 ha cambiato i file con 91 aggiunte e 0 eliminazioni
  1. 91
    0
      network/network_test.go

+ 91
- 0
network/network_test.go Vedi File

@@ -0,0 +1,91 @@
1
+package network_test
2
+
3
+import (
4
+	"encoding/json"
5
+	"io"
6
+	"net/http"
7
+	"testing"
8
+	"time"
9
+
10
+	"github.com/9seconds/mtg/v2/network"
11
+	"github.com/stretchr/testify/suite"
12
+)
13
+
14
+type NetworkTestSuite struct {
15
+	suite.Suite
16
+	HTTPServerTestSuite
17
+
18
+	dialer network.Dialer
19
+}
20
+
21
+func (suite *NetworkTestSuite) SetupTest() {
22
+	dialer, err := network.NewDefaultDialer(0, 0)
23
+	suite.NoError(err)
24
+
25
+	suite.dialer = dialer
26
+}
27
+
28
+func (suite *NetworkTestSuite) TestLocalHTTPRequest() {
29
+	ntw, err := network.NewNetwork(suite.dialer, "itsme", "1.1.1.1", 0)
30
+	suite.NoError(err)
31
+
32
+	client := ntw.MakeHTTPClient(nil)
33
+
34
+	resp, err := client.Get(suite.httpServer.URL + "/headers") // nolint: noctx
35
+	suite.NoError(err)
36
+
37
+	defer resp.Body.Close()
38
+
39
+	data, err := io.ReadAll(resp.Body)
40
+	suite.NoError(err)
41
+	suite.Equal(http.StatusOK, resp.StatusCode)
42
+
43
+	jsonStruct := struct {
44
+		Headers struct {
45
+			UserAgent []string `json:"User-Agent"`
46
+		} `json:"headers"`
47
+	}{}
48
+
49
+	suite.NoError(json.Unmarshal(data, &jsonStruct))
50
+	suite.Equal([]string{"itsme"}, jsonStruct.Headers.UserAgent)
51
+}
52
+
53
+func (suite *NetworkTestSuite) TestRealHTTPRequest() {
54
+	ntw, err := network.NewNetwork(suite.dialer, "itsme", "1.1.1.1", 0)
55
+	suite.NoError(err)
56
+
57
+	client := ntw.MakeHTTPClient(nil)
58
+
59
+	resp, err := client.Get("https://httpbin.org/headers") // nolint: noctx
60
+	suite.NoError(err)
61
+
62
+	defer resp.Body.Close()
63
+
64
+	data, err := io.ReadAll(resp.Body)
65
+	suite.NoError(err)
66
+	suite.Equal(http.StatusOK, resp.StatusCode)
67
+
68
+	jsonStruct := struct {
69
+		Headers struct {
70
+			UserAgent string `json:"User-Agent"`
71
+		} `json:"headers"`
72
+	}{}
73
+
74
+	suite.NoError(json.Unmarshal(data, &jsonStruct))
75
+	suite.Equal("itsme", jsonStruct.Headers.UserAgent)
76
+}
77
+
78
+func (suite *NetworkTestSuite) TestIncorrectTimeout() {
79
+	_, err := network.NewNetwork(suite.dialer, "itsme", "1.1.1.1", -time.Second)
80
+	suite.Error(err)
81
+}
82
+
83
+func (suite *NetworkTestSuite) TestIncorrectDOHHostname() {
84
+	_, err := network.NewNetwork(suite.dialer, "itsme", "doh.com", 0)
85
+	suite.Error(err)
86
+}
87
+
88
+func TestNetwork(t *testing.T) {
89
+	t.Parallel()
90
+	suite.Run(t, &NetworkTestSuite{})
91
+}

Loading…
Annulla
Salva