public void Create_ShouldReturnProper_ProductOrderCharm_WithProductId()
        {
            // arrange
            var charms    = CreateCharms(7);
            var charmsIds = charms.Select(s => s.Id).ToList();
            var productWithCharmsOrderDtos = PrepareTest_ProductWithCharmOrderDto(charmsIds);
            var sut = new ProductOrderCharmCommandService();

            // act
            var result = sut.Create(productWithCharmsOrderDtos, charms);

            // assert
            result.Should().NotBeNullOrEmpty();
        }
        public void Create_ShouldAssignRightCharmsToProduct()
        {
            // arrange
            var charms   = CreateCharms(7);
            var charmIds = charms.Select(s => s.Id).ToList();
            var productWithCharmsOrderDtos = PrepareTest_ProductWithCharmOrderDto(charmIds);
            var sut = new ProductOrderCharmCommandService();

            var firstProduct   = productWithCharmsOrderDtos.First(s => s.ProductId == 1);
            var expectedResult = firstProduct
                                 .Charms
                                 .Select(s => s.CharmId);

            // act
            var result = sut.Create(productWithCharmsOrderDtos, charms);

            // assert
            result.Where(s => s.productId == 1)
            .Select(s => s.Item1.Charm.Id)
            .Should()
            .BeEquivalentTo(expectedResult);
        }