public async Task Update_Valid_Devise()
        {
            //Arr

            context.Devises.Add(new Devise()
            {
                Id = 6, Code = "USD", Name = "US dollar"
            });

            await context.SaveChangesAsync();

            var validator = new UpdateDeviseCommandValidator(context);

            UpdateDeviseCommand command = new UpdateDeviseCommand()
            {
                Id   = 6,
                Code = "ALD",
                Name = "AL Dinar",
            };

            //Act

            var result = validator.Validate(command, options => options.IncludeRuleSets("UpdateDevise"));

            //Ass

            result.IsValid.Should().BeTrue();
        }
        public async Task When_Update_Duplicate_Devise_Name_throws_Exception()
        {
            //Arr

            context.Devises.Add(new Devise()
            {
                Id = 3, Code = "USD", Name = "US dollar"
            });
            context.Devises.Add(new Devise()
            {
                Id = 4, Code = "USA", Name = "US currency"
            });

            await context.SaveChangesAsync();

            var validator = new UpdateDeviseCommandValidator(context);

            UpdateDeviseCommand command = new UpdateDeviseCommand()
            {
                Id   = 4,
                Code = "USA",
                Name = "US dollar",
            };

            //act

            var result = validator.Validate(command, options => options.IncludeRuleSets("UpdateDevise"));

            //Ass

            result.Errors.Count.Should().Be(1);
            result.Errors[0].ErrorMessage.Should().Be("The specified Name already exists.");

            result.IsValid.Should().BeFalse();
        }
        public async Task When_Create_Short_Devise_Code_throws_Exception()
        {
            //Arr
            context.Devises.Add(new Devise()
            {
                Id = 5, Code = "USA", Name = "US currency"
            });

            await context.SaveChangesAsync();

            var validator = new UpdateDeviseCommandValidator(context);

            UpdateDeviseCommand command = new UpdateDeviseCommand()
            {
                Id   = 5,
                Code = "US",
                Name = "US dollar",
            };



            //Acc

            var result = validator.Validate(command, options => options.IncludeRuleSets("UpdateDevise"));

            //Ass

            result.Errors[0].ErrorMessage.Should().Be("Code must be 3 characters.");

            result.IsValid.Should().BeFalse();
        }
        public async Task <IActionResult> Update(int id, UpdateDeviseCommand command)
        {
            if (id != command.Id)
            {
                return(BadRequest());
            }

            var item = await Mediator.Send(command);

            if (item == 0)
            {
                return(NotFound());
            }
            return(Ok(item));
        }