public void ToWhereSql_Contains_SqlIsCorrect() { var parameters = new Fakes.DataParameterCollection(); var dbCommandMock = new Mock <IDbCommand> { DefaultValue = DefaultValue.Mock }; dbCommandMock.SetupGet(command => command.Parameters).Returns(parameters); dbCommandMock.Setup(command => command.CreateParameter()).Returns(() => Mock.Of <IDbDataParameter>()); var dbCommand = dbCommandMock.Object; var whereExpression = (Expression <Func <CustomExpression, bool> >)(model => model.MyStringAttribute.Contains("Test")); var whereSql = SqlExtension.ToWhereSql(whereExpression, dbCommand); Assert.AreEqual("mystringattribute LIKE '%' + @mystringattribute + '%'", whereSql); }
public void ToWhereSql_EqualsStringValue_HasParameter() { var parameters = new Fakes.DataParameterCollection(); var dbCommandMock = new Mock <IDbCommand> { DefaultValue = DefaultValue.Mock }; dbCommandMock.SetupGet(command => command.Parameters).Returns(parameters); dbCommandMock.Setup(command => command.CreateParameter()).Returns(() => Mock.Of <IDbDataParameter>()); var dbCommand = dbCommandMock.Object; SqlExtension.ToWhereSql((Expression <Func <CustomExpression, bool> >)(model => model.MyStringAttribute == "Value"), dbCommand); Assert.IsTrue(dbCommand.Parameters.Contains("@mystringattribute")); Assert.AreEqual("Value", (dbCommand.Parameters["@mystringattribute"] as IDbDataParameter).Value); Assert.AreEqual(DbType.String, (dbCommand.Parameters["@mystringattribute"] as IDbDataParameter).DbType); }