dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/clients/http/deviceservice_test.go (about)

     1  //
     2  // Copyright (C) 2020-2021 Unknown author
     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  
    20  	"github.com/stretchr/testify/assert"
    21  	"github.com/stretchr/testify/require"
    22  )
    23  
    24  func TestAddDeviceServices(t *testing.T) {
    25  	ts := newTestServer(http.MethodPost, common.ApiDeviceServiceRoute, []dtoCommon.BaseWithIdResponse{})
    26  	defer ts.Close()
    27  
    28  	client := NewDeviceServiceClient(ts.URL, NewNullAuthenticationInjector(), false)
    29  	res, err := client.Add(context.Background(), []requests.AddDeviceServiceRequest{})
    30  
    31  	require.NoError(t, err)
    32  	assert.IsType(t, []dtoCommon.BaseWithIdResponse{}, res)
    33  }
    34  
    35  func TestPatchDeviceServices(t *testing.T) {
    36  	ts := newTestServer(http.MethodPatch, common.ApiDeviceServiceRoute, []dtoCommon.BaseResponse{})
    37  	defer ts.Close()
    38  
    39  	client := NewDeviceServiceClient(ts.URL, NewNullAuthenticationInjector(), false)
    40  	res, err := client.Update(context.Background(), []requests.UpdateDeviceServiceRequest{})
    41  	require.NoError(t, err)
    42  	assert.IsType(t, []dtoCommon.BaseResponse{}, res)
    43  }
    44  
    45  func TestQueryAllDeviceServices(t *testing.T) {
    46  	ts := newTestServer(http.MethodGet, common.ApiAllDeviceServiceRoute, responses.MultiDeviceServicesResponse{})
    47  	defer ts.Close()
    48  
    49  	client := NewDeviceServiceClient(ts.URL, NewNullAuthenticationInjector(), false)
    50  	res, err := client.AllDeviceServices(context.Background(), []string{"label1", "label2"}, 1, 10)
    51  	require.NoError(t, err)
    52  	assert.IsType(t, responses.MultiDeviceServicesResponse{}, res)
    53  }
    54  
    55  func TestQueryDeviceServiceByName(t *testing.T) {
    56  	deviceServiceName := "deviceService"
    57  	path := path.Join(common.ApiDeviceServiceRoute, common.Name, deviceServiceName)
    58  
    59  	ts := newTestServer(http.MethodGet, path, responses.DeviceResponse{})
    60  	defer ts.Close()
    61  
    62  	client := NewDeviceServiceClient(ts.URL, NewNullAuthenticationInjector(), false)
    63  	res, err := client.DeviceServiceByName(context.Background(), deviceServiceName)
    64  	require.NoError(t, err)
    65  	assert.IsType(t, responses.DeviceServiceResponse{}, res)
    66  }
    67  
    68  func TestDeleteDeviceServiceByName(t *testing.T) {
    69  	deviceServiceName := "deviceService"
    70  	path := path.Join(common.ApiDeviceServiceRoute, common.Name, deviceServiceName)
    71  
    72  	ts := newTestServer(http.MethodDelete, path, dtoCommon.BaseResponse{})
    73  	defer ts.Close()
    74  
    75  	client := NewDeviceServiceClient(ts.URL, NewNullAuthenticationInjector(), false)
    76  	res, err := client.DeleteByName(context.Background(), deviceServiceName)
    77  	require.NoError(t, err)
    78  	assert.IsType(t, dtoCommon.BaseResponse{}, res)
    79  }