private static Action <IDbCommand, object> GetParameterReader(object exampleParameters) { if (GetMultiExec(exampleParameters) != null) { throw new InvalidOperationException("An enumerable sequence of parameters (arrays, lists, etc) is not allowed in this context"); } return((cmd, obj) => { var mapped = new ParameterCollector(obj); mapped.AddParameters(cmd); }); }
public static void AssertOnlyParameters(Expression expression, params ParameterExpression[] parameters) { var lambda = expression as LambdaExpression; if (lambda != null) { expression = lambda.Body; } var parameterCollector = new ParameterCollector(); parameterCollector.Visit(expression); Assert.AreEqual(parameters.Length, parameterCollector.Parameters.Count, string.Format("The expression '{0}' was expected to have {1} parameters but had {2}", expression, parameters.Length, parameterCollector.Parameters.Count)); for (int i = 0; i < parameters.Length; i++) { Assert.IsTrue(parameterCollector.Parameters.Contains(parameters[i])); } }