public void CompareShouldIgnoreSetOnlyProperty() { var entity = new Entity(); var testee = new CustomOperator(""); var left = new BlankOperand(); var right = new Operand(Expression.Constant(true), typeof(bool)); testee.Compare(Expression.Constant(entity), left, right); CollectionAssert.AreEqual(new string[] { "Both:Get", "GetOnly:Get" }, entity.CalledProperties); Assert.AreEqual(2, testee.CompareCalledCount); }
public void CompareShouldReturnConstantTrueWhenTargetTypeDoesNotHaveProperty() { var entity = new EmptyEntity(); var testee = new CustomOperatorNoDescriptionAttribute(""); var left = new BlankOperand(); var right = new Operand(Expression.Constant(true), typeof(bool)); var actual = testee.Compare(Expression.Constant(entity), left, right); Assert.IsInstanceOf <ConstantExpression>(actual.Expression); Assert.IsTrue((bool)Expression.Lambda(actual.Expression).Compile().DynamicInvoke()); Assert.AreEqual(typeof(bool), actual.OperandType); }