public async void AssetValidator_FailsIfRackDoesNotExist() { var mockAssetRepo = new Mock <IAssetRepository>(); mockAssetRepo.Setup(o => o.AssetIsUniqueAsync(It.IsAny <string>(), It.IsAny <Guid>())) .ReturnsAsync(true); var mockRackRepo = new Mock <IRackRepository>(); mockRackRepo.Setup(o => o.AddressExistsAsync(It.IsAny <string>(), It.IsAny <int>(), Guid.NewGuid())) .ReturnsAsync(true); var mockModelRepo = new Mock <IModelRepository>(); mockModelRepo.Setup(o => o.ModelExistsAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Guid>())) .ReturnsAsync(true); var mockIdentityRepo = new Mock <IIdentityRepository>(); mockIdentityRepo.Setup(o => o.GetUserAsync(It.IsAny <Guid>())) .ReturnsAsync(new User()); // not null var sut = new AssetValidator(mockAssetRepo.Object, mockRackRepo.Object, mockModelRepo.Object, mockIdentityRepo.Object); var asset = GetValidAsset(); var result = await sut.ValidateAsync(asset); Assert.False(result.IsValid); }
/// <summary> /// Validates all properties of properties of an AssetDto object. /// </summary> /// <param name="dto">The <see cref="AssetDto"/>.</param> protected override async Task ValidateAsync(AssetDto dto) { if (IsNull(dto)) { return; } var url = $"https://restcountries.eu/rest/v2/name/{dto.CountryOfDepartment}?fullText=true"; var assetValidator = new AssetValidator(HttpDataAccess.SendRequestAsync(url)); var results = await assetValidator.ValidateAsync(new ValidationContext <Asset>(Adapt(dto))); foreach (var e in results.Errors) { ModelState.AddModelError(e.PropertyName, Localizer[e.ErrorCode ?? e.ErrorMessage]); } }