MCPcopy
hub / github.com/github/gh-ost / TestApplierUpdateModifiesUniqueKeyColumns

Function TestApplierUpdateModifiesUniqueKeyColumns

go/logic/applier_test.go:67–101  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

65}
66
67func TestApplierUpdateModifiesUniqueKeyColumns(t *testing.T) {
68 columns := sql.NewColumnList([]string{"id", "item_id", "item_text"})
69 columnValues := sql.ToColumnValues([]interface{}{123456, 42, []uint8{116, 101, 115, 116}})
70
71 migrationContext := base.NewMigrationContext()
72 migrationContext.OriginalTableColumns = columns
73 migrationContext.UniqueKey = &sql.UniqueKey{
74 Name: t.Name(),
75 Columns: *columns,
76 }
77
78 applier := NewApplier(migrationContext)
79
80 t.Run("unmodified", func(t *testing.T) {
81 modifiedColumn, isModified := applier.updateModifiesUniqueKeyColumns(&binlog.BinlogDMLEvent{
82 DatabaseName: "test",
83 DML: binlog.UpdateDML,
84 NewColumnValues: columnValues,
85 WhereColumnValues: columnValues,
86 })
87 require.Equal(t, "", modifiedColumn)
88 require.False(t, isModified)
89 })
90
91 t.Run("modified", func(t *testing.T) {
92 modifiedColumn, isModified := applier.updateModifiesUniqueKeyColumns(&binlog.BinlogDMLEvent{
93 DatabaseName: "test",
94 DML: binlog.UpdateDML,
95 NewColumnValues: sql.ToColumnValues([]interface{}{123456, 24}),
96 WhereColumnValues: columnValues,
97 })
98 require.Equal(t, "item_id", modifiedColumn)
99 require.True(t, isModified)
100 })
101}
102
103func TestApplierBuildDMLEventQuery(t *testing.T) {
104 columns := sql.NewColumnList([]string{"id", "item_id"})

Callers

nothing calls this directly

Calls 5

NewColumnListFunction · 0.92
ToColumnValuesFunction · 0.92
NewMigrationContextFunction · 0.92
NewApplierFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…