src.dualinventive.com/go/nbiot-interface/internal/cdp/endpoint_basic_auth_test.go

38 lines
1.0 KiB
Go

package cdp
import (
"bytes"
"io/ioutil"
"net/http"
"net/http/httptest"
"testing"
"github.com/stretchr/testify/require"
)
// Test the uplink message report handler when the WithBasicAuth option is used
func Test_UplinkMsgReportHandlerFuncBasicAuth(t *testing.T) {
h := func(report *EndpointMessageReport) {
require.Equal(t, "863703039106237", report.SerialNumber.IMEI())
}
ep, err := NewEndpoint(":8888", WithUplinkMsgReportHandler(h), WithBasicAuth("Aladin", "OpenSesame"))
require.Nil(t, err)
data, err := ioutil.ReadFile("testdata/data.json")
require.Nil(t, err)
// http.StatusUnauthorized
req := httptest.NewRequest("POST", "/", bytes.NewReader(data))
resp := httptest.NewRecorder()
ep.uplinkMsgDataHandler(resp, req)
require.Equal(t, resp.Code, http.StatusUnauthorized)
// http.StatusOK
req = httptest.NewRequest("POST", "/", bytes.NewReader(data))
req.SetBasicAuth("Aladin", "OpenSesame")
resp = httptest.NewRecorder()
ep.uplinkMsgDataHandler(resp, req)
require.Equal(t, resp.Code, http.StatusOK)
}