initial commit
This commit is contained in:
84
ids_test.go
Normal file
84
ids_test.go
Normal file
@@ -0,0 +1,84 @@
|
||||
package smolid
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
var testTimestamp = time.Date(2025, 2, 1, 0, 0, 0, 0, time.UTC)
|
||||
|
||||
func TestIDTimestamp(t *testing.T) {
|
||||
now = func() time.Time { return testTimestamp }
|
||||
id := New()
|
||||
// make sure it has the right timestamp
|
||||
if !id.Time().Equal(testTimestamp) {
|
||||
t.Errorf("Invalid time. Expected %v, got %v", testTimestamp, id.Time())
|
||||
}
|
||||
// and the right version
|
||||
if id.Version() != 1 {
|
||||
t.Errorf("Expected version 1, got %v", id.Version())
|
||||
}
|
||||
}
|
||||
|
||||
func TestIDFromString(t *testing.T) {
|
||||
id, err := FromString("ACPJE64AEYEZ6")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if id.Version() != 1 {
|
||||
t.Errorf("Expected version 1, got %v", id.Version())
|
||||
}
|
||||
id, err = FromString("ccpje64aeyez6")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if id.Version() != 1 {
|
||||
t.Errorf("Expected version 1, got %v", id.Version())
|
||||
}
|
||||
}
|
||||
|
||||
func TestIDFromStringInvalid(t *testing.T) {
|
||||
_, err := FromString("ACPJE64AEYEZ")
|
||||
if err == nil {
|
||||
t.Fatal("Expected error")
|
||||
}
|
||||
_, err = FromString("invalid")
|
||||
if err == nil {
|
||||
t.Fatal("Expected error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewForType(t *testing.T) {
|
||||
now = func() time.Time { return testTimestamp }
|
||||
const (
|
||||
MyType = iota
|
||||
MyOtherType
|
||||
)
|
||||
id := NewForType(MyType)
|
||||
|
||||
// make sure it has the right timestamp still
|
||||
if !id.Time().Equal(testTimestamp) {
|
||||
t.Errorf("Invalid time. Expected %v, got %v", testTimestamp, id.Time())
|
||||
}
|
||||
// and the right version still
|
||||
if id.Version() != 1 {
|
||||
t.Errorf("Expected version 1, got %v", id.Version())
|
||||
}
|
||||
|
||||
// and finally make sure we're able to extract the embedded type id
|
||||
if id.Type() != MyType {
|
||||
t.Errorf("Expected type %v, got %v", MyType, id.Type())
|
||||
}
|
||||
|
||||
// Then the same deal for the other type
|
||||
id = NewForType(MyOtherType)
|
||||
if !id.Time().Equal(testTimestamp) {
|
||||
t.Errorf("Invalid time. Expected %v, got %v", testTimestamp, id.Time())
|
||||
}
|
||||
if id.Version() != 1 {
|
||||
t.Errorf("Expected version 1, got %v", id.Version())
|
||||
}
|
||||
if id.Type() != MyOtherType {
|
||||
t.Errorf("Expected type %v, got %v", MyOtherType, id.Type())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user