github.com/free5gc/openapi@v1.0.8/supported_feature_test.go (about)

     1  package openapi
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestNewSupportedFeature(t *testing.T) {
    10  	suppFeat, err := NewSupportedFeature("03")
    11  	assert.Nil(t, err, "")
    12  	assert.Equal(t, SupportedFeature{0x03}, suppFeat)
    13  
    14  	suppFeat, err = NewSupportedFeature("03FF")
    15  	assert.Nil(t, err, "")
    16  	assert.Equal(t, SupportedFeature{0x03, 0xFF}, suppFeat)
    17  
    18  	suppFeat, err = NewSupportedFeature("0324")
    19  	assert.Nil(t, err, "")
    20  	assert.Equal(t, SupportedFeature{0x03, 0x24}, suppFeat)
    21  
    22  	// error case
    23  	suppFeat, err = NewSupportedFeature("ZXCD")
    24  	assert.NotNil(t, err, "should retrun error")
    25  	assert.Equal(t, SupportedFeature{}, suppFeat)
    26  }
    27  func TestGetFeatureOfSupportedFeature(t *testing.T) {
    28  	suppFeat, _ := NewSupportedFeature("1324")
    29  
    30  	assert.False(t, suppFeat.GetFeature(1))
    31  	assert.False(t, suppFeat.GetFeature(2))
    32  	assert.True(t, suppFeat.GetFeature(3))
    33  	assert.False(t, suppFeat.GetFeature(4))
    34  
    35  	assert.False(t, suppFeat.GetFeature(5))
    36  	assert.True(t, suppFeat.GetFeature(6))
    37  	assert.False(t, suppFeat.GetFeature(7))
    38  	assert.False(t, suppFeat.GetFeature(8))
    39  
    40  	assert.True(t, suppFeat.GetFeature(9))
    41  	assert.True(t, suppFeat.GetFeature(10))
    42  	assert.False(t, suppFeat.GetFeature(11))
    43  	assert.False(t, suppFeat.GetFeature(12))
    44  
    45  	assert.True(t, suppFeat.GetFeature(13))
    46  	assert.False(t, suppFeat.GetFeature(14))
    47  	assert.False(t, suppFeat.GetFeature(15))
    48  	assert.False(t, suppFeat.GetFeature(16))
    49  }
    50  
    51  func TestStringOfSupportedFeature(t *testing.T) {
    52  	suppFeat, _ := NewSupportedFeature("1324")
    53  	assert.Equal(t, "1324", suppFeat.String())
    54  
    55  	// testing padding
    56  	suppFeat, _ = NewSupportedFeature("1")
    57  	assert.Equal(t, "01", suppFeat.String())
    58  
    59  	suppFeat, _ = NewSupportedFeature("ABCDE")
    60  	assert.Equal(t, "0abcde", suppFeat.String())
    61  }
    62  
    63  func TestNegotiateWithOfSupportedFeature(t *testing.T) {
    64  	var suppFeatA, suppFeatB, negotiatedFeat SupportedFeature
    65  	suppFeatA, _ = NewSupportedFeature("0FFF")
    66  	suppFeatB, _ = NewSupportedFeature("1324")
    67  	negotiatedFeat = suppFeatA.NegotiateWith(suppFeatB)
    68  	assert.Equal(t, SupportedFeature{0x03, 0x24}, negotiatedFeat)
    69  
    70  	suppFeatA, _ = NewSupportedFeature("0234")
    71  	suppFeatB, _ = NewSupportedFeature("0001")
    72  	negotiatedFeat = suppFeatA.NegotiateWith(suppFeatB)
    73  	assert.Equal(t, SupportedFeature{0x00, 0x00}, negotiatedFeat)
    74  
    75  	suppFeatA, _ = NewSupportedFeature("FFFF")
    76  	suppFeatB, _ = NewSupportedFeature("F")
    77  	negotiatedFeat = suppFeatA.NegotiateWith(suppFeatB)
    78  	assert.Equal(t, SupportedFeature{0x00, 0x0F}, negotiatedFeat)
    79  
    80  	suppFeatA, _ = NewSupportedFeature("3000")
    81  	suppFeatB, _ = NewSupportedFeature("3")
    82  	negotiatedFeat = suppFeatA.NegotiateWith(suppFeatB)
    83  	assert.Equal(t, SupportedFeature{0x00, 0x00}, negotiatedFeat)
    84  
    85  	suppFeatA, _ = NewSupportedFeature("23E3")
    86  	suppFeatB, _ = NewSupportedFeature("1")
    87  	negotiatedFeat = suppFeatA.NegotiateWith(suppFeatB)
    88  	assert.Equal(t, SupportedFeature{0x00, 0x01}, negotiatedFeat)
    89  }