53 lines
1.6 KiB
Go
53 lines
1.6 KiB
Go
/*
|
|
* SPDX-FileCopyrightText: 2023 jordi fita mas <jfita@peritasoft.com>
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
package uuid
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
type test struct {
|
|
in string
|
|
isUuid bool
|
|
bytes [16]byte
|
|
}
|
|
|
|
var tests = []test{
|
|
{"f47ac10b-58cc-0372-8567-0e02b2c3d479", true, [16]byte{0xf4, 0x7a, 0xc1, 0x0b, 0x58, 0xcc, 0x03, 0x72, 0x85, 0x67, 0x0e, 0x02, 0xb2, 0xc3, 0xd4, 0x79}},
|
|
{"2bc1be74-169d-4300-a239-49a1196a045d", true, [16]byte{0x2b, 0xc1, 0xbe, 0x74, 0x16, 0x9d, 0x43, 0x00, 0xa2, 0x39, 0x49, 0xa1, 0x19, 0x6a, 0x04, 0x5d}},
|
|
{"12bc1be74-169d-4300-a239-49a1196a045d", false, [16]byte{}},
|
|
{"2bc1be74-169d-4300-a239-49a1196a045", false, [16]byte{}},
|
|
{"2bc1be74-1x9d-4300-a239-49a1196a045d", false, [16]byte{}},
|
|
{"2bc1be74-169d-4300-a239-49a1196ag45d", false, [16]byte{}},
|
|
}
|
|
|
|
func testValid(t *testing.T, in string, isUuid bool) {
|
|
if ok := Valid(in); ok != isUuid {
|
|
t.Errorf("Valid(%s) got %v expected %v", in, ok, isUuid)
|
|
}
|
|
}
|
|
|
|
func testParse(t *testing.T, in string, expected [16]byte, isUuid bool) {
|
|
actual, err := Parse(in)
|
|
if isUuid && err != nil {
|
|
t.Errorf("Parse(%s) unexpected error %v", in, err)
|
|
} else if !isUuid && err == nil {
|
|
t.Errorf("Parse(%s) expected to fail but got %v", in, actual)
|
|
} else if actual != expected {
|
|
t.Errorf("Parse(%s) got %v expected %v", in, actual, expected)
|
|
}
|
|
}
|
|
|
|
func TestUUID(t *testing.T) {
|
|
for _, tt := range tests {
|
|
testValid(t, tt.in, tt.isUuid)
|
|
testValid(t, strings.ToUpper(tt.in), tt.isUuid)
|
|
testParse(t, tt.in, tt.bytes, tt.isUuid)
|
|
testParse(t, strings.ToUpper(tt.in), tt.bytes, tt.isUuid)
|
|
}
|
|
}
|