public void Test()
        {
            IBuilder <Product> builder = new ProductBuilder();
            Product            product = builder.BuildUp();

            Assert.AreEqual <int>(5, product.Count);
            Assert.AreEqual <int>(5, product.Items.Count);
            product = builder.TearDown();
            Assert.AreEqual <int>(0, product.Count);
            Assert.AreEqual <int>(0, product.Items.Count);
        }
        public void Test()
        {
            IBuilder <Product> builder = new ProductBuilder();
            var product1 = builder.BuildUp();

            Assert.AreEqual <int>(5, product1.Count);
            Assert.AreEqual <int>(5, product1.Items.Count);
            var product2 = builder.TearDown();

            Assert.AreEqual <int>(0, product2.Count);
            Assert.AreEqual <int>(0, product2.Items.Count);
            Assert.IsTrue(product1 == product2);
        }
        public void Test()
        {
            Builder.Reversable.IBuilder <Product> builder = new ProductBuilder();
            var product = builder.BuildUp();

            Assert.AreEqual(5, product.Count);
            Trace.WriteLine("product.Count:" + product.Count);
            Assert.AreEqual(5, product.Items.Count);

            product = builder.TearDown();
            Assert.AreEqual(0, product.Count);
            Trace.WriteLine("product.Count:" + product.Count);
            Assert.AreEqual(0, product.Items.Count);
        }