mosn

Форк
0
/
boltv1_test.go 
155 строк · 6.8 Кб
1
//go:build MOSNTest
2
// +build MOSNTest
3

4
package simple
5

6
import (
7
	"testing"
8

9
	. "mosn.io/mosn/test/framework"
10
	"mosn.io/mosn/test/lib"
11
	"mosn.io/mosn/test/lib/xprotocol/boltv1"
12
)
13

14
func TestSimpleBoltv1(t *testing.T) {
15
	Scenario(t, "simple boltv1 proxy used mosn.", func() {
16
		// servers is invalid in `Case`
17
		_, servers := lib.InitMosn(ConfigSimpleBoltv1, lib.CreateConfig(MockBoltServerConfig))
18
		Case("client-mosn-mosn-server", func() {
19
			client := lib.CreateClient("bolt", &boltv1.BoltClientConfig{
20
				TargetAddr: "127.0.0.1:2045",
21
				Verify: &boltv1.VerifyConfig{
22
					ExpectedStatusCode: 0,
23
				},
24
			})
25
			Verify(client.SyncCall(), Equal, true)
26
			stats := client.Stats()
27
			Verify(stats.Requests(), Equal, 1)
28
			Verify(stats.ExpectedResponseCount(), Equal, 1)
29
		})
30
		Case("client-mosn-server", func() {
31
			client := lib.CreateClient("bolt", &boltv1.BoltClientConfig{
32
				TargetAddr: "127.0.0.1:2046",
33
				Verify: &boltv1.VerifyConfig{
34
					ExpectedStatusCode: 0,
35
				},
36
			})
37
			Verify(client.SyncCall(), Equal, true)
38
			stats := client.Stats()
39
			Verify(stats.Requests(), Equal, 1)
40
			Verify(stats.ExpectedResponseCount(), Equal, 1)
41
		})
42
		Case("server-verify", func() {
43
			srv := servers[0]
44
			stats := srv.Stats()
45
			Verify(stats.ConnectionTotal(), Equal, 1)
46
			Verify(stats.ConnectionActive(), Equal, 1)
47
			Verify(stats.ConnectionClosed(), Equal, 0)
48
			Verify(stats.Requests(), Equal, 2)
49
		})
50
	})
51
}
52

53
const MockBoltServerConfig = `{
54
	"protocol":"bolt",
55
	"config": {
56
		"address": "127.0.0.1:8080"
57
	}
58
}`
59

60
const ConfigSimpleBoltv1 = `{
61
        "servers":[
62
                {
63
                        "default_log_path":"stdout",
64
                        "default_log_level": "ERROR",
65
                        "routers":[
66
                                {
67
                                        "router_config_name":"router_to_mosn",
68
                                        "virtual_hosts":[{
69
                                                 "name":"mosn_hosts",
70
                                                 "domains": ["*"],
71
                                                 "routers": [
72
                                                        {
73
                                                                "match":{"headers":[{"name":"service","value":".*"}]},
74
                                                                "route":{"cluster_name":"mosn_cluster"}
75
                                                        }
76
                                                 ]
77
                                        }]
78
                                },
79
                                {
80
                                        "router_config_name":"router_to_server",
81
                                        "virtual_hosts":[{
82
                                                "name":"server_hosts",
83
                                                "domains": ["*"],
84
                                                "routers": [
85
                                                        {
86
                                                                "match":{"headers":[{"name":"service","value":".*"}]},
87
                                                                "route":{"cluster_name":"server_cluster"}
88
                                                        }
89
                                                ]
90
                                        }]
91
                                }
92
                        ],
93
                        "listeners":[
94
                                {
95
                                        "address":"127.0.0.1:2045",
96
                                        "bind_port": true,
97
                                        "filter_chains": [{
98
                                                "filters": [
99
                                                        {
100
                                                                "type": "proxy",
101
                                                                "config": {
102
                                                                        "downstream_protocol": "X",
103
                                                                        "upstream_protocol": "X",
104
                                                                        "extend_config": {
105
                                                                                "sub_protocol": "bolt"
106
                                                                        },
107
                                                                        "router_config_name":"router_to_mosn"
108
                                                                }
109
                                                        }
110
                                                ]
111
                                        }]
112
                                },
113
                                {
114
                                        "address":"127.0.0.1:2046",
115
                                        "bind_port": true,
116
                                        "filter_chains": [{
117
                                                "filters": [
118
                                                        {
119
                                                                "type": "proxy",
120
                                                                "config": {
121
                                                                        "downstream_protocol": "X",
122
                                                                        "upstream_protocol": "X",
123
                                                                        "extend_config": {
124
                                                                                "sub_protocol": "bolt"
125
                                                                        },
126
                                                                        "router_config_name":"router_to_server"
127
                                                                }
128
                                                        }
129
                                                ]
130
                                        }]
131
                                }
132
                        ]
133
                }
134
        ],
135
        "cluster_manager":{
136
                "clusters":[
137
                        {
138
                                "name": "mosn_cluster",
139
                                "type": "SIMPLE",
140
                                "lb_type": "LB_RANDOM",
141
                                "hosts":[
142
                                        {"address":"127.0.0.1:2046"}
143
                                ]
144
                        },
145
                        {
146
                                "name": "server_cluster",
147
                                "type": "SIMPLE",
148
                                "lb_type": "LB_RANDOM",
149
                                "hosts":[
150
                                        {"address":"127.0.0.1:8080"}
151
                                ]
152
                        }
153
                ]
154
        }
155
}`
156

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.