(t *testing.T)
| 65 | } |
| 66 | |
| 67 | func 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 | |
| 103 | func TestApplierBuildDMLEventQuery(t *testing.T) { |
| 104 | columns := sql.NewColumnList([]string{"id", "item_id"}) |
nothing calls this directly
no test coverage detected
searching dependent graphs…