137 lines
3.2 KiB
Go
137 lines
3.2 KiB
Go
package domain
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestDeviceType_Constants(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
value DeviceType
|
|
expected int
|
|
}{
|
|
{"Unknown", DeviceTypeUnknown, 0},
|
|
{"Web", DeviceTypeWeb, 1},
|
|
{"Mobile", DeviceTypeMobile, 2},
|
|
{"Desktop", DeviceTypeDesktop, 3},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
if int(tc.value) != tc.expected {
|
|
t.Errorf("expected %d, got %d", tc.expected, int(tc.value))
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestDeviceStatus_Constants(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
value DeviceStatus
|
|
expected int
|
|
}{
|
|
{"Inactive", DeviceStatusInactive, 0},
|
|
{"Active", DeviceStatusActive, 1},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
if int(tc.value) != tc.expected {
|
|
t.Errorf("expected %d, got %d", tc.expected, int(tc.value))
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestDevice_TableName(t *testing.T) {
|
|
var d Device
|
|
if got := d.TableName(); got != "devices" {
|
|
t.Errorf("expected table name 'devices', got %q", got)
|
|
}
|
|
}
|
|
|
|
func TestDevice_StructFields(t *testing.T) {
|
|
now := time.Now()
|
|
trustExpires := now.Add(24 * time.Hour)
|
|
|
|
d := Device{
|
|
ID: 1,
|
|
UserID: 2,
|
|
DeviceID: "device-123",
|
|
DeviceName: "Test Device",
|
|
DeviceType: DeviceTypeWeb,
|
|
DeviceOS: "Windows",
|
|
DeviceBrowser: "Chrome",
|
|
IP: "127.0.0.1",
|
|
Location: "Beijing",
|
|
IsTrusted: true,
|
|
TrustExpiresAt: &trustExpires,
|
|
Status: DeviceStatusActive,
|
|
LastActiveTime: now,
|
|
CreatedAt: now,
|
|
UpdatedAt: now,
|
|
}
|
|
|
|
if d.ID != 1 {
|
|
t.Errorf("expected ID 1, got %d", d.ID)
|
|
}
|
|
if d.UserID != 2 {
|
|
t.Errorf("expected UserID 2, got %d", d.UserID)
|
|
}
|
|
if d.DeviceID != "device-123" {
|
|
t.Errorf("expected DeviceID 'device-123', got %q", d.DeviceID)
|
|
}
|
|
if d.DeviceName != "Test Device" {
|
|
t.Errorf("expected DeviceName 'Test Device', got %q", d.DeviceName)
|
|
}
|
|
if d.DeviceType != DeviceTypeWeb {
|
|
t.Errorf("expected DeviceTypeWeb, got %d", d.DeviceType)
|
|
}
|
|
if d.DeviceOS != "Windows" {
|
|
t.Errorf("expected DeviceOS 'Windows', got %q", d.DeviceOS)
|
|
}
|
|
if d.DeviceBrowser != "Chrome" {
|
|
t.Errorf("expected DeviceBrowser 'Chrome', got %q", d.DeviceBrowser)
|
|
}
|
|
if d.IP != "127.0.0.1" {
|
|
t.Errorf("expected IP '127.0.0.1', got %q", d.IP)
|
|
}
|
|
if d.Location != "Beijing" {
|
|
t.Errorf("expected Location 'Beijing', got %q", d.Location)
|
|
}
|
|
if !d.IsTrusted {
|
|
t.Error("expected IsTrusted to be true")
|
|
}
|
|
if d.TrustExpiresAt == nil || !d.TrustExpiresAt.Equal(trustExpires) {
|
|
t.Error("expected TrustExpiresAt to match")
|
|
}
|
|
if d.Status != DeviceStatusActive {
|
|
t.Errorf("expected DeviceStatusActive, got %d", d.Status)
|
|
}
|
|
if d.LastActiveTime.IsZero() {
|
|
t.Error("expected LastActiveTime to be set")
|
|
}
|
|
if d.CreatedAt.IsZero() {
|
|
t.Error("expected CreatedAt to be set")
|
|
}
|
|
if d.UpdatedAt.IsZero() {
|
|
t.Error("expected UpdatedAt to be set")
|
|
}
|
|
}
|
|
|
|
func TestDevice_DefaultStatus(t *testing.T) {
|
|
var d Device
|
|
if d.Status != DeviceStatusInactive {
|
|
t.Errorf("expected default status Inactive(0), got %d", d.Status)
|
|
}
|
|
}
|
|
|
|
func TestDevice_DefaultDeviceType(t *testing.T) {
|
|
var d Device
|
|
if d.DeviceType != DeviceTypeUnknown {
|
|
t.Errorf("expected default device type Unknown(0), got %d", d.DeviceType)
|
|
}
|
|
}
|