...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package cloudsqlconn_test
19
20 import (
21 "database/sql"
22 "fmt"
23 "os"
24 "testing"
25 "time"
26
27 "cloud.google.com/go/cloudsqlconn/sqlserver/mssql"
28 )
29
30 var (
31 sqlserverConnName = os.Getenv("SQLSERVER_CONNECTION_NAME")
32 sqlserverUser = os.Getenv("SQLSERVER_USER")
33 sqlserverPass = os.Getenv("SQLSERVER_PASS")
34 sqlserverDB = os.Getenv("SQLSERVER_DB")
35 )
36
37 func requireSQLServerVars(t *testing.T) {
38 switch "" {
39 case sqlserverConnName:
40 t.Fatal("'SQLSERVER_CONNECTION_NAME' env var not set")
41 case sqlserverUser:
42 t.Fatal("'SQLSERVER_USER' env var not set")
43 case sqlserverPass:
44 t.Fatal("'SQLSERVER_PASS' env var not set")
45 case sqlserverDB:
46 t.Fatal("'SQLSERVER_DB' env var not set")
47 }
48 }
49
50 func TestSqlServerHook(t *testing.T) {
51 if testing.Short() {
52 t.Skip("skipping SqlServer integration tests")
53 }
54 requireSQLServerVars(t)
55
56 testConn := func(db *sql.DB) {
57 var now time.Time
58 if err := db.QueryRow("SELECT getdate()").Scan(&now); err != nil {
59 t.Fatalf("QueryRow failed: %v", err)
60 }
61 t.Log(now)
62 }
63 cleanup, err := mssql.RegisterDriver("cloudsql-sqlserver")
64 if err != nil {
65 t.Fatalf("failed to register driver: %v", err)
66 }
67 defer cleanup()
68 db, err := sql.Open(
69 "cloudsql-sqlserver",
70 fmt.Sprintf("sqlserver://%s:%s@localhost?database=%s&cloudsql=%s",
71 sqlserverUser, sqlserverPass, sqlserverDB, sqlserverConnName),
72 )
73 if err != nil {
74 t.Fatalf("sql.Open want err = nil, got = %v", err)
75 }
76 defer db.Close()
77 testConn(db)
78 }
79
View as plain text