github.com/enbility/spine-go@v0.7.0/model/identification_additions_test.go (about) 1 package model 2 3 import ( 4 "testing" 5 6 "github.com/enbility/spine-go/util" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestIdentificationListDataType_Update(t *testing.T) { 11 sut := IdentificationListDataType{ 12 IdentificationData: []IdentificationDataType{ 13 { 14 IdentificationId: util.Ptr(IdentificationIdType(0)), 15 IdentificationType: util.Ptr(IdentificationTypeTypeEui48), 16 }, 17 { 18 IdentificationId: util.Ptr(IdentificationIdType(1)), 19 IdentificationType: util.Ptr(IdentificationTypeTypeEui48), 20 }, 21 }, 22 } 23 24 newData := IdentificationListDataType{ 25 IdentificationData: []IdentificationDataType{ 26 { 27 IdentificationId: util.Ptr(IdentificationIdType(1)), 28 IdentificationType: util.Ptr(IdentificationTypeTypeEui64), 29 }, 30 }, 31 } 32 33 // Act 34 _, success := sut.UpdateList(false, true, &newData, NewFilterTypePartial(), nil) 35 assert.True(t, success) 36 37 data := sut.IdentificationData 38 // check the non changing items 39 assert.Equal(t, 2, len(data)) 40 item1 := data[0] 41 assert.Equal(t, 0, int(*item1.IdentificationId)) 42 assert.Equal(t, IdentificationTypeTypeEui48, *item1.IdentificationType) 43 // check properties of updated item 44 item2 := data[1] 45 assert.Equal(t, 1, int(*item2.IdentificationId)) 46 assert.Equal(t, IdentificationTypeTypeEui64, *item2.IdentificationType) 47 } 48 49 func TestSessionIdentificationListDataType_Update(t *testing.T) { 50 sut := SessionIdentificationListDataType{ 51 SessionIdentificationData: []SessionIdentificationDataType{ 52 { 53 IdentificationId: util.Ptr(IdentificationIdType(0)), 54 SessionId: util.Ptr(SessionIdType(1)), 55 IsLatestSession: util.Ptr(false), 56 }, 57 { 58 IdentificationId: util.Ptr(IdentificationIdType(1)), 59 SessionId: util.Ptr(SessionIdType(2)), 60 IsLatestSession: util.Ptr(true), 61 }, 62 }, 63 } 64 65 newData := SessionIdentificationListDataType{ 66 SessionIdentificationData: []SessionIdentificationDataType{ 67 { 68 IdentificationId: util.Ptr(IdentificationIdType(1)), 69 SessionId: util.Ptr(SessionIdType(2)), 70 IsLatestSession: util.Ptr(false), 71 }, 72 }, 73 } 74 75 // Act 76 _, success := sut.UpdateList(false, true, &newData, NewFilterTypePartial(), nil) 77 assert.True(t, success) 78 79 data := sut.SessionIdentificationData 80 // check the non changing items 81 assert.Equal(t, 2, len(data)) 82 item1 := data[0] 83 assert.Equal(t, 0, int(*item1.IdentificationId)) 84 assert.Equal(t, false, *item1.IsLatestSession) 85 // check properties of updated item 86 item2 := data[1] 87 assert.Equal(t, 1, int(*item2.IdentificationId)) 88 assert.Equal(t, false, *item2.IsLatestSession) 89 } 90 91 func TestSessionMeasurementRelationListDataType_Update(t *testing.T) { 92 sut := SessionMeasurementRelationListDataType{ 93 SessionMeasurementRelationData: []SessionMeasurementRelationDataType{ 94 { 95 SessionId: util.Ptr(SessionIdType(0)), 96 MeasurementId: []MeasurementIdType{ 97 0, 1, 98 }, 99 }, 100 { 101 SessionId: util.Ptr(SessionIdType(1)), 102 MeasurementId: []MeasurementIdType{ 103 2, 3, 104 }, 105 }, 106 }, 107 } 108 109 newData := SessionMeasurementRelationListDataType{ 110 SessionMeasurementRelationData: []SessionMeasurementRelationDataType{ 111 { 112 SessionId: util.Ptr(SessionIdType(1)), 113 MeasurementId: []MeasurementIdType{ 114 2, 3, 4, 115 }, 116 }, 117 }, 118 } 119 120 // Act 121 _, success := sut.UpdateList(false, true, &newData, NewFilterTypePartial(), nil) 122 assert.True(t, success) 123 124 data := sut.SessionMeasurementRelationData 125 // check the non changing items 126 assert.Equal(t, 2, len(data)) 127 item1 := data[0] 128 assert.Equal(t, 0, int(*item1.SessionId)) 129 assert.Equal(t, []MeasurementIdType{0, 1}, item1.MeasurementId) 130 // check properties of updated item 131 item2 := data[1] 132 assert.Equal(t, 1, int(*item2.SessionId)) 133 assert.Equal(t, []MeasurementIdType{2, 3, 4}, item2.MeasurementId) 134 }