github.com/enbility/spine-go@v0.7.0/model/usecaseinformation_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  	"github.com/stretchr/testify/suite"
     9  )
    10  
    11  func TestUseCaseInformationDataTypeSuite(t *testing.T) {
    12  	suite.Run(t, new(UseCaseInformationDataTypeSuite))
    13  }
    14  
    15  type UseCaseInformationDataTypeSuite struct {
    16  	suite.Suite
    17  }
    18  
    19  func (s *UseCaseInformationDataTypeSuite) Test_AdditionsAndRemovals() {
    20  	ucs := &UseCaseInformationDataType{}
    21  	assert.NotNil(s.T(), ucs)
    22  	assert.Equal(s.T(), 0, len(ucs.UseCaseSupport))
    23  
    24  	uc := UseCaseSupportType{}
    25  	ucs.Add(uc)
    26  	assert.Equal(s.T(), 0, len(ucs.UseCaseSupport))
    27  
    28  	uc = UseCaseSupportType{
    29  		UseCaseName: util.Ptr(UseCaseNameTypeControlOfBattery),
    30  	}
    31  	ucs.Add(uc)
    32  	assert.Equal(s.T(), 1, len(ucs.UseCaseSupport))
    33  
    34  	ucs.Add(uc)
    35  	assert.Equal(s.T(), 1, len(ucs.UseCaseSupport))
    36  
    37  	ucs.Remove(UseCaseNameTypeCoordinatedEVCharging)
    38  	assert.Equal(s.T(), 1, len(ucs.UseCaseSupport))
    39  
    40  	ucs.Remove(UseCaseNameTypeControlOfBattery)
    41  	assert.Equal(s.T(), 0, len(ucs.UseCaseSupport))
    42  }