public void ConstructorWithAccessorOnly() { var item = new Mock<ISimpleDbItem>().Object; Expression<Func<object>> lambdaWithNew = () => new { Test1 = item["TestAttribute"] }; var newExp = ((LambdaExpression)lambdaWithNew).Body as NewExpression; var mapper = new IndexedAttributeMapperAccessor(); var returnExpression = mapper.AccessVisitNew(newExp); Assert.IsNotNull(returnExpression); Assert.IsInstanceOf<NewExpression>(returnExpression); Assert.AreEqual(1, ((NewExpression)returnExpression).Arguments.Count); Assert.IsInstanceOf<AttributeExpression>(((NewExpression)returnExpression).Arguments[0]); Assert.AreEqual("TestAttribute", ((AttributeExpression)((NewExpression)returnExpression).Arguments[0]).Name); }
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); }
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); }