public void Tags_ShouldGenerateEmptyTags_WhenNameIsInvalid(int id, string name)
        {
            var taggedProduct = new TaggedProduct(new Product
            {
                Id   = 1,
                Name = null
            });

            Assert.IsEmpty(taggedProduct.Tags);
        }
        public void Constructor_ShouldCreateTaggedProduct_WhenProductProvided()
        {
            var product = new Product
            {
                Id   = 1,
                Name = "My Product"
            };

            var taggedProduct = new TaggedProduct(product);

            Assert.AreEqual(product.Id, taggedProduct.Id);
            Assert.AreEqual(product.Name, taggedProduct.Name);
        }
        public void Tags_ShouldGenerateTags_WhenNameIsValid(int id, string name, string[] expectedTags)
        {
            // Set up
            var taggedProduct = new TaggedProduct(new Product
            {
                Id   = id,
                Name = name
            });

            // Assert
            Assert.IsTrue(taggedProduct.Tags.SequenceEqual(expectedTags),
                          $"Generated Tags: {string.Join(", ", taggedProduct.Tags)} | Expected: {string.Join(", ", expectedTags)} ");
        }