package repository import ( "testing" ) // TestTokenRepository_BatchDeleteLogic 测试批量删除逻辑 func TestTokenRepository_BatchDeleteLogic(t *testing.T) { tests := []struct { name string tokensToDelete []string wantCount int64 wantError bool }{ { name: "有效的token列表", tokensToDelete: []string{"token1", "token2", "token3"}, wantCount: 3, wantError: false, }, { name: "空列表应该返回0", tokensToDelete: []string{}, wantCount: 0, wantError: false, }, { name: "单个token", tokensToDelete: []string{"token1"}, wantCount: 1, wantError: false, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // 验证批量删除逻辑:空列表应该直接返回0 if len(tt.tokensToDelete) == 0 { if tt.wantCount != 0 { t.Errorf("Empty list should return count 0, got %d", tt.wantCount) } } }) } } // TestTokenRepository_QueryConditions 测试token查询条件逻辑 func TestTokenRepository_QueryConditions(t *testing.T) { tests := []struct { name string accessToken string userID int64 wantValid bool }{ { name: "有效的access token", accessToken: "valid-token-123", userID: 1, wantValid: true, }, { name: "access token为空", accessToken: "", userID: 1, wantValid: false, }, { name: "用户ID为0", accessToken: "valid-token-123", userID: 0, wantValid: false, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { isValid := tt.accessToken != "" && tt.userID > 0 if isValid != tt.wantValid { t.Errorf("Query condition validation failed: got %v, want %v", isValid, tt.wantValid) } }) } } // TestTokenRepository_FindTokenByIDLogic 测试根据ID查找token的逻辑 func TestTokenRepository_FindTokenByIDLogic(t *testing.T) { tests := []struct { name string accessToken string resultCount int wantError bool }{ { name: "找到token", accessToken: "token-123", resultCount: 1, wantError: false, }, { name: "未找到token", accessToken: "token-123", resultCount: 0, wantError: true, // 访问索引0会panic }, { name: "找到多个token(异常情况)", accessToken: "token-123", resultCount: 2, wantError: false, // 返回第一个 }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // 验证逻辑:如果结果为空,访问索引0会出错 hasError := tt.resultCount == 0 if hasError != tt.wantError { t.Errorf("FindTokenByID logic failed: got error=%v, want error=%v", hasError, tt.wantError) } }) } }