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  }