github.com/enbility/spine-go@v0.7.0/model/timetable_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 TestTimeTableListDataType_Update(t *testing.T) { 11 sut := TimeTableListDataType{ 12 TimeTableData: []TimeTableDataType{ 13 { 14 TimeTableId: util.Ptr(TimeTableIdType(0)), 15 RecurrenceInformation: &RecurrenceInformationType{ 16 ExecutionCount: util.Ptr(uint(1)), 17 }, 18 }, 19 { 20 TimeTableId: util.Ptr(TimeTableIdType(1)), 21 RecurrenceInformation: &RecurrenceInformationType{ 22 ExecutionCount: util.Ptr(uint(1)), 23 }, 24 }, 25 }, 26 } 27 28 newData := TimeTableListDataType{ 29 TimeTableData: []TimeTableDataType{ 30 { 31 TimeTableId: util.Ptr(TimeTableIdType(1)), 32 RecurrenceInformation: &RecurrenceInformationType{ 33 ExecutionCount: util.Ptr(uint(10)), 34 }, 35 }, 36 }, 37 } 38 39 // Act 40 _, success := sut.UpdateList(false, true, &newData, NewFilterTypePartial(), nil) 41 assert.True(t, success) 42 43 data := sut.TimeTableData 44 // check the non changing items 45 assert.Equal(t, 2, len(data)) 46 item1 := data[0] 47 assert.Equal(t, 0, int(*item1.TimeTableId)) 48 assert.Equal(t, 1, int(*item1.RecurrenceInformation.ExecutionCount)) 49 // check properties of updated item 50 item2 := data[1] 51 assert.Equal(t, 1, int(*item2.TimeTableId)) 52 assert.Equal(t, 10, int(*item2.RecurrenceInformation.ExecutionCount)) 53 } 54 55 func TestTimeTableConstraintsListDataType_Update(t *testing.T) { 56 sut := TimeTableConstraintsListDataType{ 57 TimeTableConstraintsData: []TimeTableConstraintsDataType{ 58 { 59 TimeTableId: util.Ptr(TimeTableIdType(0)), 60 SlotCountMin: util.Ptr(TimeSlotCountType(1)), 61 }, 62 { 63 TimeTableId: util.Ptr(TimeTableIdType(1)), 64 SlotCountMin: util.Ptr(TimeSlotCountType(1)), 65 }, 66 }, 67 } 68 69 newData := TimeTableConstraintsListDataType{ 70 TimeTableConstraintsData: []TimeTableConstraintsDataType{ 71 { 72 TimeTableId: util.Ptr(TimeTableIdType(1)), 73 SlotCountMin: util.Ptr(TimeSlotCountType(10)), 74 }, 75 }, 76 } 77 78 // Act 79 _, success := sut.UpdateList(false, true, &newData, NewFilterTypePartial(), nil) 80 assert.True(t, success) 81 82 data := sut.TimeTableConstraintsData 83 // check the non changing items 84 assert.Equal(t, 2, len(data)) 85 item1 := data[0] 86 assert.Equal(t, 0, int(*item1.TimeTableId)) 87 assert.Equal(t, 1, int(*item1.SlotCountMin)) 88 // check properties of updated item 89 item2 := data[1] 90 assert.Equal(t, 1, int(*item2.TimeTableId)) 91 assert.Equal(t, 10, int(*item2.SlotCountMin)) 92 } 93 94 func TestTimeTableDescriptionListDataType_Update(t *testing.T) { 95 sut := TimeTableDescriptionListDataType{ 96 TimeTableDescriptionData: []TimeTableDescriptionDataType{ 97 { 98 TimeTableId: util.Ptr(TimeTableIdType(0)), 99 Description: util.Ptr(DescriptionType("old")), 100 }, 101 { 102 TimeTableId: util.Ptr(TimeTableIdType(1)), 103 Description: util.Ptr(DescriptionType("old")), 104 }, 105 }, 106 } 107 108 newData := TimeTableDescriptionListDataType{ 109 TimeTableDescriptionData: []TimeTableDescriptionDataType{ 110 { 111 TimeTableId: util.Ptr(TimeTableIdType(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.TimeTableDescriptionData 122 // check the non changing items 123 assert.Equal(t, 2, len(data)) 124 item1 := data[0] 125 assert.Equal(t, 0, int(*item1.TimeTableId)) 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.TimeTableId)) 130 assert.Equal(t, "new", string(*item2.Description)) 131 }