public async Task NewlyAddedBasketShouldBeinRepository()
        {
            var basketRepository = new InMemoryBasketRepository(null);

            var newBasket = new Basket
            {
                UserId = _testUserId,
                Id     = _testBasketId
            };

            //Add a new basket to in memory list and fetch and check
            await basketRepository.Add(newBasket);

            var basketInfo = (await basketRepository.Find(new BasketFilterObject())).First();

            basketInfo.UserId.ShouldBe(_testUserId);
            basketInfo.Id.ShouldBe(_testBasketId);

            //get by id an check values
            var basketGetById = (await basketRepository.Get(_testBasketId));

            basketGetById.UserId.ShouldBe(_testUserId);
            basketGetById.Id.ShouldBe(_testBasketId);

            var newBasket2 = new Basket()
            {
                UserId = _testUserId1,
                Id     = _testBasketId1
            };

            //add a new Basket- There should be two baskets now.
            await basketRepository.Add(newBasket2);

            var basketFounSearchInfo = (await basketRepository.Find(new BasketFilterObject {
                BasketId = _testBasketId1
            })).First();

            basketFounSearchInfo.UserId.ShouldBe(_testUserId1);
            basketFounSearchInfo.Id.ShouldBe(_testBasketId1);

            var basketCount = (await basketRepository.Find(new BasketFilterObject())).Count();

            basketCount.ShouldBe(2);
        }
        public async Task ShouldCreateAndReturnaBasketForUserIfNotABasketPresent()
        {
            var inMemoryBasketRepo = new InMemoryBasketRepository(_mockBasketLogger.Object);
            var basketService      = new BasketService(inMemoryBasketRepo, _catalogService, _mockServiceLogger.Object);

            await basketService.GetOrCreateBasketforUserAsync(_testUserId1);

            var basketinRepo =
                (await inMemoryBasketRepo.Find(new BasketFilterObject {
                UserId = _testUserId1
            })).First();

            basketinRepo.UserId.ShouldBe(_testUserId1);
        }
        public async Task ShouldCreateMultipleBaskets()
        {
            var inMemoryBasketRepo = new InMemoryBasketRepository(_mockBasketLogger.Object);
            var basketService      = new BasketService(inMemoryBasketRepo, _catalogService, _mockServiceLogger.Object);

            await basketService.GetOrCreateBasketforUserAsync("user1");

            await basketService.GetOrCreateBasketforUserAsync("user2");

            await basketService.GetOrCreateBasketforUserAsync("user3");

            var basketCount =
                (await inMemoryBasketRepo.Find(new BasketFilterObject {
            })).Count;

            basketCount.ShouldBe(3);
        }