github.com/enbility/spine-go@v0.7.0/model/taskmanagement_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 TestTaskManagementJobListDataType_Update(t *testing.T) { 11 sut := TaskManagementJobListDataType{ 12 TaskManagementJobData: []TaskManagementJobDataType{ 13 { 14 JobId: util.Ptr(TaskManagementJobIdType(0)), 15 JobState: util.Ptr(TaskManagementJobStateTypeActive), 16 }, 17 { 18 JobId: util.Ptr(TaskManagementJobIdType(1)), 19 JobState: util.Ptr(TaskManagementJobStateTypeActive), 20 }, 21 }, 22 } 23 24 newData := TaskManagementJobListDataType{ 25 TaskManagementJobData: []TaskManagementJobDataType{ 26 { 27 JobId: util.Ptr(TaskManagementJobIdType(1)), 28 JobState: util.Ptr(TaskManagementJobStateTypeCompleted), 29 }, 30 }, 31 } 32 33 // Act 34 _, success := sut.UpdateList(false, true, &newData, NewFilterTypePartial(), nil) 35 assert.True(t, success) 36 37 data := sut.TaskManagementJobData 38 // check the non changing items 39 assert.Equal(t, 2, len(data)) 40 item1 := data[0] 41 assert.Equal(t, 0, int(*item1.JobId)) 42 assert.Equal(t, TaskManagementJobStateTypeActive, *item1.JobState) 43 // check properties of updated item 44 item2 := data[1] 45 assert.Equal(t, 1, int(*item2.JobId)) 46 assert.Equal(t, TaskManagementJobStateTypeCompleted, *item2.JobState) 47 } 48 49 func TestTaskManagementJobRelationListDataType_Update(t *testing.T) { 50 sut := TaskManagementJobRelationListDataType{ 51 TaskManagementJobRelationData: []TaskManagementJobRelationDataType{ 52 { 53 JobId: util.Ptr(TaskManagementJobIdType(0)), 54 LoadControlReleated: &TaskManagementLoadControlReleatedType{ 55 EventId: util.Ptr(LoadControlEventIdType(0)), 56 }, 57 }, 58 { 59 JobId: util.Ptr(TaskManagementJobIdType(1)), 60 LoadControlReleated: &TaskManagementLoadControlReleatedType{ 61 EventId: util.Ptr(LoadControlEventIdType(0)), 62 }, 63 }, 64 }, 65 } 66 67 newData := TaskManagementJobRelationListDataType{ 68 TaskManagementJobRelationData: []TaskManagementJobRelationDataType{ 69 { 70 JobId: util.Ptr(TaskManagementJobIdType(1)), 71 LoadControlReleated: &TaskManagementLoadControlReleatedType{ 72 EventId: util.Ptr(LoadControlEventIdType(1)), 73 }, 74 }, 75 }, 76 } 77 78 // Act 79 _, success := sut.UpdateList(false, true, &newData, NewFilterTypePartial(), nil) 80 assert.True(t, success) 81 82 data := sut.TaskManagementJobRelationData 83 // check the non changing items 84 assert.Equal(t, 2, len(data)) 85 item1 := data[0] 86 assert.Equal(t, 0, int(*item1.JobId)) 87 assert.Equal(t, 0, int(*item1.LoadControlReleated.EventId)) 88 // check properties of updated item 89 item2 := data[1] 90 assert.Equal(t, 1, int(*item2.JobId)) 91 assert.Equal(t, 1, int(*item2.LoadControlReleated.EventId)) 92 } 93 94 func TestTaskManagementJobDescriptionListDataType_Update(t *testing.T) { 95 sut := TaskManagementJobDescriptionListDataType{ 96 TaskManagementJobDescriptionData: []TaskManagementJobDescriptionDataType{ 97 { 98 JobId: util.Ptr(TaskManagementJobIdType(0)), 99 Description: util.Ptr(DescriptionType("old")), 100 }, 101 { 102 JobId: util.Ptr(TaskManagementJobIdType(1)), 103 Description: util.Ptr(DescriptionType("old")), 104 }, 105 }, 106 } 107 108 newData := TaskManagementJobDescriptionListDataType{ 109 TaskManagementJobDescriptionData: []TaskManagementJobDescriptionDataType{ 110 { 111 JobId: util.Ptr(TaskManagementJobIdType(1)), 112 Description: util.Ptr(DescriptionType("new")), 113 }, 114 }, 115 } 116 117 // Act 118 _, success := sut.UpdateList(false, true, &newData, NewFilterTypePartial(), nil) 119 assert.True(t, success) 120 121 data := sut.TaskManagementJobDescriptionData 122 // check the non changing items 123 assert.Equal(t, 2, len(data)) 124 item1 := data[0] 125 assert.Equal(t, 0, int(*item1.JobId)) 126 assert.Equal(t, "old", string(*item1.Description)) 127 // check properties of updated item 128 item2 := data[1] 129 assert.Equal(t, 1, int(*item2.JobId)) 130 assert.Equal(t, "new", string(*item2.Description)) 131 }