public async void AddMeterReadingIntoDB_GivenInValidReading() { // Arrange var givenReading = _fixture.Build <MeterReading>().With(x => x.MeterReadValue, "VOID").Create(); var userAccount = _fixture.Build <UserAccount>().Create(); var readings = new List <MeterReading>() { givenReading }; var duplicates = _fixture.Build <MeterReading>().CreateMany(0); var command = new AddMeterReadingsCommand(_fileMock.Object); _fileReadRepository.Setup(x => x.ReadMeterReadingsFile(It.IsAny <IFormFile>())).Returns(readings); _meterReadingValidator.Setup(x => x.IsValidMeterReading(It.IsAny <MeterReading>())).Returns(false); _userAccountRepository.Setup(x => x.GetUserAccountById(It.IsAny <int>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(userAccount)); _meterReadingRepository.Setup(x => x.GetDuplicateMeterReadings(It.IsAny <int>(), It.IsAny <DateTime>(), It.IsAny <string>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(duplicates.ToList())); // Act var result = await _sut.Handle(command, CancellationToken.None); // Assert Assert.Single(result); _meterReadingRepository.Verify(r => r.AddMeterReading(It.IsAny <MeterReading>(), It.IsAny <CancellationToken>()), Times.Never); }
public async Task <ActionResult <int> > AddMeterReadings(CancellationToken cancellationToken) { var file = Request.Form.Files[0]; var command = new AddMeterReadingsCommand(file); var result = await _mediator.Send(command, cancellationToken); return(Created("/meter-reading-uploads", result.Count)); }
public async void AddMeterReadingIntoDB_GivenNonExistentAccount() { // Arrange var givenReading = _fixture.Build <MeterReading>().With(x => x.MeterReadValue, "12345").Create(); var readings = new List <MeterReading>() { givenReading }; var command = new AddMeterReadingsCommand(_fileMock.Object); _fileReadRepository.Setup(x => x.ReadMeterReadingsFile(It.IsAny <IFormFile>())).Returns(readings); _userAccountRepository.Setup(x => x.GetUserAccountById(It.IsAny <int>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult <UserAccount>(null)); // Act var result = await _sut.Handle(command, CancellationToken.None); // Assert Assert.Single(result); _meterReadingRepository.Verify(r => r.AddMeterReading(It.IsAny <MeterReading>(), It.IsAny <CancellationToken>()), Times.Never); }