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  }