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