Exemple #1
0
        public async Task EditAsync_ShouldSuccessfullyEdit()
        {
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            await this.SeedDataAsync(context);

            var driverService          = new DriverService(context);
            var editDriverServiceModel = new EditDriverServiceModel();
            var driverId       = 1;
            var driverFullName = "DFN 3";

            editDriverServiceModel.Id       = driverId;
            editDriverServiceModel.FullName = driverFullName;

            await driverService.EditAsync(editDriverServiceModel);

            var expectedResult = driverFullName;
            var actualResult   = driverService
                                 .All()
                                 .First()
                                 .FullName;

            Assert.True(expectedResult == actualResult);
        }
        public async Task EditAsync(EditDriverServiceModel editDriverServiceModel)
        {
            var driver = await this.context
                         .Drivers
                         .FindAsync(editDriverServiceModel.Id);

            if (driver == null)
            {
                throw new ArgumentNullException(string.Format(InvalidDriverIdErrorMessage, editDriverServiceModel.Id));
            }

            if (string.IsNullOrWhiteSpace(editDriverServiceModel.FullName))
            {
                throw new ArgumentNullException(EmptyDriverErrorMessage);
            }

            if (await this.context.Drivers.AnyAsync(d => d.FullName == editDriverServiceModel.FullName))
            {
                throw new InvalidOperationException(DriverExistErrorMessage);
            }

            if (editDriverServiceModel.FullName.Length > AttributesConstraints.DriverFullNameMaxLength)
            {
                throw new InvalidOperationException(string.Format(DriverFullNameMaxLengthErrorMessage, AttributesConstraints.DriverFullNameMaxLength));
            }

            driver.FullName = editDriverServiceModel.FullName;

            await this.context.SaveChangesAsync();
        }
Exemple #3
0
        public async Task EditAsync_WithNonExistingIdShouldThrowArgumentNullException()
        {
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            await this.SeedDataAsync(context);

            var driverService          = new DriverService(context);
            var editDriverServiceModel = new EditDriverServiceModel();

            editDriverServiceModel.Id = 3;

            await Assert.ThrowsAsync <ArgumentNullException>(async() =>
            {
                await driverService.EditAsync(editDriverServiceModel);
            });
        }
Exemple #4
0
        public async Task EditAsync_WithOverMaxNameLengthShouldThrowInvalidOperationException()
        {
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            await this.SeedDataAsync(context);

            var driverService          = new DriverService(context);
            var editDriverServiceModel = new EditDriverServiceModel();
            var driverFullName         = "qwertyuiop qwertyuiop qwertyuiop qwertyuiop qwertyuiop";

            editDriverServiceModel.FullName = driverFullName;
            editDriverServiceModel.Id       = 1;
            var message = "Driver's fullname cannot be more than 50 characters.";

            var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() =>
            {
                await driverService.EditAsync(editDriverServiceModel);
            });

            Assert.Equal(message, exception.Message);
        }
Exemple #5
0
        public async Task EditAsync_WithExistingNameShouldThrowInvalidOperationException()
        {
            MapperInitializer.InitializeMapper();
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();

            await this.SeedDataAsync(context);

            var driverService          = new DriverService(context);
            var editDriverServiceModel = new EditDriverServiceModel();
            var driverFullName         = "DFN 2";

            editDriverServiceModel.FullName = driverFullName;
            editDriverServiceModel.Id       = 1;
            var message = "Driver's fullname already exists.";

            var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() =>
            {
                await driverService.EditAsync(editDriverServiceModel);
            });

            Assert.Equal(message, exception.Message);
        }