1
+ package postgres
2
+
3
+ import (
4
+ "testing"
5
+ "gorm.io/gorm/schema"
6
+ )
7
+
8
+ func Test_DataTypeOf (t * testing.T ) {
9
+ type fields struct {
10
+ Config * Config
11
+ }
12
+ type args struct {
13
+ field * schema.Field
14
+ }
15
+ tests := []struct {
16
+ name string
17
+ fields fields
18
+ args args
19
+ want string
20
+ } {
21
+ {
22
+ name : "it should return boolean" ,
23
+ args : args {field : & schema.Field {DataType : schema .Bool }},
24
+ want : "boolean" ,
25
+ },
26
+ {
27
+ name : "it should return text -1" ,
28
+ args : args {field : & schema.Field {DataType : schema .String , Size : - 1 }},
29
+ want : "text" ,
30
+ },
31
+ {
32
+ name : "it should return text > 10485760" ,
33
+ args : args {field : & schema.Field {DataType : schema .String , Size : 12345678 }},
34
+ want : "text" ,
35
+ },
36
+ {
37
+ name : "it should return varchar(100)" ,
38
+ args : args {field : & schema.Field {DataType : schema .String , Size : 100 }},
39
+ want : "varchar(100)" ,
40
+ },
41
+ {
42
+ name : "it should return varchar(10485760)" ,
43
+ args : args {field : & schema.Field {DataType : schema .String , Size : 10485760 }},
44
+ want : "varchar(10485760)" ,
45
+ },
46
+ }
47
+ for _ , tt := range tests {
48
+ t .Run (tt .name , func (t * testing.T ) {
49
+ dialector := Dialector {
50
+ Config : tt .fields .Config ,
51
+ }
52
+ if got := dialector .DataTypeOf (tt .args .field ); got != tt .want {
53
+ t .Errorf ("DataTypeOf() = %v, want %v" , got , tt .want )
54
+ }
55
+ })
56
+ }
57
+ }
0 commit comments