public async Task CreateAsync_F1TeamValidationFailed_ThrowsError()
        {
            // Arrange
            var fixture  = new Fixture();
            var rider    = new RiderUpdateModel();
            var expected = fixture.Create <string>();

            var f1TeamGetService = new Mock <IF1TeamGetService>();

            f1TeamGetService
            .Setup(x => x.ValidateAsync(rider))
            .Throws(new InvalidOperationException(expected));

            var riderDataAccess = new Mock <IRiderDataAccess>();

            var riderGetService = new RiderCreateService(riderDataAccess.Object, f1TeamGetService.Object);

            // Act
            var action = new Func <Task>(() => riderGetService.CreateAsync(rider));

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

            riderDataAccess.Verify(x => x.InsertAsync(rider), Times.Never);
        }
示例#2
0
        public async Task <Rider> InsertAsync(RiderUpdateModel rider)
        {
            var result = await this.Context.AddAsync(this.Mapper.Map <DataAccess.Entities.Rider>(rider));

            await this.Context.SaveChangesAsync();

            return(this.Mapper.Map <Rider>(result.Entity));
        }
示例#3
0
        public async Task <Rider> UpdateAsync(RiderUpdateModel rider)
        {
            var existing = await this.Get(rider);

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

            this.Context.Update(result);

            await this.Context.SaveChangesAsync();

            return(this.Mapper.Map <Rider>(result));
        }
        public async Task CreateAsync_DepartmentValidationSucceed_CreatesRider()
        {
            // Arrange
            var rider    = new RiderUpdateModel();
            var expected = new Rider();

            var f1TeamGetService = new Mock <IF1TeamGetService>();

            f1TeamGetService.Setup(x => x.ValidateAsync(rider));

            var riderDataAccess = new Mock <IRiderDataAccess>();

            riderDataAccess.Setup(x => x.InsertAsync(rider)).ReturnsAsync(expected);

            var riderGetService = new RiderCreateService(riderDataAccess.Object, f1TeamGetService.Object);

            // Act
            var result = await riderGetService.CreateAsync(rider);

            // Assert
            result.Should().Be(expected);
        }
示例#5
0
        public async Task <Rider> UpdateAsync(RiderUpdateModel rider)
        {
            await F1TeamGetService.ValidateAsync(rider);

            return(await RiderDataAccess.UpdateAsync(rider));
        }