@@ -113,12 +113,15 @@ func (s *BestEffortUnitTestSuite) Setup() {
113113 fooTypeName := work .TypeNameOf (foo )
114114 bar := test.Bar {ID : "28" }
115115 barTypeName := work .TypeNameOf (bar )
116+ biz := test.Biz {Identifier : "28" }
117+ bizTypeName := work .TypeNameOf (biz )
116118
117119 // initialize mocks.
118120 s .mc = gomock .NewController (s .T ())
119121 s .mappers = make (map [work.TypeName ]* mock.UnitDataMapper )
120122 s .mappers [fooTypeName ] = mock .NewUnitDataMapper (s .mc )
121123 s .mappers [barTypeName ] = mock .NewUnitDataMapper (s .mc )
124+ s .mappers [bizTypeName ] = mock .NewUnitDataMapper (s .mc )
122125
123126 // construct SUT.
124127 dm := make (map [work.TypeName ]work.UnitDataMapper )
@@ -151,8 +154,9 @@ func (s *BestEffortUnitTestSuite) SetupTest() {
151154
152155func (s * BestEffortUnitTestSuite ) subtests () []TableDrivenTest {
153156 foos := []interface {}{test.Foo {ID : 28 }, test.Foo {ID : 1992 }, test.Foo {ID : 2 }, test.Foo {ID : 1111 }}
154- bars := []interface {}{test.Bar {ID : "ID" }, test.Bar {ID : "1992" }}
155- fooType , barType := work .TypeNameOf (test.Foo {}), work .TypeNameOf (test.Bar {})
157+ bars := []interface {}{test.Bar {ID : "ID" }, test.Bar {ID : "1992" }, test.Bar {ID : "2022" }}
158+ bizs := []interface {}{test.Biz {Identifier : "ID" }, test.Biz {Identifier : "1992" }, test.Biz {Identifier : "2022" }}
159+ fooType , barType , bizType := work .TypeNameOf (test.Foo {}), work .TypeNameOf (test.Bar {}), work .TypeNameOf (test.Biz {})
156160 return []TableDrivenTest {
157161 {
158162 name : "InsertError" ,
@@ -461,27 +465,26 @@ func (s *BestEffortUnitTestSuite) subtests() []TableDrivenTest {
461465 name : "DeleteAndRollbackError" ,
462466 additions : []interface {}{foos [0 ]},
463467 alters : []interface {}{foos [1 ], bars [1 ]},
464- removals : []interface {}{foos [2 ]},
468+ removals : []interface {}{foos [2 ], bars [ 2 ], bizs [ 0 ] },
465469 registers : []interface {}{foos [1 ], bars [1 ], foos [3 ]},
466470 expectations : func (ctx context.Context , registers , additions , alters , removals []interface {}) {
467- // arrange - successfully apply inserts.
468- s .mappers [fooType ].EXPECT ().Insert (ctx , gomock .Any (), additions [0 ]).Return (nil ).Times (s .retryCount )
469471 for i := 0 ; i < s .retryCount ; i ++ {
470- // arrange - successfully apply updates.
471- applyFooUpdate := s .mappers [fooType ].EXPECT ().Update (ctx , gomock .Any (), alters [0 ]).Return (nil )
472- applyBarUpdate := s .mappers [barType ].EXPECT ().Update (ctx , gomock .Any (), alters [1 ]).Return (nil )
472+ // arrange - successfully apply inserts.
473+ s .mappers [fooType ].EXPECT ().Insert (ctx , gomock .Any (), additions [0 ]).Return (nil )
473474
474- // arrange - successfully roll back updates.
475- s .mappers [fooType ].EXPECT ().
476- Update (ctx , gomock .Any (), []interface {}{registers [0 ], registers [2 ]}).Return (nil ).After (applyFooUpdate )
477- s .mappers [barType ].EXPECT ().
478- Update (ctx , gomock .Any (), registers [1 ]).Return (nil ).After (applyBarUpdate )
475+ // arrange - successfully apply updates.
476+ s .mappers [fooType ].EXPECT ().Update (ctx , gomock .Any (), alters [0 ]).Return (nil )
477+ s .mappers [barType ].EXPECT ().Update (ctx , gomock .Any (), alters [1 ]).Return (nil )
479478
480479 // arrange - encounter delete error.
481- applyDelete := s .mappers [fooType ].EXPECT ().Delete (ctx , gomock .Any (), removals [0 ]).Return (errors .New ("whoa" ))
482-
483- // arrange - encounter error when rolling back inserts.
484- s .mappers [fooType ].EXPECT ().Delete (ctx , gomock .Any (), additions [0 ]).Return (errors .New ("ouch" )).After (applyDelete )
480+ s .mappers [fooType ].EXPECT ().Delete (ctx , gomock .Any (), removals [0 ]).Return (nil )
481+ s .mappers [barType ].EXPECT ().Delete (ctx , gomock .Any (), removals [1 ]).Return (nil )
482+ s .mappers [bizType ].EXPECT ().Delete (ctx , gomock .Any (), removals [2 ]).Return (errors .New ("whoa" ))
483+
484+ // arrange - fail to roll back deletes.
485+ s .mappers [fooType ].EXPECT ().Insert (ctx , gomock .Any (), removals [0 ]).Return (nil ).AnyTimes ()
486+ s .mappers [fooType ].EXPECT ().Insert (ctx , gomock .Any (), removals [2 ]).Return (nil ).AnyTimes ()
487+ s .mappers [barType ].EXPECT ().Insert (ctx , gomock .Any (), removals [1 ]).Return (errors .New ("ouch" ))
485488 }
486489 },
487490 ctx : context .Background (),
0 commit comments