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) }