1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package tracing
- import (
- "testing"
- "github.com/stretchr/testify/require"
- )
- func TestNewIdentity(t *testing.T) {
- testCases := []struct {
- testCase string
- trace string
- expected string
- }{
- {
- testCase: "full length trace",
- trace: "ec31ad8a01fde11fdcabe2efdce36873:52726f6cabc144f5:0:1",
- expected: "ec31ad8a01fde11fdcabe2efdce36873:52726f6cabc144f5:0:1",
- },
- {
- testCase: "short trace ID",
- trace: "ad8a01fde11fdcabe2efdce36873:52726f6cabc144f5:0:1",
- expected: "0000ad8a01fde11fdcabe2efdce36873:52726f6cabc144f5:0:1",
- },
- {
- testCase: "short trace ID with 0s in the middle",
- trace: "ad8a01fde11f000002efdce36873:52726f6cabc144f5:0:1",
- expected: "0000ad8a01fde11f000002efdce36873:52726f6cabc144f5:0:1",
- },
- {
- testCase: "short trace ID with 0s in the beginning and middle",
- trace: "001ad8a01fde11fdcabe2efdce36873:52726f6cabc144f5:0:1",
- expected: "0001ad8a01fde11fdcabe2efdce36873:52726f6cabc144f5:0:1",
- },
- {
- testCase: "no trace",
- trace: "",
- },
- {
- testCase: "missing flags",
- trace: "ec31ad8a01fde11fdcabe2efdce36873:52726f6cabc144f5:0",
- },
- {
- testCase: "missing separator",
- trace: "ec31ad8a01fde11fdcabe2efdce3687352726f6cabc144f501",
- },
- }
- for _, testCase := range testCases {
- identity, err := NewIdentity(testCase.trace)
- if testCase.expected != "" {
- require.NoError(t, err)
- require.Equal(t, testCase.expected, identity.String())
- serializedIdentity, err := identity.MarshalBinary()
- require.NoError(t, err)
- deserializedIdentity := new(Identity)
- err = deserializedIdentity.UnmarshalBinary(serializedIdentity)
- require.NoError(t, err)
- require.Equal(t, identity, deserializedIdentity)
- } else {
- require.Error(t, err)
- require.Nil(t, identity)
- }
- }
- }
|