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);
        }
Ejemplo n.º 2
0
        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);
        }