(t *testing.T)
| 527 | } |
| 528 | |
| 529 | func TestRecordMatchingRule_Success(t *testing.T) { |
| 530 | db, mock, err := sqlmock.New() |
| 531 | assert.NoError(t, err) |
| 532 | defer func() { _ = db.Close() }() |
| 533 | |
| 534 | ds := Datasource{Conn: db} |
| 535 | ctx := context.TODO() |
| 536 | |
| 537 | rule := &model.MatchingRule{ |
| 538 | RuleID: "rule1", |
| 539 | Name: "Test Rule", |
| 540 | Description: "A test matching rule", |
| 541 | CreatedAt: time.Now(), |
| 542 | UpdatedAt: time.Now(), |
| 543 | Criteria: []model.MatchingCriteria{{Field: "amount", Operator: "equals", Value: "100"}}, |
| 544 | } |
| 545 | |
| 546 | mock.ExpectExec("INSERT INTO ledgerforge.matching_rules"). |
| 547 | WithArgs(rule.RuleID, sqlmock.AnyArg(), sqlmock.AnyArg(), rule.Name, rule.Description, sqlmock.AnyArg()). |
| 548 | WillReturnResult(sqlmock.NewResult(1, 1)) |
| 549 | |
| 550 | err = ds.RecordMatchingRule(ctx, rule) |
| 551 | assert.NoError(t, err) |
| 552 | } |
| 553 | |
| 554 | func TestRecordMatchingRule_Error(t *testing.T) { |
| 555 | db, mock, err := sqlmock.New() |
nothing calls this directly
no test coverage detected