Beispiel #1
0
        public virtual void DefaultObjectFactory_CreateMultipleInstances()
        {
            // Arrange
            var parameter = 56789;
            var name = "another";
            var rootElement = CreateRootElement();
            AddXmlForDefaultConstructor(rootElement);
            var itemElement = AddXmlForParameterizedConstructor(rootElement, parameter.ToString(CultureInfo.InvariantCulture));
            AddAttribute(itemElement, DefaultObjectFactory.FactoryNameAttributeName, name);
            var factory = new DefaultObjectFactory(rootElement, null);

            // Action
            ITest instanceDefault;
            var successDefault = factory.TryGetInstance<ITest>(out instanceDefault);
            ITest instanceParameterized;
            var successParameterized = factory.TryGetInstance<ITest>(out instanceParameterized, name);

            // Assert
            Assert.IsTrue(successDefault);
            Assert.IsInstanceOfType(instanceDefault, typeof(TestClass));
            Assert.AreEqual(ActionToken.DefaultConstructor, instanceDefault.ActionWasToken);
            Assert.AreEqual(0, instanceDefault.Value);

            Assert.IsTrue(successParameterized);
            Assert.IsInstanceOfType(instanceParameterized, typeof(TestClass));
            Assert.AreEqual(ActionToken.WithParameter, instanceParameterized.ActionWasToken);
            Assert.AreEqual(parameter, instanceParameterized.Value);
        }
Beispiel #2
0
        public virtual void DefaultObjectFactory_CreateInstance_DefaultConstructor()
        {
            // Arrange
            var rootElement = CreateRootElement();
            AddXmlForDefaultConstructor(rootElement);
            var factory = new DefaultObjectFactory(rootElement, null);

            // Action
            ITest instance;
            var success = factory.TryGetInstance<ITest>(out instance);

            // Assert
            Assert.IsTrue(success);
            Assert.IsInstanceOfType(instance, typeof(TestClass));
            Assert.AreEqual(ActionToken.DefaultConstructor,  instance.ActionWasToken);
            Assert.AreEqual(0, instance.Value);
        }
Beispiel #3
0
        public virtual void DefaultObjectFactory_CreateInstance_WithParameter()
        {
            // Arrange
            var parameter = 123456;
            var rootElement = CreateRootElement();
            AddXmlForParameterizedConstructor(rootElement, parameter.ToString(CultureInfo.InvariantCulture));
            var factory = new DefaultObjectFactory(rootElement, null);

            // Action
            ITest instance;
            var success = factory.TryGetInstance<ITest>(out instance);

            // Assert
            Assert.IsTrue(success);
            Assert.IsInstanceOfType(instance, typeof(TestClass));
            Assert.AreEqual(ActionToken.WithParameter, instance.ActionWasToken);
            Assert.AreEqual(parameter, instance.Value);
        }
Beispiel #4
0
        public virtual void DefaultObjectFactory_Convert_Directly()
        {
            // Arrange
            var rootElement = CreateRootElement();
            var value = Guid.NewGuid().ToString();
            var itemElement = rootElement.AddTextElement(DefaultObjectFactory.FactoryElementName, value);
            AddAttribute(itemElement, DefaultObjectFactory.SourceTypeAttributeName, typeof(string).FullName);
            AddAttribute(itemElement, DefaultObjectFactory.TargetTypeAttributeName, typeof(string).FullName);
            AddAttribute(itemElement, DefaultObjectFactory.ConvertAttributeName, bool.TrueString);
            var factory = new DefaultObjectFactory(rootElement, null);

            // Action
            string actual;
            var success = factory.TryGetInstance<string>(out actual);

            // Assert
            Assert.IsTrue(success);
            Assert.AreEqual(value, actual);
        }
Beispiel #5
0
        public virtual void DefaultObjectFactory_CreateInstance_WithParameter_FromConfiguration()
        {
            // Arrange
            var parameter = 123456;
            var configuration = new NameValueCollection();
            var key = Guid.NewGuid().ToString("N");
            configuration.Add(key, parameter.ToString(CultureInfo.InvariantCulture));
            var rootElement = CreateRootElement();
            var itemElement = AddXmlForParameterizedConstructor(rootElement, key, true);
            var factory = new DefaultObjectFactory(rootElement, configuration);

            // Action
            ITest instance;
            var success = factory.TryGetInstance<ITest>(out instance);

            // Assert
            Assert.IsTrue(success);
            Assert.IsInstanceOfType(instance, typeof(TestClass));
            Assert.AreEqual(ActionToken.WithParameter, instance.ActionWasToken);
            Assert.AreEqual(parameter, instance.Value);
        }