Skip to content

Commit 8e61072

Browse files
authored
Merge pull request #58 from gliptak/commitclose1
Additional tests for Close
2 parents 5a27ef1 + 1ed8c94 commit 8e61072

File tree

1 file changed

+59
-2
lines changed

1 file changed

+59
-2
lines changed

sqlmock_test.go

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,7 @@ func TestRollbackThrow(t *testing.T) {
806806

807807
// ensure all expectations have been met
808808
if err = mock.ExpectationsWereMet(); err != nil {
809-
fmt.Printf("unmet expectation error: %s", err)
809+
t.Errorf("unmet expectation error: %s", err)
810810
}
811811
// Output:
812812
}
@@ -833,13 +833,26 @@ func TestUnexpectedCommitOrder(t *testing.T) {
833833
return
834834
}
835835
mock.ExpectBegin()
836-
mock.ExpectRollback()
836+
mock.ExpectRollback().WillReturnError(fmt.Errorf("Rollback failed"))
837837
tx, _ := db.Begin()
838838
if err := tx.Commit(); err == nil {
839839
t.Error("an error was expected when calling commit, but got none")
840840
}
841841
}
842842

843+
func TestExpectedCommitOrder(t *testing.T) {
844+
// Open new mock database
845+
db, mock, err := New()
846+
if err != nil {
847+
fmt.Println("error creating mock database")
848+
return
849+
}
850+
mock.ExpectCommit().WillReturnError(fmt.Errorf("Commit failed"))
851+
if _, err := db.Begin(); err == nil {
852+
t.Error("an error was expected when calling begin, but got none")
853+
}
854+
}
855+
843856
func TestUnexpectedRollback(t *testing.T) {
844857
// Open new mock database
845858
db, mock, err := New()
@@ -938,4 +951,48 @@ func TestPrepareQuery(t *testing.T) {
938951
if err := mock.ExpectationsWereMet(); err != nil {
939952
t.Errorf("there were unfulfilled expections: %s", err)
940953
}
954+
}
955+
956+
func TestExpectedCloseError(t *testing.T) {
957+
// Open new mock database
958+
db, mock, err := New()
959+
if err != nil {
960+
fmt.Println("error creating mock database")
961+
return
962+
}
963+
mock.ExpectClose().WillReturnError(fmt.Errorf("Close failed"))
964+
if err := db.Close(); err == nil {
965+
t.Error("an error was expected when calling close, but got none")
966+
}
967+
if err := mock.ExpectationsWereMet(); err != nil {
968+
t.Errorf("there were unfulfilled expections: %s", err)
969+
}
970+
}
971+
972+
func TestExpectedCloseOrder(t *testing.T) {
973+
// Open new mock database
974+
db, mock, err := New()
975+
if err != nil {
976+
fmt.Println("error creating mock database")
977+
return
978+
}
979+
defer db.Close()
980+
mock.ExpectClose().WillReturnError(fmt.Errorf("Close failed"))
981+
db.Begin()
982+
if err := mock.ExpectationsWereMet(); err == nil {
983+
t.Error("expected error on ExpectationsWereMet")
984+
}
985+
}
986+
987+
func TestExpectedBeginOrder(t *testing.T) {
988+
// Open new mock database
989+
db, mock, err := New()
990+
if err != nil {
991+
fmt.Println("error creating mock database")
992+
return
993+
}
994+
mock.ExpectBegin().WillReturnError(fmt.Errorf("Begin failed"))
995+
if err := db.Close(); err == nil {
996+
t.Error("an error was expected when calling close, but got none")
997+
}
941998
}

0 commit comments

Comments
 (0)