package testing import ( "testing" ) func TestStarRows_Row(t *testing.T) { db := setupTestDB(t) defer db.Close() rows, err := db.Query("SELECT * FROM users ORDER BY name") if err != nil { t.Fatalf("Query failed: %v", err) } defer rows.Close() // Test first row row := rows.Row(0) name := row.MustString("name") if name != "Alice" { t.Errorf("Expected name 'Alice', got '%s'", name) } // Test out of bounds row = rows.Row(999) if len(row.Result()) != 0 { t.Errorf("Expected empty result for out of bounds index") } // Test negative index row = rows.Row(-1) if len(row.Result()) != 0 { t.Errorf("Expected empty result for negative index") } } func TestStarRows_Col(t *testing.T) { db := setupTestDB(t) defer db.Close() rows, err := db.Query("SELECT * FROM users ORDER BY name") if err != nil { t.Fatalf("Query failed: %v", err) } defer rows.Close() // Test column extraction col := rows.Col("name") names := col.MustString() if len(names) != 3 { t.Errorf("Expected 3 names, got %d", len(names)) } if names[0] != "Alice" { t.Errorf("Expected first name 'Alice', got '%s'", names[0]) } // Test non-existent column col = rows.Col("nonexistent") if len(col.Result()) != 0 { t.Errorf("Expected empty result for non-existent column") } } func TestStarRows_Rescan(t *testing.T) { db := setupTestDB(t) defer db.Close() db.ManualScan = true rows, err := db.Query("SELECT * FROM users") if err != nil { t.Fatalf("Query failed: %v", err) } defer rows.Close() err = rows.Rescan() if err != nil { t.Fatalf("Rescan failed: %v", err) } if rows.Length() != 3 { t.Errorf("Expected 3 rows, got %d", rows.Length()) } } func TestStarRows_StringResult(t *testing.T) { db := setupTestDB(t) defer db.Close() rows, err := db.Query("SELECT name, age FROM users WHERE name = ?", "Alice") if err != nil { t.Fatalf("Query failed: %v", err) } defer rows.Close() if len(rows.StringResult()) != 1 { t.Fatalf("Expected 1 string result, got %d", len(rows.StringResult())) } record := rows.StringResult()[0] if record["name"] != "Alice" { t.Errorf("Expected name 'Alice', got '%s'", record["name"]) } if record["age"] != "25" { t.Errorf("Expected age '25', got '%s'", record["age"]) } }