public void ExecuteScalarByExpression() { Expression<Func<Customer, bool>> expression = x => x.ID == 1; Expression<Func<Customer, int>> column = c => c.ID; var provider = new IProvider(); var command = new ICommand(); provider.CommandBuilder.Setup(c => c.CreateExecuteScalarCommand<Customer>(column, expression)).Returns(command.Object); provider.CommandExecutor.Setup(c => c.ExecuteScalar(command.Object)).Returns(2); var target = new DataSession(provider.Object); var result = target.ExecuteScalar(column, expression); provider.CommandExecutor.Verify(c => c.FinalizeCommand(command.Object)); Assert.AreEqual(result, 2); }
public void ExecuteScalarByExpressionThrowsUnableToCreateCommandException() { try { Expression<Func<Customer, bool>> expression = x => x.ID == 1; Expression<Func<Customer, object>> column = c => c.ID; var provider = new IProvider(); provider.CommandBuilder.Setup(c => c.CreateExecuteScalarCommand<Customer>(column, expression)).Returns( default(Data.ICommand)); var target = new DataSession(provider.Object); target.ExecuteScalar(column, expression); } catch (Exception ex) { Assert.IsTrue(ex is UnableToCreateCommandException); } }
public void ExecuteScalarByExpressionThrowsInvalidCastException() { Expression<Func<Customer, bool>> expression = x => x.ID == 1; Expression<Func<Customer, int>> column = c => c.ID; var provider = new IProvider(); var command = new ICommand(); provider.CommandBuilder.Setup(c => c.CreateExecuteScalarCommand<Customer>(column, expression)).Returns(command.Object); provider.CommandExecutor.Setup(c => c.ExecuteScalar(command.Object)).Returns("HelloWorld"); try { var target = new DataSession(provider.Object); var result = target.ExecuteScalar(column, expression); provider.CommandExecutor.Verify(c => c.FinalizeCommand(command.Object)); } catch (Exception ex) { Assert.IsTrue(ex is InvalidCastException); } }
public void ExecuteScalarByExpressionThrowsArgumentNullException() { var provider = new IProvider(); var target = new DataSession(provider.Object); Expression<Func<Customer, bool>> expression = null; Expression<Func<Customer, object>> column = null; var result = false; try { target.ExecuteScalar(x => x.ID, expression); } catch (Exception ex) { result = ex is ArgumentNullException; } try { target.ExecuteScalar(column, x => x.ID == 1); } catch (Exception ex) { result = ex is ArgumentNullException; } Assert.IsTrue(result); }