MCPcopy Index your code
hub / github.com/github/gh-ost / TestBuildDMLUpdateQuery

Function TestBuildDMLUpdateQuery

go/sql/builder_test.go:957–1061  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

955}
956
957func 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 {

Callers

nothing calls this directly

Calls 5

BuildQueryMethod · 0.95
NewColumnListFunction · 0.85
NewDMLUpdateQueryBuilderFunction · 0.85
normalizeQueryFunction · 0.85
ErrorMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…