github.com/enbility/spine-go@v0.7.0/model/messaging_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 TestMessagingListDataType_Update(t *testing.T) {
    11  	sut := MessagingListDataType{
    12  		MessagingData: []MessagingDataType{
    13  			{
    14  				MessagingNumber: util.Ptr(MessagingNumberType(0)),
    15  				Text:            util.Ptr(MessagingDataTextType("old")),
    16  			},
    17  			{
    18  				MessagingNumber: util.Ptr(MessagingNumberType(1)),
    19  				Text:            util.Ptr(MessagingDataTextType("old")),
    20  			},
    21  		},
    22  	}
    23  
    24  	newData := MessagingListDataType{
    25  		MessagingData: []MessagingDataType{
    26  			{
    27  				MessagingNumber: util.Ptr(MessagingNumberType(1)),
    28  				Text:            util.Ptr(MessagingDataTextType("new")),
    29  			},
    30  		},
    31  	}
    32  
    33  	// Act
    34  	_, success := sut.UpdateList(false, true, &newData, NewFilterTypePartial(), nil)
    35  	assert.True(t, success)
    36  
    37  	data := sut.MessagingData
    38  	// check the non changing items
    39  	assert.Equal(t, 2, len(data))
    40  	item1 := data[0]
    41  	assert.Equal(t, 0, int(*item1.MessagingNumber))
    42  	assert.Equal(t, "old", string(*item1.Text))
    43  	// check properties of updated item
    44  	item2 := data[1]
    45  	assert.Equal(t, 1, int(*item2.MessagingNumber))
    46  	assert.Equal(t, "new", string(*item2.Text))
    47  }