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 }