public async Task CreatePackages_WithoutValidParameters_ReturnsbadRequest() { //Arrange var packageParameters = _fixture .Build <PackageParameters>() .With(a => a.CountryCode, "PT") .With(a => a.AreaCode, "LB") .CreateMany(0); var parameters = new CreatePackageParameters { Packages = packageParameters }; _mockPackageRepository .Setup(exec => exec.CreatePackages( It.IsAny <IEnumerable <Package> >())) .Returns(Task.CompletedTask); //Act var response = await _packagesController .CreatePackages(parameters) as BadRequestResult; //Assert _mockPackageRepository .Verify(exec => exec.CreatePackages( It.IsAny <IEnumerable <Package> >()), Times.Never); response.StatusCode .Should() .Be((int)HttpStatusCode.BadRequest); }
public async Task <IActionResult> CreatePackages(CreatePackageParameters parameters) { if (!parameters.Packages.Any()) { return(BadRequest()); } var packagesToCreate = parameters.Packages .Select(p => Package.CreateNew( size: p.Size, weight: p.Weight, isFragile: p.IsFragile, valueToPay: p.ValueToPay, countryCode: p.CountryCode, countryISOCode: GetCountryCodeDetails(p.CountryCode), areaCode: p.AreaCode, shipment: Shipment.CreateNew( checkPoint: CheckPoint.CreateNew( city: p.CheckPointDetails.City, country: p.CheckPointDetails.Country, controlType: p.CheckPointDetails.ControlType, placeType: p.CheckPointDetails.PlaceType)))); await _packageRepository.CreatePackages(packagesToCreate); return(Ok()); }