예제 #1
0
        public void TestGenericInstanceCreation()
        {
            ConcretePrototype template = new ConcretePrototype(42);

            IAbstractFactory <IProduct> factory = new PrototypeFactory <
                IProduct, ConcretePrototype
                >(template);

            IProduct factoryCreatedProduct = factory.CreateInstance();

            Assert.AreEqual(template.Value, factoryCreatedProduct.Value);
        }
예제 #2
0
        public void TestPrototypeDisposal()
        {
            ConcretePrototype template = new ConcretePrototype(42);

            PrototypeFactory <IProduct, ConcretePrototype> factory = new PrototypeFactory <
                IProduct, ConcretePrototype
                >(template);

            Assert.IsFalse(template.IsDisposed);
            factory.Dispose();
            Assert.IsTrue(template.IsDisposed);
        }