(t *testing.T)
| 845 | } |
| 846 | |
| 847 | func TestBuildDMLInsertQuery(t *testing.T) { |
| 848 | databaseName := "mydb" |
| 849 | tableName := "tbl" |
| 850 | tableColumns := NewColumnList([]string{"id", "name", "rank", "position", "age"}) |
| 851 | args := []interface{}{3, "testname", "first", 17, 23} |
| 852 | { |
| 853 | sharedColumns := NewColumnList([]string{"id", "name", "position", "age"}) |
| 854 | builder, err := NewDMLInsertQueryBuilder(databaseName, tableName, tableColumns, sharedColumns, sharedColumns) |
| 855 | require.NoError(t, err) |
| 856 | query, sharedArgs, err := builder.BuildQuery(args) |
| 857 | require.NoError(t, err) |
| 858 | expected := ` |
| 859 | insert /* gh-ost mydb.tbl */ ignore |
| 860 | into mydb.tbl |
| 861 | (id, name, position, age) |
| 862 | values |
| 863 | (?, ?, ?, ?) |
| 864 | ` |
| 865 | require.Equal(t, normalizeQuery(expected), normalizeQuery(query)) |
| 866 | require.Equal(t, []interface{}{3, "testname", 17, 23}, sharedArgs) |
| 867 | } |
| 868 | { |
| 869 | sharedColumns := NewColumnList([]string{"position", "name", "age", "id"}) |
| 870 | builder, err := NewDMLInsertQueryBuilder(databaseName, tableName, tableColumns, sharedColumns, sharedColumns) |
| 871 | require.NoError(t, err) |
| 872 | query, sharedArgs, err := builder.BuildQuery(args) |
| 873 | require.NoError(t, err) |
| 874 | expected := ` |
| 875 | insert /* gh-ost mydb.tbl */ ignore |
| 876 | into mydb.tbl |
| 877 | (position, name, age, id) |
| 878 | values |
| 879 | (?, ?, ?, ?) |
| 880 | ` |
| 881 | require.Equal(t, normalizeQuery(expected), normalizeQuery(query)) |
| 882 | require.Equal(t, []interface{}{17, "testname", 23, 3}, sharedArgs) |
| 883 | } |
| 884 | { |
| 885 | sharedColumns := NewColumnList([]string{"position", "name", "surprise", "id"}) |
| 886 | _, err := NewDMLInsertQueryBuilder(databaseName, tableName, tableColumns, sharedColumns, sharedColumns) |
| 887 | require.Error(t, err) |
| 888 | } |
| 889 | { |
| 890 | sharedColumns := NewColumnList([]string{}) |
| 891 | _, err := NewDMLInsertQueryBuilder(databaseName, tableName, tableColumns, sharedColumns, sharedColumns) |
| 892 | require.Error(t, err) |
| 893 | } |
| 894 | } |
| 895 | |
| 896 | func TestBuildDMLInsertQuerySignedUnsigned(t *testing.T) { |
| 897 | databaseName := "mydb" |
nothing calls this directly
no test coverage detected
searching dependent graphs…