1package clickhouse 2 3import ( 4 "database/sql/driver" 5 "reflect" 6 "testing" 7 "time" 8) 9 10func Test_bootstrap_Open(t *testing.T) { 11 type args struct { 12 dsn string 13 } 14 tests := []struct { 15 name string 16 d *bootstrap 17 args args 18 want driver.Conn 19 wantErr bool 20 }{ 21 { 22 name: "Return nil connection when error occured", 23 d: &bootstrap{}, 24 args: args{dsn: "rubbish"}, 25 want: nil, 26 wantErr: true, 27 }, 28 } 29 for _, tt := range tests { 30 t.Run(tt.name, func(t *testing.T) { 31 d := &bootstrap{} 32 got, err := d.Open(tt.args.dsn) 33 if (err != nil) != tt.wantErr { 34 t.Errorf("bootstrap.Open() error = %v, wantErr %v", err, tt.wantErr) 35 return 36 } 37 if !reflect.DeepEqual(got, tt.want) { 38 t.Errorf("bootstrap.Open() = %#v, want %v", got, tt.want) 39 } 40 }) 41 } 42} 43 44func TestOpen(t *testing.T) { 45 type args struct { 46 dsn string 47 } 48 tests := []struct { 49 name string 50 args args 51 want driver.Conn 52 wantErr bool 53 }{ 54 { 55 name: "Return nil connection when error occured", 56 want: nil, 57 wantErr: true, 58 }, 59 } 60 for _, tt := range tests { 61 t.Run(tt.name, func(t *testing.T) { 62 got, err := Open(tt.args.dsn) 63 if (err != nil) != tt.wantErr { 64 t.Errorf("Open() error = %v, wantErr %v", err, tt.wantErr) 65 return 66 } 67 if !reflect.DeepEqual(got, tt.want) { 68 t.Errorf("Open() = %#v, want %v", got, tt.want) 69 } 70 }) 71 } 72} 73 74func Test_now(t *testing.T) { 75 tests := []struct { 76 name string 77 sleepDuration time.Duration 78 want time.Time 79 }{ 80 { 81 name: "1 second", 82 sleepDuration: time.Second, 83 want: time.Unix(1, 0), 84 }, 85 } 86 for _, tt := range tests { 87 t.Run(tt.name, func(t *testing.T) { 88 time.Sleep(tt.sleepDuration) 89 time.Sleep(time.Millisecond) 90 got := now() 91 if !got.Equal(tt.want) { 92 t.Errorf("now() = %s, want %s", got.Format(time.RFC3339), tt.want.Format(time.RFC3339)) 93 } 94 }) 95 } 96} 97