dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/clients/http/transmission_test.go (about) 1 // 2 // Copyright (C) 2021 IOTech Ltd 3 // Copyright (C) 2023 Intel Corporation 4 // 5 // SPDX-License-Identifier: Apache-2.0 6 7 package http 8 9 import ( 10 "context" 11 "net/http" 12 "path" 13 "strconv" 14 "testing" 15 16 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/common" 17 dtoCommon "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/common" 18 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/responses" 19 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/models" 20 21 "github.com/stretchr/testify/require" 22 ) 23 24 func TestTransmissionClient_AllTransmissions(t *testing.T) { 25 ts := newTestServer(http.MethodGet, common.ApiAllTransmissionRoute, responses.MultiTransmissionsResponse{}) 26 defer ts.Close() 27 client := NewTransmissionClient(ts.URL, NewNullAuthenticationInjector(), false) 28 res, err := client.AllTransmissions(context.Background(), 0, 10) 29 require.NoError(t, err) 30 require.IsType(t, responses.MultiTransmissionsResponse{}, res) 31 } 32 33 func TestTransmissionClient_DeleteProcessedTransmissionsByAge(t *testing.T) { 34 age := 0 35 path := path.Join(common.ApiTransmissionRoute, common.Age, strconv.Itoa(age)) 36 ts := newTestServer(http.MethodDelete, path, dtoCommon.BaseResponse{}) 37 defer ts.Close() 38 client := NewTransmissionClient(ts.URL, NewNullAuthenticationInjector(), false) 39 res, err := client.DeleteProcessedTransmissionsByAge(context.Background(), age) 40 require.NoError(t, err) 41 require.IsType(t, dtoCommon.BaseResponse{}, res) 42 } 43 44 func TestTransmissionClient_TransmissionById(t *testing.T) { 45 testId := ExampleUUID 46 path := path.Join(common.ApiTransmissionRoute, common.Id, testId) 47 ts := newTestServer(http.MethodGet, path, responses.TransmissionResponse{}) 48 defer ts.Close() 49 client := NewTransmissionClient(ts.URL, NewNullAuthenticationInjector(), false) 50 res, err := client.TransmissionById(context.Background(), testId) 51 require.NoError(t, err) 52 require.IsType(t, responses.TransmissionResponse{}, res) 53 } 54 55 func TestTransmissionClient_TransmissionsByStatus(t *testing.T) { 56 status := models.Escalated 57 urlPath := path.Join(common.ApiTransmissionRoute, common.Status, status) 58 ts := newTestServer(http.MethodGet, urlPath, responses.MultiTransmissionsResponse{}) 59 defer ts.Close() 60 client := NewTransmissionClient(ts.URL, NewNullAuthenticationInjector(), false) 61 res, err := client.TransmissionsByStatus(context.Background(), status, 0, 10) 62 require.NoError(t, err) 63 require.IsType(t, responses.MultiTransmissionsResponse{}, res) 64 } 65 66 func TestTransmissionClient_TransmissionsBySubscriptionName(t *testing.T) { 67 subscriptionName := TestSubscriptionName 68 urlPath := path.Join(common.ApiTransmissionRoute, common.Subscription, common.Name, subscriptionName) 69 ts := newTestServer(http.MethodGet, urlPath, responses.MultiTransmissionsResponse{}) 70 defer ts.Close() 71 client := NewTransmissionClient(ts.URL, NewNullAuthenticationInjector(), false) 72 res, err := client.TransmissionsBySubscriptionName(context.Background(), subscriptionName, 0, 10) 73 require.NoError(t, err) 74 require.IsType(t, responses.MultiTransmissionsResponse{}, res) 75 } 76 77 func TestTransmissionClient_TransmissionsByTimeRange(t *testing.T) { 78 start := 1 79 end := 10 80 urlPath := path.Join(common.ApiTransmissionRoute, common.Start, strconv.Itoa(start), common.End, strconv.Itoa(end)) 81 ts := newTestServer(http.MethodGet, urlPath, responses.MultiTransmissionsResponse{}) 82 defer ts.Close() 83 client := NewTransmissionClient(ts.URL, NewNullAuthenticationInjector(), false) 84 res, err := client.TransmissionsByTimeRange(context.Background(), start, end, 0, 10) 85 require.NoError(t, err) 86 require.IsType(t, responses.MultiTransmissionsResponse{}, res) 87 } 88 89 func TestTransmissionClient_TransmissionsByNotificationId(t *testing.T) { 90 notificationId := ExampleUUID 91 urlPath := path.Join(common.ApiTransmissionRoute, common.Notification, common.Id, notificationId) 92 ts := newTestServer(http.MethodGet, urlPath, responses.MultiTransmissionsResponse{}) 93 defer ts.Close() 94 client := NewTransmissionClient(ts.URL, NewNullAuthenticationInjector(), false) 95 res, err := client.TransmissionsByNotificationId(context.Background(), notificationId, 0, 10) 96 require.NoError(t, err) 97 require.IsType(t, responses.MultiTransmissionsResponse{}, res) 98 }