public void FromDbReaderWithOneRecord_CompareResult_ExpectSame() { _readerStub.Read().Returns(true, false); var sut = new SingleResultCommandInvoker <string>(_serviceCommand); var result = sut.Invoke(_serviceManager); Assert.AreEqual(_expected, result); }
public void WhenReaderWithContentAndContentCheckerReturnsTrue_ExpectTrue() { _readerStub.Read().Returns(true); _serviceCommand.ResultContentChecker(_readerStub).Returns(true); var sut = new DoesResultExistCommandInvoker(_serviceCommand); var result = sut.Invoke(_serviceManager); Assert.IsTrue(result); }
public void FromDbReaderWithOneRecord_CompareResult_ExpectSame() { _readerStub.Read().Returns(true, false); _serviceCommand.MapResult(_readerStub).Returns(_returnedResult); var sut = new FirstResultOrDefaultCommandInvoker <string>(_serviceCommand); var result = sut.Invoke(_serviceManager); Assert.AreEqual(_returnedResult, result); }
//protected override async Task<TResult> ExecuteAsync(IDbManager dbManager, IDbCommand command, CancellationToken cancellationToken) //{ // using (var reader = await dbManager.ExecuteReaderAsync(command, cancellationToken)) // return GetSingleResultOrDefault(reader); //} private TResult GetSingleResultOrDefault(IDbReader reader) { if (!reader.Read()) { return(default(TResult)); } var result = Command.MapResult(reader); if (reader.Read()) { throw new InvalidOperationException("Too many results"); } return(result); }
public virtual TModel BuildFrom(IDbReader reader) { if (!reader.Read()) { return(null); } var model = new TModel(); Properties.ForEach(property => { if (!reader.IsDbNull(property.Name)) { property.SetValue(model, reader[property.Name], null); } }); ManyToOneProperties.ForEach(property => { var propertyName = property.Name + "Id"; if (!reader.IsDbNull(propertyName)) { var manyToOneObject = Activator.CreateInstance(property.PropertyType); var idProperty = property.PropertyType.GetRuntimeProperty("Id"); idProperty.SetValue(manyToOneObject, reader[propertyName], null); property.SetValue(model, manyToOneObject, null); } }); return(model); }
//protected override async Task<TResult> ExecuteAsync(IDbManager dbManager, IDbCommand command, CancellationToken cancellationToken) //{ // using (var reader = await dbManager.ExecuteReaderAsync(command, cancellationToken)) // return GetFirstResult(reader); //} private TResult GetFirstResult(IDbReader reader) { if (!reader.Read()) { throw new InvalidOperationException("No results found"); } return(Command.MapResult(reader)); }
//protected override async Task<IEnumerable<TResult>> ExecuteAsync(IDbManager dbManager, IDbCommand command, CancellationToken cancellationToken) //{ // using (var reader = await dbManager.ExecuteReaderAsync(command, cancellationToken)) // return GetManyResults(reader); //} private IEnumerable <TResult> GetManyResults(IDbReader reader) { var results = new List <TResult>(); while (reader.Read()) { results.Add(Command.MapResult(reader)); } return(results); }
public void InvokeCommand_ResultAndExpectedAreEqual() { var expected = new List <string>() { "result1", "result2", "result3" }; _fakeReader.Read().Returns(true, true, true, false); _serviceCommand.MapResult(_fakeReader).Returns("result1", "result2", "result3"); var sut = new ManyResultsCommandInvoker <string>(_serviceCommand); var result = sut.Invoke(_serviceManager); Assert.AreEqual(expected, result); }
//protected override async Task<TResult> ExecuteAsync(IDbManager dbManager, IDbCommand command, CancellationToken cancellationToken) //{ // using (var reader = await dbManager.ExecuteReaderAsync(command, cancellationToken)) // return GetFirstResultOrDefault(reader); //} private TResult GetFirstResultOrDefault(IDbReader reader) { return(reader.Read() ? Command.MapResult(reader) : default(TResult)); }
//protected override async Task<bool> ExecuteAsync(IDbManager dbManager, IDbCommand command, CancellationToken cancellationToken) //{ // using (var reader = await dbManager.ExecuteReaderAsync(command, cancellationToken)) // return DoesResultExist(reader); //} private bool DoesResultExist(IDbReader reader) => reader.Read() && Command.ResultContentChecker(reader);
private static void ExecuteMethod(IDbReader dbReader) { //m.b. some logic dbReader.Read(); }
public bool IsToggleEnabled(string toggle) { return(_dbReader.Read(toggle)); }