public void MergeShoppingCarts_ReturnsFalse_WhenNothingToMerge()
{
var deleteCartCalled = false;
var shoppingCartRepository = new MockShoppingCartRepository();
shoppingCartRepository.GetByIdDelegate = userId =>
{
switch (userId)
{
case "oldId":
return
new ShoppingCart(
new Collection<ShoppingCartItem>
{new ShoppingCartItem {Id = "item1", Product = new Product()}});
case "newId":
return
new ShoppingCart(
new Collection<ShoppingCartItem>());
default:
return null;
}
};
shoppingCartRepository.DeleteDelegate = shoppingCartId =>
{
Assert.AreEqual("oldId", shoppingCartId);
deleteCartCalled = true;
return true;
};
var target = new ShoppingCartController(shoppingCartRepository, new MockProductRepository());
Assert.IsFalse(target.MergeShoppingCarts("newId", "oldId"));
Assert.IsTrue(deleteCartCalled);
}
}