コード例 #1
0
        public void ConvertBasicAccessorExpression ()
        {
            var item = new Mock<ISimpleDbItem> ();
            var methodCallExp = Expression.Call(
                Expression.Constant(item.Object),
                typeof(ISimpleDbItem).GetMethod ("get_Item"),
                Expression.Constant ("TestAttribute"));

            var mapper = new IndexedAttributeMapperAccessor ();
            var mappedAttribute = mapper.AccessVisitMethodCall (methodCallExp);

            Assert.IsNotNull (mappedAttribute);
            Assert.IsInstanceOf<AttributeExpression> (mappedAttribute);
            Assert.AreEqual ("TestAttribute", ((AttributeExpression)mappedAttribute).Name);
        }
コード例 #2
0
 public void SkipNonAccessorExpression()
 {
     var item = new Mock<ISimpleDbItem> ();
     var methodCallExp = Expression.Call (
         Expression.Constant (item.Object),
         typeof(object).GetMethod ("ToString"));
     
     var mapper = new IndexedAttributeMapperAccessor ();
     var returnExpression = mapper.AccessVisitMethodCall (methodCallExp);
     Assert.IsNotNull (returnExpression);
     Assert.IsInstanceOf<MethodCallExpression> (returnExpression);
     Assert.IsInstanceOf<ConstantExpression> (((MethodCallExpression)returnExpression).Object);
     Assert.AreEqual (item.Object, ((ConstantExpression)((MethodCallExpression)returnExpression).Object).Value);
     Assert.AreEqual (
         typeof(object).GetMethod ("ToString"),
         ((MethodCallExpression)returnExpression).Method);
 }