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  }