69 lines
2.5 KiB
Go
69 lines
2.5 KiB
Go
package upstreamimpl
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
"git.5iot.com/iotlcm-public/iotlcm-upstream-chan/internal/logic/upstreamimpl/dx"
|
|
"git.5iot.com/iotlcm-public/iotlcm-upstream-chan/internal/model"
|
|
)
|
|
|
|
func TestDXNetworkBlockStatus(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
types []model.SimNetBlockType
|
|
want string
|
|
}{
|
|
{name: "未断网", types: []model.SimNetBlockType{{BlockType: "0"}}, want: "0"},
|
|
{name: "已断网", types: []model.SimNetBlockType{{BlockType: "1", BlockTypeName: "达量断网"}}, want: "1"},
|
|
{name: "已断网", want: "1"},
|
|
{name: ""},
|
|
{name: "未知"},
|
|
{name: "未断网", types: []model.SimNetBlockType{{BlockType: "1"}}},
|
|
{name: "已断网", types: []model.SimNetBlockType{{BlockType: "0"}}},
|
|
}
|
|
for index, test := range tests {
|
|
got := dxNetworkBlockStatus(test.name, test.types)
|
|
if test.want == "" {
|
|
if got != nil {
|
|
t.Fatalf("case %d: status = %q", index, *got)
|
|
}
|
|
} else if got == nil || *got != test.want {
|
|
t.Fatalf("case %d: status = %v, want %s", index, got, test.want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestDXCardStatusIncludesNetworkBlock(t *testing.T) {
|
|
server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
|
|
if request.URL.Path != "/openapi/v1/prodinst/queryCardMainStatus" || request.URL.Query().Get("access_number") != "1440000000001" {
|
|
t.Errorf("request = %s", request.URL)
|
|
}
|
|
fmt.Fprint(writer, `{"result":"0","resultMsg":"处理成功","productInfo":[{"productMainStatusCd":"4"}],"netBlockStatusName":"已断网","netBlockTypeList":[{"blockType":"1","blockTypeName":"达量断网"}]}`)
|
|
}))
|
|
defer server.Close()
|
|
sim := &sSimDX{client: dx.NewClient(dx.Config{BaseURL: server.URL})}
|
|
output, err := sim.QuerySimCardStatus(context.Background(), &model.SimCardStatusInput{SimKeys: []*model.SimKey{{MSISDN: "1440000000001"}}})
|
|
if err != nil || len(output) != 1 {
|
|
t.Fatalf("output = %v, err = %v", output, err)
|
|
}
|
|
item := output[0]
|
|
if item.Code != 0 || item.ResData.CardStatus != 2 || item.ResData.NetBlockStatus == nil || *item.ResData.NetBlockStatus != "1" || len(item.ResData.NetBlockTypes) != 1 || item.ResData.NetBlockTypes[0].BlockTypeName != "达量断网" {
|
|
t.Fatalf("item = %+v", item)
|
|
}
|
|
}
|
|
|
|
func TestDXSessionAccessMode(t *testing.T) {
|
|
if got := dxSessionAccessMode("1", ""); got != "4G" {
|
|
t.Fatalf("mode = %s", got)
|
|
}
|
|
if got := dxSessionAccessMode("2", ""); got != "5G" {
|
|
t.Fatalf("mode = %s", got)
|
|
}
|
|
if got := dxSessionAccessMode("", "NB-IOT"); got != "NB-IOT" {
|
|
t.Fatalf("mode = %s", got)
|
|
}
|
|
}
|