This repository has no description
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293package norm
import ( "database/sql" "testing"
_ "github.com/mattn/go-sqlite3")
// setupTestDB creates an in-memory SQLite database with test datafunc setupTestDB(t *testing.T) *sql.DB { db, err := sql.Open("sqlite3", ":memory:") if err != nil { t.Fatalf("Failed to open database: %v", err) }
// Create users table _, err = db.Exec(` CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER NOT NULL, email TEXT UNIQUE NOT NULL, department TEXT, active BOOLEAN DEFAULT TRUE, salary REAL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) `) if err != nil { t.Fatalf("Failed to create users table: %v", err) }
// Create departments table _, err = db.Exec(` CREATE TABLE departments ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, budget REAL ) `) if err != nil { t.Fatalf("Failed to create departments table: %v", err) }
// Insert test data users := []struct { name, email, department string age int active bool salary float64 }{ {"John Doe", "john@example.com", "Engineering", 30, true, 75000.0}, {"Jane Smith", "jane@example.com", "Marketing", 25, true, 65000.0}, {"Bob Johnson", "bob@example.com", "Engineering", 35, false, 80000.0}, {"Alice Brown", "alice@example.com", "Sales", 28, true, 70000.0}, {"Charlie Wilson", "charlie@example.com", "Engineering", 32, true, 85000.0}, {"Diana Prince", "diana@example.com", "Marketing", 29, false, 68000.0}, }
for _, user := range users { _, err = db.Exec(` INSERT INTO users (name, email, department, age, active, salary) VALUES (?, ?, ?, ?, ?, ?) `, user.name, user.email, user.department, user.age, user.active, user.salary) if err != nil { t.Fatalf("Failed to insert user %s: %v", user.name, err) } }
// Insert departments departments := []struct { name string budget float64 }{ {"Engineering", 500000.0}, {"Marketing", 300000.0}, {"Sales", 400000.0}, }
for _, dept := range departments { _, err = db.Exec(` INSERT INTO departments (name, budget) VALUES (?, ?) `, dept.name, dept.budget) if err != nil { t.Fatalf("Failed to insert department %s: %v", dept.name, err) } }
return db}