github.com/Ali-iotechsys/sqlboiler/v4@v4.0.0-20221208124957-6aec9a5f1f71/drivers/table_test.go (about) 1 package drivers 2 3 import "testing" 4 5 func TestGetTable(t *testing.T) { 6 t.Parallel() 7 8 tables := []Table{ 9 {Name: "one"}, 10 } 11 12 tbl := GetTable(tables, "one") 13 14 if tbl.Name != "one" { 15 t.Error("didn't get column") 16 } 17 } 18 19 func TestGetTableMissing(t *testing.T) { 20 t.Parallel() 21 22 tables := []Table{ 23 {Name: "one"}, 24 } 25 26 defer func() { 27 if r := recover(); r == nil { 28 t.Error("expected a panic failure") 29 } 30 }() 31 32 GetTable(tables, "missing") 33 } 34 35 func TestGetColumn(t *testing.T) { 36 t.Parallel() 37 38 table := Table{ 39 Columns: []Column{ 40 {Name: "one"}, 41 }, 42 } 43 44 c := table.GetColumn("one") 45 46 if c.Name != "one" { 47 t.Error("didn't get column") 48 } 49 } 50 51 func TestGetColumnMissing(t *testing.T) { 52 t.Parallel() 53 54 table := Table{ 55 Columns: []Column{ 56 {Name: "one"}, 57 }, 58 } 59 60 defer func() { 61 if r := recover(); r == nil { 62 t.Error("expected a panic failure") 63 } 64 }() 65 66 table.GetColumn("missing") 67 } 68 69 func TestCanLastInsertID(t *testing.T) { 70 t.Parallel() 71 72 tests := []struct { 73 Can bool 74 PKeys []Column 75 }{ 76 {true, []Column{ 77 {Name: "id", Type: "int64", Default: "a"}, 78 }}, 79 {true, []Column{ 80 {Name: "id", Type: "uint64", Default: "a"}, 81 }}, 82 {true, []Column{ 83 {Name: "id", Type: "int", Default: "a"}, 84 }}, 85 {true, []Column{ 86 {Name: "id", Type: "uint", Default: "a"}, 87 }}, 88 {true, []Column{ 89 {Name: "id", Type: "uint", Default: "a"}, 90 }}, 91 {false, []Column{ 92 {Name: "id", Type: "uint", Default: "a"}, 93 {Name: "id2", Type: "uint", Default: "a"}, 94 }}, 95 {false, []Column{ 96 {Name: "id", Type: "string", Default: "a"}, 97 }}, 98 {false, []Column{ 99 {Name: "id", Type: "int", Default: ""}, 100 }}, 101 {false, nil}, 102 } 103 104 for i, test := range tests { 105 table := Table{ 106 Columns: test.PKeys, 107 PKey: &PrimaryKey{}, 108 } 109 110 var pkeyNames []string 111 for _, pk := range test.PKeys { 112 pkeyNames = append(pkeyNames, pk.Name) 113 } 114 table.PKey.Columns = pkeyNames 115 116 if got := table.CanLastInsertID(); got != test.Can { 117 t.Errorf("%d) wrong: %t", i, got) 118 } 119 } 120 } 121 122 func TestCanSoftDelete(t *testing.T) { 123 t.Parallel() 124 125 tests := []struct { 126 Can bool 127 Columns []Column 128 }{ 129 {true, []Column{ 130 {Name: "deleted_at", Type: "null.Time"}, 131 }}, 132 {false, []Column{ 133 {Name: "deleted_at", Type: "time.Time"}, 134 }}, 135 {false, []Column{ 136 {Name: "deleted_at", Type: "int"}, 137 }}, 138 {false, nil}, 139 } 140 141 for i, test := range tests { 142 table := Table{ 143 Columns: test.Columns, 144 } 145 146 if got := table.CanSoftDelete("deleted_at"); got != test.Can { 147 t.Errorf("%d) wrong: %t", i, got) 148 } 149 } 150 }