コード例 #1
0
        public async Task UpdateAsync_CompanyValidationFailed_ThrowsError()
        {
            // Arrange
            var fixture  = new Fixture();
            var rent     = new RentUpdateModel();
            var expected = fixture.Create <string>();

            var companyGetService = new Mock <ICompanyGetService>();

            companyGetService
            .Setup(x => x.ValidateAsync(rent))
            .Throws(new InvalidOperationException(expected));

            var carGetService = new Mock <ICarGetService>();

            carGetService.Setup(x => x.ValidateAsync(rent)).Throws(new InvalidOperationException(expected));


            var rentDataAccess = new Mock <IRentDataAccess>();

            var rentGetService = new RentUpdateService(rentDataAccess.Object, companyGetService.Object, carGetService.Object);

            // Act
            var action = new Func <Task>(() => rentGetService.UpdateAsync(rent));

            // Assert
            await action.Should().ThrowAsync <InvalidOperationException>().WithMessage(expected);

            rentDataAccess.Verify(x => x.UpdateAsync(rent), Times.Never);
        }
コード例 #2
0
        public async Task UpdateAsync_DepartmentValidationSucceed_CreatesRent()
        {
            // Arrange
            var rent     = new RentUpdateModel();
            var expected = new Rent();

            var companyGetService = new Mock <ICompanyGetService>();

            companyGetService.Setup(x => x.ValidateAsync(rent));

            var carGetService = new Mock <ICarGetService>();

            carGetService.Setup(x => x.ValidateAsync(rent));

            var rentDataAccess = new Mock <IRentDataAccess>();

            rentDataAccess.Setup(x => x.UpdateAsync(rent)).ReturnsAsync(expected);

            var rentGetService = new RentUpdateService(rentDataAccess.Object, companyGetService.Object, carGetService.Object);

            // Act
            var result = await rentGetService.UpdateAsync(rent);

            // Assert
            result.Should().Be(expected);
        }
コード例 #3
0
        public async Task <Rent> InsertAsync(RentUpdateModel rent)
        {
            var result = await this.Context.AddAsync(this.Mapper.Map <DataAccess.Entities.Rent>(rent));

            await this.Context.SaveChangesAsync();

            return(this.Mapper.Map <Rent>(result.Entity));
        }
コード例 #4
0
        public async Task <Rent> UpdateAsync(RentUpdateModel rent)
        {
            await CarGetService.ValidateAsync(rent);

            await CompanyGetService.ValidateAsync(rent);

            return(await RentDataAccess.UpdateAsync(rent));
        }
コード例 #5
0
        public async Task <Rent> UpdateAsync(RentUpdateModel rent)
        {
            var existing = await this.Get(rent);

            var result = this.Mapper.Map(rent, existing);

            this.Context.Update(result);

            await this.Context.SaveChangesAsync();

            return(this.Mapper.Map <Rent>(result));
        }