Skip to content

Commit

Permalink
add unit test: TestRowsEvent_handleUnsigned()
Browse files Browse the repository at this point in the history
  • Loading branch information
equnchen committed Apr 11, 2024
1 parent 6a17fa5 commit d279b6b
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions canal/rows_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package canal

import (
"github.com/go-mysql-org/go-mysql/replication"

Check failure on line 4 in canal/rows_test.go

View workflow job for this annotation

GitHub Actions / golangci

File is not `goimports`-ed (goimports)
"github.com/go-mysql-org/go-mysql/schema"
"reflect"
"testing"
)

func TestRowsEvent_handleUnsigned(t *testing.T) {
type fields struct {
Table *schema.Table
Action string
Rows [][]interface{}
Header *replication.EventHeader
}
tests := []struct {
name string
fields fields
wantRows [][]interface{}
}{
{
name: "rows_event_handle_unsigned",
fields: fields{
Table: &schema.Table{
// columns 1,3,5,7,9 should be converted from signed to unsigned,
// column 10 is out of range and should be ignored, don't panic.
UnsignedColumns: []int{1, 3, 5, 7, 9, 10},
},
Rows: [][]interface{}{{
int8(8), int8(8),
int16(16), int16(16),
int32(32), int32(32),
int64(64), int64(64),
int(128), int(128)},
},
},
wantRows: [][]interface{}{{
int8(8), uint8(8),
int16(16), uint16(16),
int32(32), uint32(32),
int64(64), uint64(64),
int(128), uint(128)},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
r := &RowsEvent{
Table: tt.fields.Table,
Action: tt.fields.Action,
Rows: tt.fields.Rows,
Header: tt.fields.Header,
}
r.handleUnsigned()
if !reflect.DeepEqual(tt.fields.Rows, tt.wantRows) {
t.Errorf("rows=%+v, wantRows=%+v, not equal", tt.fields.Rows, tt.wantRows)
}
})
}
}

0 comments on commit d279b6b

Please sign in to comment.