Exemple #1
0
        public void MatchingRuleHasTransientLifetime()
        {
            MethodSignatureMatchingRuleData ruleData = new MethodSignatureMatchingRuleData("ruleName", "Foo");
            TypeRegistration registration            = ruleData.GetRegistrations("").First();

            Assert.AreEqual(TypeRegistrationLifetime.Transient, registration.Lifetime);
        }
Exemple #2
0
        /// <summary>
        /// Returs the represented <see cref="MethodSignatureMatchingRuleData"/> instance.
        /// </summary>
        /// <returns>A newly created <see cref="MethodSignatureMatchingRuleData"/> instance.</returns>
        public override MatchingRuleData GetConfigurationData()
        {
            MethodSignatureMatchingRuleData ruleData = new MethodSignatureMatchingRuleData(Name, Match);

            ruleData.IgnoreCase = IgnoreCase;

            foreach (ParameterType parameterType in ParameterTypes)
            {
                ruleData.Parameters.Add(new ParameterTypeElement(parameterType.Name, parameterType.Type));
            }
            return(ruleData);
        }
Exemple #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MethodSignatureMatchingRuleNode"/> class for representing a <see cref="MethodSignatureMatchingRuleData"/> instance.
        /// </summary>
        /// <param name="ruleData">The <see cref="MethodSignatureMatchingRuleData"/> to represent.</param>
        public MethodSignatureMatchingRuleNode(MethodSignatureMatchingRuleData ruleData)
            : base(ruleData)
        {
            ignoreCase = ruleData.IgnoreCase;
            match      = ruleData.Match;

            parameterTypes = new List <ParameterType>();
            foreach (ParameterTypeElement parameterType in ruleData.Parameters)
            {
                parameterTypes.Add(new ParameterType(parameterType.Name, parameterType.ParameterTypeName));
            }
        }
        public void MatchingRuleHasTransientLifetime()
        {
            MethodSignatureMatchingRuleData ruleData = new MethodSignatureMatchingRuleData("ruleName", "Foo");

            using (var container = new UnityContainer())
            {
                ruleData.ConfigureContainer(container, "-test");
                var registration = container.Registrations.Single(r => r.Name == "ruleName-test");
                Assert.AreSame(typeof(IMatchingRule), registration.RegisteredType);
                Assert.AreSame(typeof(MethodSignatureMatchingRule), registration.MappedToType);
                Assert.AreSame(typeof(TransientLifetimeManager), registration.LifetimeManagerType);
            }
        }
        public void CanSerializeMethodSignatureContainingDuplicatedTypes()
        {
            MethodSignatureMatchingRuleData ruleData =
                new MethodSignatureMatchingRuleData("ruleName", "Foo");

            ruleData.Parameters.Add(new ParameterTypeElement("p1", "System.String"));
            ruleData.Parameters.Add(new ParameterTypeElement("p2", "System.Int"));
            ruleData.Parameters.Add(new ParameterTypeElement("p3", "System.String"));

            Assert.AreEqual(3, ruleData.Parameters.Count);

            MethodSignatureMatchingRuleData deserializedRule = SerializeAndDeserializeMatchingRule(ruleData) as MethodSignatureMatchingRuleData;

            Assert.IsNotNull(deserializedRule);
            AssertAreSame(ruleData, deserializedRule);
        }
        public void CanSerializeTypeMatchingRule()
        {
            MethodSignatureMatchingRuleData sigMatchingRule = new MethodSignatureMatchingRuleData("RuleName", "Contains");

            sigMatchingRule.IgnoreCase = true;
            sigMatchingRule.Parameters.Add(new ParameterTypeElement("p1", "String"));

            MethodSignatureMatchingRuleData deserializedRule = SerializeAndDeserializeMatchingRule(sigMatchingRule) as MethodSignatureMatchingRuleData;

            Assert.IsNotNull(deserializedRule);
            AssertAreSame(sigMatchingRule, deserializedRule);
            ParameterTypeElement param = deserializedRule.Parameters.Get(0);

            Assert.IsNotNull(param);
            Assert.AreEqual("String", param.ParameterTypeName);
        }
Exemple #7
0
        private void AssertAreSame(MethodSignatureMatchingRuleData expected, MethodSignatureMatchingRuleData actual)
        {
            Assert.AreEqual(expected.Name, actual.Name);
            Assert.AreEqual(expected.Match, actual.Match);
            Assert.AreEqual(expected.IgnoreCase, actual.IgnoreCase);

            Assert.AreEqual(expected.Parameters.Count, actual.Parameters.Count);
            for (int i = 0; i < expected.Parameters.Count; ++i)
            {
                ParameterTypeElement expectedElement = expected.Parameters.Get(i);
                ParameterTypeElement actualElement   = actual.Parameters.Get(i);

                Assert.AreEqual(expectedElement.ParameterTypeName, actualElement.ParameterTypeName,
                                "Parameter type mismatch at element {0}", i);
            }
        }
Exemple #8
0
        public void CanCreateRuleDataFromMethodSignatureMatchingRuleNode()
        {
            MethodSignatureMatchingRuleNode ruleNode = new MethodSignatureMatchingRuleNode();

            ruleNode.Name       = "RuleName";
            ruleNode.Match      = "MethodName";
            ruleNode.IgnoreCase = true;
            ruleNode.ParameterTypes.Add(new ParameterType("p1", "ParamType1"));
            ruleNode.ParameterTypes.Add(new ParameterType("p2", "ParamType2"));

            MethodSignatureMatchingRuleData ruleData = ruleNode.GetConfigurationData() as MethodSignatureMatchingRuleData;

            Assert.IsNotNull(ruleData);
            Assert.AreEqual(ruleNode.Name, ruleData.Name);
            Assert.AreEqual(ruleNode.Match, ruleData.Match);
            Assert.AreEqual(ruleNode.IgnoreCase, ruleData.IgnoreCase);
            Assert.AreEqual(ruleNode.ParameterTypes[0].Type, ruleData.Parameters.Get(0).ParameterTypeName);
            Assert.AreEqual(ruleNode.ParameterTypes[1].Type, ruleData.Parameters.Get(1).ParameterTypeName);
        }
Exemple #9
0
        public void CanCreateMethodSignatureMatchingRuleNodeFromData()
        {
            MethodSignatureMatchingRuleData ruleData = new MethodSignatureMatchingRuleData();

            ruleData.Name       = "rule name";
            ruleData.IgnoreCase = false;
            ruleData.Match      = "MemberName";
            ruleData.Parameters.Add(new ParameterTypeElement("p1", "ParameterType1"));
            ruleData.Parameters.Add(new ParameterTypeElement("p2", "ParameterType2"));

            MethodSignatureMatchingRuleNode ruleNode = new MethodSignatureMatchingRuleNode(ruleData);

            Assert.AreEqual(ruleData.Name, ruleNode.Name);
            Assert.AreEqual(ruleData.Match, ruleNode.Match);
            Assert.AreEqual(ruleData.IgnoreCase, ruleNode.IgnoreCase);
            Assert.AreEqual(ruleData.Parameters.Count, ruleNode.ParameterTypes.Count);
            Assert.AreEqual(ruleData.Parameters.Get(0).ParameterTypeName, ruleNode.ParameterTypes[0].Type);
            Assert.AreEqual(ruleData.Parameters.Get(1).ParameterTypeName, ruleNode.ParameterTypes[1].Type);
        }