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