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  }