dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/dtos/common/base_test.go (about) 1 // 2 // Copyright (C) 2020 Intel Corporation 3 // 4 // SPDX-License-Identifier: Apache-2.0 5 // 6 7 package common 8 9 import ( 10 "encoding/json" 11 "fmt" 12 "testing" 13 14 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/common" 15 16 "github.com/stretchr/testify/assert" 17 "github.com/stretchr/testify/require" 18 ) 19 20 func TestNewBaseRequest(t *testing.T) { 21 actual := NewBaseRequest() 22 assert.Equal(t, common.ApiVersion, actual.ApiVersion) 23 assert.NotEmpty(t, actual.RequestId) 24 } 25 26 func TestNewBaseResponse(t *testing.T) { 27 expectedRequestId := "123456" 28 expectedStatusCode := 200 29 expectedMessage := "unit test message" 30 actual := NewBaseResponse(expectedRequestId, expectedMessage, expectedStatusCode) 31 32 assert.Equal(t, expectedRequestId, actual.RequestId) 33 assert.Equal(t, expectedStatusCode, actual.StatusCode) 34 assert.Equal(t, expectedMessage, actual.Message) 35 } 36 37 func TestNewVersionable(t *testing.T) { 38 actual := NewVersionable() 39 assert.Equal(t, common.ApiVersion, actual.ApiVersion) 40 } 41 42 func TestNewBaseWithIdResponse(t *testing.T) { 43 expectedRequestId := "123456" 44 expectedStatusCode := 200 45 expectedMessage := "unit test message" 46 expectedId := "7a1707f0-166f-4c4b-bc9d-1d54c74e0137" 47 actual := NewBaseWithIdResponse(expectedRequestId, expectedMessage, expectedStatusCode, expectedId) 48 49 assert.Equal(t, expectedRequestId, actual.RequestId) 50 assert.Equal(t, expectedStatusCode, actual.StatusCode) 51 assert.Equal(t, expectedMessage, actual.Message) 52 assert.Equal(t, expectedId, actual.Id) 53 } 54 55 func TestNewBaseWithTotalCountResponse(t *testing.T) { 56 expectedRequestId := "123456" 57 expectedStatusCode := 200 58 expectedMessage := "unit test message" 59 expectedTotalCount := uint32(3) 60 actual := NewBaseWithTotalCountResponse(expectedRequestId, expectedMessage, expectedStatusCode, expectedTotalCount) 61 62 assert.Equal(t, expectedRequestId, actual.RequestId) 63 assert.Equal(t, expectedStatusCode, actual.StatusCode) 64 assert.Equal(t, expectedMessage, actual.Message) 65 assert.Equal(t, expectedTotalCount, actual.TotalCount) 66 } 67 68 func TestBaseResponse_Marshal(t *testing.T) { 69 expectedRequestId := "123456" 70 expectedStatusCode := 200 71 expectedMessage := "unit test message" 72 response := NewBaseResponse(expectedRequestId, expectedMessage, expectedStatusCode) 73 expectedResponseJsonStr := fmt.Sprintf( 74 `{"apiVersion":"%s","requestId":"%s","message":"%s","statusCode":%d}`, 75 response.ApiVersion, response.RequestId, response.Message, response.StatusCode) 76 noRequestId := NewBaseResponse("", expectedMessage, expectedStatusCode) 77 expectedNoRequestIdJsonStr := fmt.Sprintf( 78 `{"apiVersion":"%s","message":"%s","statusCode":%d}`, 79 noRequestId.ApiVersion, noRequestId.Message, noRequestId.StatusCode) 80 noMessage := NewBaseResponse(expectedRequestId, "", expectedStatusCode) 81 expectedNoMessageJsonStr := fmt.Sprintf( 82 `{"apiVersion":"%s","requestId":"%s","statusCode":%d}`, 83 noMessage.ApiVersion, noMessage.RequestId, noMessage.StatusCode) 84 85 tests := []struct { 86 name string 87 data BaseResponse 88 expected string 89 }{ 90 {"JSON marshal base response", response, expectedResponseJsonStr}, 91 {"JSON marshal base response, no requestId", noRequestId, expectedNoRequestIdJsonStr}, 92 {"JSON marshal base response, no message", noMessage, expectedNoMessageJsonStr}, 93 } 94 for _, tt := range tests { 95 t.Run(tt.name, func(t *testing.T) { 96 result, err := json.Marshal(tt.data) 97 require.NoError(t, err) 98 assert.Equal(t, tt.expected, string(result)) 99 }) 100 } 101 }