dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/clients/http/event_test.go (about) 1 // 2 // Copyright (C) 2021-2023 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 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos" 18 dtoCommon "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/common" 19 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/requests" 20 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/responses" 21 22 "github.com/stretchr/testify/assert" 23 "github.com/stretchr/testify/require" 24 ) 25 26 func TestAddEvent(t *testing.T) { 27 serviceName := "serviceName" 28 event := dtos.Event{ProfileName: "profileName", DeviceName: "deviceName", SourceName: "sourceName"} 29 apiRoute := path.Join(common.ApiEventRoute, serviceName, event.ProfileName, event.DeviceName, event.SourceName) 30 ts := newTestServer(http.MethodPost, apiRoute, dtoCommon.BaseWithIdResponse{}) 31 defer ts.Close() 32 33 client := NewEventClient(ts.URL, NewNullAuthenticationInjector(), false) 34 res, err := client.Add(context.Background(), serviceName, requests.AddEventRequest{Event: event}) 35 require.NoError(t, err) 36 assert.IsType(t, dtoCommon.BaseWithIdResponse{}, res) 37 } 38 39 func TestQueryAllEvents(t *testing.T) { 40 ts := newTestServer(http.MethodGet, common.ApiAllEventRoute, responses.MultiEventsResponse{}) 41 defer ts.Close() 42 43 client := NewEventClient(ts.URL, NewNullAuthenticationInjector(), false) 44 res, err := client.AllEvents(context.Background(), 1, 10) 45 require.NoError(t, err) 46 assert.IsType(t, responses.MultiEventsResponse{}, res) 47 } 48 49 func TestQueryEventCount(t *testing.T) { 50 ts := newTestServer(http.MethodGet, common.ApiEventCountRoute, dtoCommon.CountResponse{}) 51 defer ts.Close() 52 53 client := NewEventClient(ts.URL, NewNullAuthenticationInjector(), false) 54 res, err := client.EventCount(context.Background()) 55 require.NoError(t, err) 56 assert.IsType(t, dtoCommon.CountResponse{}, res) 57 } 58 59 func TestQueryEventCountByDeviceName(t *testing.T) { 60 deviceName := "device" 61 path := path.Join(common.ApiEventCountRoute, common.Device, common.Name, deviceName) 62 ts := newTestServer(http.MethodGet, path, dtoCommon.CountResponse{}) 63 defer ts.Close() 64 65 client := NewEventClient(ts.URL, NewNullAuthenticationInjector(), false) 66 res, err := client.EventCountByDeviceName(context.Background(), deviceName) 67 require.NoError(t, err) 68 require.IsType(t, dtoCommon.CountResponse{}, res) 69 } 70 71 func TestQueryEventsByDeviceName(t *testing.T) { 72 deviceName := "device" 73 urlPath := path.Join(common.ApiEventRoute, common.Device, common.Name, deviceName) 74 ts := newTestServer(http.MethodGet, urlPath, responses.MultiEventsResponse{}) 75 defer ts.Close() 76 77 client := NewEventClient(ts.URL, NewNullAuthenticationInjector(), false) 78 res, err := client.EventsByDeviceName(context.Background(), deviceName, 1, 10) 79 require.NoError(t, err) 80 assert.IsType(t, responses.MultiEventsResponse{}, res) 81 } 82 83 func TestDeleteEventsByDeviceName(t *testing.T) { 84 deviceName := "device" 85 path := path.Join(common.ApiEventRoute, common.Device, common.Name, deviceName) 86 ts := newTestServer(http.MethodDelete, path, dtoCommon.BaseResponse{}) 87 defer ts.Close() 88 89 client := NewEventClient(ts.URL, NewNullAuthenticationInjector(), false) 90 res, err := client.DeleteByDeviceName(context.Background(), deviceName) 91 require.NoError(t, err) 92 assert.IsType(t, dtoCommon.BaseResponse{}, res) 93 } 94 95 func TestQueryEventsByTimeRange(t *testing.T) { 96 start := 1 97 end := 10 98 urlPath := path.Join(common.ApiEventRoute, common.Start, strconv.Itoa(start), common.End, strconv.Itoa(end)) 99 ts := newTestServer(http.MethodGet, urlPath, responses.MultiEventsResponse{}) 100 defer ts.Close() 101 102 client := NewEventClient(ts.URL, NewNullAuthenticationInjector(), false) 103 res, err := client.EventsByTimeRange(context.Background(), start, end, 1, 10) 104 require.NoError(t, err) 105 assert.IsType(t, responses.MultiEventsResponse{}, res) 106 } 107 108 func TestDeleteEventsByAge(t *testing.T) { 109 age := 10 110 path := path.Join(common.ApiEventRoute, common.Age, strconv.Itoa(age)) 111 ts := newTestServer(http.MethodDelete, path, dtoCommon.BaseResponse{}) 112 defer ts.Close() 113 114 client := NewEventClient(ts.URL, NewNullAuthenticationInjector(), false) 115 res, err := client.DeleteByAge(context.Background(), age) 116 require.NoError(t, err) 117 assert.IsType(t, dtoCommon.BaseResponse{}, res) 118 }