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  }