dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/clients/http/provisionwatcher_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 "testing" 14 15 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/common" 16 dtoCommon "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/common" 17 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/requests" 18 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/responses" 19 "github.com/stretchr/testify/require" 20 ) 21 22 func TestProvisionWatcherClient_Add(t *testing.T) { 23 ts := newTestServer(http.MethodPost, common.ApiProvisionWatcherRoute, []dtoCommon.BaseWithIdResponse{}) 24 defer ts.Close() 25 26 client := NewProvisionWatcherClient(ts.URL, NewNullAuthenticationInjector(), false) 27 res, err := client.Add(context.Background(), []requests.AddProvisionWatcherRequest{}) 28 require.NoError(t, err) 29 require.IsType(t, []dtoCommon.BaseWithIdResponse{}, res) 30 } 31 32 func TestProvisionWatcherClient_Update(t *testing.T) { 33 ts := newTestServer(http.MethodPatch, common.ApiProvisionWatcherRoute, []dtoCommon.BaseResponse{}) 34 defer ts.Close() 35 36 client := NewProvisionWatcherClient(ts.URL, NewNullAuthenticationInjector(), false) 37 res, err := client.Update(context.Background(), []requests.UpdateProvisionWatcherRequest{}) 38 require.NoError(t, err) 39 require.IsType(t, []dtoCommon.BaseResponse{}, res) 40 } 41 42 func TestProvisionWatcherClient_AllProvisionWatchers(t *testing.T) { 43 ts := newTestServer(http.MethodGet, common.ApiAllProvisionWatcherRoute, responses.MultiProvisionWatchersResponse{}) 44 defer ts.Close() 45 46 client := NewProvisionWatcherClient(ts.URL, NewNullAuthenticationInjector(), false) 47 res, err := client.AllProvisionWatchers(context.Background(), []string{"label1", "label2"}, 1, 10) 48 require.NoError(t, err) 49 require.IsType(t, responses.MultiProvisionWatchersResponse{}, res) 50 } 51 52 func TestProvisionWatcherClient_ProvisionWatcherByName(t *testing.T) { 53 pwName := "watcher" 54 urlPath := path.Join(common.ApiProvisionWatcherRoute, common.Name, pwName) 55 ts := newTestServer(http.MethodGet, urlPath, responses.ProvisionWatcherResponse{}) 56 defer ts.Close() 57 58 client := NewProvisionWatcherClient(ts.URL, NewNullAuthenticationInjector(), false) 59 res, err := client.ProvisionWatcherByName(context.Background(), pwName) 60 require.NoError(t, err) 61 require.IsType(t, responses.ProvisionWatcherResponse{}, res) 62 } 63 64 func TestProvisionWatcherClient_DeleteProvisionWatcherByName(t *testing.T) { 65 pwName := "watcher" 66 urlPath := path.Join(common.ApiProvisionWatcherRoute, common.Name, pwName) 67 ts := newTestServer(http.MethodDelete, urlPath, dtoCommon.BaseResponse{}) 68 defer ts.Close() 69 70 client := NewProvisionWatcherClient(ts.URL, NewNullAuthenticationInjector(), false) 71 res, err := client.DeleteProvisionWatcherByName(context.Background(), pwName) 72 require.NoError(t, err) 73 require.IsType(t, dtoCommon.BaseResponse{}, res) 74 } 75 76 func TestProvisionWatcherClient_ProvisionWatchersByProfileName(t *testing.T) { 77 profileName := "profile" 78 urlPath := path.Join(common.ApiProvisionWatcherRoute, common.Profile, common.Name, profileName) 79 ts := newTestServer(http.MethodGet, urlPath, responses.MultiProvisionWatchersResponse{}) 80 defer ts.Close() 81 82 client := NewProvisionWatcherClient(ts.URL, NewNullAuthenticationInjector(), false) 83 res, err := client.ProvisionWatchersByProfileName(context.Background(), profileName, 1, 10) 84 require.NoError(t, err) 85 require.IsType(t, responses.MultiProvisionWatchersResponse{}, res) 86 } 87 88 func TestProvisionWatcherClient_ProvisionWatchersByServiceName(t *testing.T) { 89 serviceName := "service" 90 urlPath := path.Join(common.ApiProvisionWatcherRoute, common.Service, common.Name, serviceName) 91 ts := newTestServer(http.MethodGet, urlPath, responses.MultiProvisionWatchersResponse{}) 92 defer ts.Close() 93 94 client := NewProvisionWatcherClient(ts.URL, NewNullAuthenticationInjector(), false) 95 res, err := client.ProvisionWatchersByServiceName(context.Background(), serviceName, 1, 10) 96 require.NoError(t, err) 97 require.IsType(t, responses.MultiProvisionWatchersResponse{}, res) 98 }