(t *testing.T)
| 955 | } |
| 956 | |
| 957 | func TestBuildDMLUpdateQuery(t *testing.T) { |
| 958 | databaseName := "mydb" |
| 959 | tableName := "tbl" |
| 960 | tableColumns := NewColumnList([]string{"id", "name", "rank", "position", "age"}) |
| 961 | valueArgs := []interface{}{3, "testname", "newval", 17, 23} |
| 962 | whereArgs := []interface{}{3, "testname", "findme", 17, 56} |
| 963 | { |
| 964 | sharedColumns := NewColumnList([]string{"id", "name", "position", "age"}) |
| 965 | uniqueKeyColumns := NewColumnList([]string{"position"}) |
| 966 | builder, err := NewDMLUpdateQueryBuilder(databaseName, tableName, tableColumns, sharedColumns, sharedColumns, uniqueKeyColumns) |
| 967 | require.NoError(t, err) |
| 968 | query, updateArgs, err := builder.BuildQuery(valueArgs, whereArgs) |
| 969 | require.NoError(t, err) |
| 970 | expected := ` |
| 971 | update /* gh-ost mydb.tbl */ |
| 972 | mydb.tbl |
| 973 | set id=?, name=?, position=?, age=? |
| 974 | where |
| 975 | ((position = ?)) |
| 976 | ` |
| 977 | require.Equal(t, normalizeQuery(expected), normalizeQuery(query)) |
| 978 | require.Equal(t, []interface{}{3, "testname", 17, 23, 17}, updateArgs) |
| 979 | } |
| 980 | { |
| 981 | sharedColumns := NewColumnList([]string{"id", "name", "position", "age"}) |
| 982 | uniqueKeyColumns := NewColumnList([]string{"position", "name"}) |
| 983 | builder, err := NewDMLUpdateQueryBuilder(databaseName, tableName, tableColumns, sharedColumns, sharedColumns, uniqueKeyColumns) |
| 984 | require.NoError(t, err) |
| 985 | query, updateArgs, err := builder.BuildQuery(valueArgs, whereArgs) |
| 986 | require.NoError(t, err) |
| 987 | expected := ` |
| 988 | update /* gh-ost mydb.tbl */ |
| 989 | mydb.tbl |
| 990 | set id=?, name=?, position=?, age=? |
| 991 | where |
| 992 | ((position = ?) and (name = ?)) |
| 993 | ` |
| 994 | require.Equal(t, normalizeQuery(expected), normalizeQuery(query)) |
| 995 | require.Equal(t, []interface{}{3, "testname", 17, 23, 17, "testname"}, updateArgs) |
| 996 | } |
| 997 | { |
| 998 | sharedColumns := NewColumnList([]string{"id", "name", "position", "age"}) |
| 999 | uniqueKeyColumns := NewColumnList([]string{"age"}) |
| 1000 | builder, err := NewDMLUpdateQueryBuilder(databaseName, tableName, tableColumns, sharedColumns, sharedColumns, uniqueKeyColumns) |
| 1001 | require.NoError(t, err) |
| 1002 | query, updateArgs, err := builder.BuildQuery(valueArgs, whereArgs) |
| 1003 | require.NoError(t, err) |
| 1004 | expected := ` |
| 1005 | update /* gh-ost mydb.tbl */ |
| 1006 | mydb.tbl |
| 1007 | set id=?, name=?, position=?, age=? |
| 1008 | where |
| 1009 | ((age = ?)) |
| 1010 | ` |
| 1011 | require.Equal(t, normalizeQuery(expected), normalizeQuery(query)) |
| 1012 | require.Equal(t, []interface{}{3, "testname", 17, 23, 56}, updateArgs) |
| 1013 | } |
| 1014 | { |
nothing calls this directly
no test coverage detected
searching dependent graphs…