public async Task ExchangeItemAsync_WithNewItemNotAvailableForShoppingList_ShouldRemoveOldItemAndNotAddNewItem() { // Arrange var local = new LocalFixture(); var service = local.CreateService(); ShoppingListMock shoppingListMock = local.CreateShoppingListMockInBasket(); ItemId oldItemId = local.CommonFixture.ChooseRandom(shoppingListMock.Object.Items).Id; IStoreItem newItem = local.CreateNewItemNotInStore(shoppingListMock.Object.StoreId); local.ShoppingListRepositoryMock.SetupFindActiveByAsync(oldItemId, shoppingListMock.Object.ToMonoList()); // Act await service.ExchangeItemAsync(oldItemId, newItem, default); // Assert using (new AssertionScope()) { shoppingListMock.VerifyRemoveItemOnce(oldItemId); shoppingListMock.VerifyAddItemNever(); local.ShoppingListRepositoryMock.VerifyStoreAsyncOnce(shoppingListMock.Object); } }