11package bigquery
22
33import (
4+ "context"
5+ "errors"
46 "github.com/golang-migrate/migrate/v4/database"
57 "strings"
68 "testing"
79)
810
911const (
10- connectionUrl = "bigquery://https://www.googleapis.com/bigquery/v2:443?x-migrations-table=schema_migrations&x-statement-timeout=0&credentials_filename=./tmp/myproject-XXXXXXXXXXXXX-XXXXXXXXXXXX.json&dataset_id=mydataset"
12+ //connectionUrl = "bigquery://https://bigquery.googleapis.com/bigquery/v2/?x-migrations-table=schema_migrations&x-statement-timeout=0&credentials_filename=./tmp/myproject-XXXXXXXXXXXXX-XXXXXXXXXXXX.json&dataset_id=mydataset"
13+ connectionUrl = "bigquery://http://0.0.0.0:9050/?x-migrations-table=schema_migrations&project_id=myproject&dataset_id=mydataset"
1114)
1215
1316func openConnection () (database.Driver , error ) {
@@ -21,66 +24,117 @@ func openConnection() (database.Driver, error) {
2124 return driver , nil
2225}
2326
27+ func TestWithInstanceWithoutClient (t * testing.T ) {
28+ driver , err := WithInstance (context .Background (), nil , & Config {})
29+ if err == nil {
30+ t .Errorf ("expected `no client`, got nil" )
31+ return
32+ }
33+ if ! errors .Is (err , ErrNoClient ) {
34+ t .Errorf ("expected `no client`, got %s" , err .Error ())
35+ return
36+ }
37+ if driver != nil {
38+ t .Errorf ("driver should be nil" )
39+ return
40+ }
41+ }
42+
2443func TestOpen (t * testing.T ) {
25- _ , err := openConnection ()
44+ driver , err := openConnection ()
2645 if err != nil {
2746 t .Error (err )
2847 return
2948 }
49+
50+ defer func () {
51+ err := driver .Close ()
52+ if err != nil {
53+ t .Error (err )
54+ }
55+ }()
3056}
3157
32- func TestVersion (t * testing.T ) {
58+ func TestClose (t * testing.T ) {
3359 driver , err := openConnection ()
3460 if err != nil {
3561 t .Error (err )
3662 return
3763 }
3864
39- version , dirty , err := driver .Version ()
65+ defer func () {
66+ err := driver .Close ()
67+ if err != nil {
68+ t .Error (err )
69+ }
70+ }()
71+
72+ err = driver .Close ()
4073 if err != nil {
4174 t .Error (err )
4275 return
4376 }
44-
45- t .Log (version , dirty )
4677}
4778
48- func TestDrop (t * testing.T ) {
79+ func TestVersion (t * testing.T ) {
4980 driver , err := openConnection ()
5081 if err != nil {
5182 t .Error (err )
5283 return
5384 }
5485
55- err = driver .Drop ()
86+ defer func () {
87+ err := driver .Close ()
88+ if err != nil {
89+ t .Error (err )
90+ }
91+ }()
92+
93+ version , dirty , err := driver .Version ()
5694 if err != nil {
5795 t .Error (err )
5896 return
5997 }
98+
99+ t .Log (version , dirty )
60100}
61101
62- func TestClose (t * testing.T ) {
102+ func TestSetVersion (t * testing.T ) {
63103 driver , err := openConnection ()
64104 if err != nil {
65105 t .Error (err )
66106 return
67107 }
68108
69- err = driver .Close ()
109+ defer func () {
110+ err := driver .Close ()
111+ if err != nil {
112+ t .Error (err )
113+ }
114+ }()
115+
116+ err = driver .SetVersion (- 1 , false )
70117 if err != nil {
71118 t .Error (err )
72119 return
73120 }
74121}
75122
76- func TestSetVersion (t * testing.T ) {
123+ func TestDrop (t * testing.T ) {
77124 driver , err := openConnection ()
78125 if err != nil {
79126 t .Error (err )
80127 return
81128 }
82129
83- err = driver .SetVersion (- 1 , false )
130+ defer func () {
131+ err := driver .Close ()
132+ if err != nil {
133+ t .Error (err )
134+ }
135+ }()
136+
137+ err = driver .Drop ()
84138 if err != nil {
85139 t .Error (err )
86140 return
@@ -94,6 +148,13 @@ func TestRun(t *testing.T) {
94148 return
95149 }
96150
151+ defer func () {
152+ err := driver .Close ()
153+ if err != nil {
154+ t .Error (err )
155+ }
156+ }()
157+
97158 err = driver .Run (strings .NewReader (`
98159 CREATE TABLE IF NOT EXISTS users (
99160 first_name STRING,
@@ -112,16 +173,21 @@ func TestRunWithError(t *testing.T) {
112173 return
113174 }
114175
176+ defer func () {
177+ err := driver .Close ()
178+ if err != nil {
179+ t .Error (err )
180+ }
181+ }()
182+
115183 err = driver .Run (strings .NewReader (`
116184 CREATE TABLE IF NOT EXISTS users (
117185 first_name STRINGa,
118186 last_name STRING
119187 )` ))
120- if err != nil {
121- t .Log (err )
122- return
188+ if err == nil {
189+ t .Error ("expected 'googleapi: Error 400: Query error: Type not found: STRINGa at [4:36], invalidQuery' got nil" )
123190 }
124191
125- t .Error ("error is nil, should be 'googleapi: Error 400: Query error: Type not found: STRINGa at [4:36], invalidQuery'" )
126- return
192+ t .Log (err )
127193}
0 commit comments