github.com/enbility/spine-go@v0.7.0/model/bill_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 TestBillListDataType_Update(t *testing.T) { 11 sut := BillListDataType{ 12 BillData: []BillDataType{ 13 { 14 BillId: util.Ptr(BillIdType(0)), 15 ScopeType: util.Ptr(ScopeTypeTypeACCurrent), 16 }, 17 { 18 BillId: util.Ptr(BillIdType(1)), 19 ScopeType: util.Ptr(ScopeTypeTypeACCurrent), 20 }, 21 }, 22 } 23 24 newData := BillListDataType{ 25 BillData: []BillDataType{ 26 { 27 BillId: util.Ptr(BillIdType(1)), 28 ScopeType: util.Ptr(ScopeTypeTypeACPower), 29 }, 30 }, 31 } 32 33 // Act 34 _, success := sut.UpdateList(false, true, &newData, NewFilterTypePartial(), nil) 35 assert.True(t, success) 36 37 data := sut.BillData 38 // check the non changing items 39 assert.Equal(t, 2, len(data)) 40 item1 := data[0] 41 assert.Equal(t, 0, int(*item1.BillId)) 42 assert.Equal(t, ScopeTypeTypeACCurrent, *item1.ScopeType) 43 // check properties of updated item 44 item2 := data[1] 45 assert.Equal(t, 1, int(*item2.BillId)) 46 assert.Equal(t, ScopeTypeTypeACPower, *item2.ScopeType) 47 } 48 49 func TestBillConstraintsListDataType_Update(t *testing.T) { 50 sut := BillConstraintsListDataType{ 51 BillConstraintsData: []BillConstraintsDataType{ 52 { 53 BillId: util.Ptr(BillIdType(0)), 54 PositionCountMin: util.Ptr(BillPositionCountType(0)), 55 }, 56 { 57 BillId: util.Ptr(BillIdType(1)), 58 PositionCountMin: util.Ptr(BillPositionCountType(0)), 59 }, 60 }, 61 } 62 63 newData := BillConstraintsListDataType{ 64 BillConstraintsData: []BillConstraintsDataType{ 65 { 66 BillId: util.Ptr(BillIdType(1)), 67 PositionCountMin: util.Ptr(BillPositionCountType(1)), 68 }, 69 }, 70 } 71 72 // Act 73 _, success := sut.UpdateList(false, true, &newData, NewFilterTypePartial(), nil) 74 assert.True(t, success) 75 76 data := sut.BillConstraintsData 77 // check the non changing items 78 assert.Equal(t, 2, len(data)) 79 item1 := data[0] 80 assert.Equal(t, 0, int(*item1.BillId)) 81 assert.Equal(t, 0, int(*item1.PositionCountMin)) 82 // check properties of updated item 83 item2 := data[1] 84 assert.Equal(t, 1, int(*item2.BillId)) 85 assert.Equal(t, 1, int(*item2.PositionCountMin)) 86 } 87 88 func TestBillDescriptionListDataType_Update(t *testing.T) { 89 sut := BillDescriptionListDataType{ 90 BillDescriptionData: []BillDescriptionDataType{ 91 { 92 BillId: util.Ptr(BillIdType(0)), 93 UpdateRequired: util.Ptr(false), 94 }, 95 { 96 BillId: util.Ptr(BillIdType(1)), 97 UpdateRequired: util.Ptr(false), 98 }, 99 }, 100 } 101 102 newData := BillDescriptionListDataType{ 103 BillDescriptionData: []BillDescriptionDataType{ 104 { 105 BillId: util.Ptr(BillIdType(1)), 106 UpdateRequired: util.Ptr(true), 107 }, 108 }, 109 } 110 111 // Act 112 _, success := sut.UpdateList(false, true, &newData, NewFilterTypePartial(), nil) 113 assert.True(t, success) 114 115 data := sut.BillDescriptionData 116 // check the non changing items 117 assert.Equal(t, 2, len(data)) 118 item1 := data[0] 119 assert.Equal(t, 0, int(*item1.BillId)) 120 assert.Equal(t, false, *item1.UpdateRequired) 121 // check properties of updated item 122 item2 := data[1] 123 assert.Equal(t, 1, int(*item2.BillId)) 124 assert.Equal(t, true, *item2.UpdateRequired) 125 }