public async Task GenericCollection_UpdateItem_ShouldReturnTrue()
        {
            // Arrange
            var initialPrice = 100;
            var finalPrice   = 200;

            var collection = new StubCollection();
            var item       = _fixture
                             .Build <StubModel>()
                             .With(x => x.Price, initialPrice)
                             .Create();

            await collection.Add(item);

            item.Price = finalPrice;
            var expectedResult = true;

            // Act
            var result = await collection.Update(item.Id, item);

            var finalItem = (await collection.Items()).FirstOrDefault(x => x.Id == item.Id);

            // Assert
            result
            .Should()
            .Be(expectedResult);

            finalItem.Price
            .Should()
            .Be(finalPrice);
        }
        public async Task GenericCollection_AddItems_ShouldReturnTrue()
        {
            // Arrange
            var collection     = new StubCollection();
            var items          = _fixture.CreateMany <StubModel>(5);
            var expectedResult = true;

            // Act
            var result = await collection.Add(items);

            // Assert
            result
            .Should()
            .Be(expectedResult);
        }
        public async Task GenericCollection_DeleteItem_ShouldReturnTrue()
        {
            // Arrange
            var collection = new StubCollection();
            var item       = _fixture.Create <StubModel>();
            await collection.Add(item);

            var expectedResult = true;

            // Act
            var result = await collection.Delete(item.Id);

            // Assert
            result
            .Should()
            .Be(expectedResult);
        }
        public async Task GenericCollection_GetItems_ShouldReturnAddedItems()
        {
            // Arrange
            var collection = new StubCollection();
            var items      = _fixture.CreateMany <StubModel>(5);
            await collection.Add(items);

            var expectedResult = items.ToList();

            // Act
            var result = await collection.Items();

            // Assert
            result
            .Should()
            .BeEquivalentTo(expectedResult);
        }