github.com/jshiv/can-go@v0.2.1-0.20210224011015-069e90e90bdf/pkg/dbc/messageid_test.go (about) 1 package dbc 2 3 import ( 4 "fmt" 5 "testing" 6 7 "gotest.tools/v3/assert" 8 ) 9 10 func TestMessageID_Validate(t *testing.T) { 11 for _, tt := range []MessageID{ 12 0, 13 1, 14 maxID, 15 0 | messageIDExtendedFlag, 16 1 | messageIDExtendedFlag, 17 maxID | messageIDExtendedFlag, 18 maxExtendedID | messageIDExtendedFlag, 19 messageIDIndependentSignals, 20 } { 21 tt := tt 22 t.Run(fmt.Sprintf("%v", tt), func(t *testing.T) { 23 assert.NilError(t, tt.Validate()) 24 }) 25 } 26 } 27 28 func TestMessageID_Validate_Error(t *testing.T) { 29 for _, tt := range []MessageID{ 30 maxID + 1, 31 (maxExtendedID + 1) | messageIDExtendedFlag, 32 0xffffffff, 33 } { 34 tt := tt 35 t.Run(fmt.Sprintf("%v", tt), func(t *testing.T) { 36 assert.ErrorContains(t, tt.Validate(), "invalid") 37 }) 38 } 39 } 40 41 func TestMessageID_ToCAN(t *testing.T) { 42 for _, tt := range []struct { 43 messageID MessageID 44 expected uint32 45 }{ 46 {messageID: 1, expected: 1}, 47 {messageID: messageIDIndependentSignals, expected: 0x40000000}, 48 {messageID: 2566857156, expected: 419373508}, 49 } { 50 tt := tt 51 t.Run(fmt.Sprintf("%v", tt.messageID), func(t *testing.T) { 52 assert.Equal(t, tt.expected, tt.messageID.ToCAN()) 53 }) 54 } 55 } 56 57 func TestMessageID_IsExtended(t *testing.T) { 58 for _, tt := range []struct { 59 messageID MessageID 60 expected bool 61 }{ 62 {messageID: 1, expected: false}, 63 {messageID: messageIDIndependentSignals, expected: false}, 64 {messageID: 2566857156, expected: true}, 65 } { 66 tt := tt 67 t.Run(fmt.Sprintf("%v", tt.messageID), func(t *testing.T) { 68 assert.Equal(t, tt.expected, tt.messageID.IsExtended()) 69 }) 70 } 71 }