@@ -619,3 +619,33 @@ func TestCreate_EmptyCart(t *testing.T) {
619
619
620
620
mockCartService .AssertExpectations (t )
621
621
}
622
+
623
+ func TestCreate_ErrorSavingOrder (t * testing.T ) {
624
+ clientID := uuid .New ()
625
+
626
+ mockCartService := new (mocks.ICartService )
627
+
628
+ mockCartService .On ("GetFullCart" , clientID ).Return (& cart.Cart {
629
+ Products : []* cart.Product {
630
+ {ProductID : uuid .New (), Quantity : 1 , Comments : "Test product" },
631
+ },
632
+ }, nil )
633
+ mockCartService .On ("GetProductByID" , mock .Anything ).Return (& cart.Product {Price : 100.0 }, nil )
634
+ mockCartService .On ("Cleanup" , clientID ).Return (nil )
635
+
636
+ mockOrderRepo := new (mocks.IOrderRepository )
637
+ mockOrderRepo .On ("Create" , mock .Anything ).Return (nil , errors .New ("error saving order" ))
638
+ mockOrderProductRepo := new (mocks.IOrderProductRepository )
639
+
640
+ service := & order.Service {
641
+ CartService : mockCartService ,
642
+ OrderRepository : mockOrderRepo ,
643
+ OrderProductRepository : mockOrderProductRepo ,
644
+ }
645
+
646
+ createdOrder , err := service .Create (clientID )
647
+
648
+ assert .Error (t , err )
649
+ assert .Equal (t , "error saving order" , err .Error ())
650
+ assert .Nil (t , createdOrder )
651
+ }
0 commit comments