public async Task Then_The_Available_Dates_Service_Is_Called_And_Dates_Returned( GetAvailableDatesQuery query, [Frozen] ValidationResult validationResult, AccountLegalEntity accountLegalEntity, List <AvailableDateStartWindow> availableDateStartWindows, [Frozen] Mock <IAccountLegalEntitiesService> mockAleService, [Frozen] Mock <IAvailableDatesService> mockDatesService, GetAvailableDatesQueryHandler handler) { //Arrange validationResult.ValidationDictionary.Clear(); mockAleService .Setup(service => service.GetAccountLegalEntity(query.AccountLegalEntityId)) .ReturnsAsync(accountLegalEntity); mockDatesService .Setup(x => x.GetAvailableDates()) .Returns(availableDateStartWindows); //Act var actual = await handler.Handle(query, CancellationToken.None); //Assert Assert.IsAssignableFrom <GetAvailableDatesResult>(actual); Assert.AreSame(availableDateStartWindows, actual.AvailableDates); }
public async Task And_AccountLegalEntityId_Is_Greater_Than_0_Then_Is_Valid( GetAvailableDatesQuery query, GetAvailableDatesValidator validator) { var result = await validator.ValidateAsync(query); result.IsValid().Should().BeTrue(); }
public async Task And_AccountLegalEntityId_Is_Less_Than_1_Then_Is_Invalid( GetAvailableDatesQuery query, GetAvailableDatesValidator validator) { if (query.AccountLegalEntityId > 0) { query.AccountLegalEntityId = -query.AccountLegalEntityId; } var result = await validator.ValidateAsync(query); result.IsValid().Should().BeFalse(); result.ValidationDictionary.Keys.Should().Contain(nameof(query.AccountLegalEntityId)); }
public void Arrange() { var fixture = new Fixture(); _query = fixture.Create <GetAvailableDatesQuery>(); _expectedApiResponse = fixture.Create <GetAvailableDatesApiResponse>(); _service = new Mock <IFundingRulesService>(); _service .Setup(s => s.GetAvailableDates(_query.AccountLegalEntityId)) .ReturnsAsync(_expectedApiResponse); _handler = new GetAvailableDatesQueryHandler(_service.Object); }
public void And_Query_Invalid_Then_Throws_InvalidArgumentException( GetAvailableDatesQuery query, ValidationResult validationResult, string propertyName, List <AvailableDateStartWindow> availableDateStartWindows, [Frozen] Mock <IValidator <GetAvailableDatesQuery> > mockValidator, [Frozen] Mock <IAccountLegalEntitiesService> mockAleService, [Frozen] Mock <IAvailableDatesService> mockDatesService, GetAvailableDatesQueryHandler handler) { validationResult.AddError(propertyName); mockValidator .Setup(validator => validator.ValidateAsync(query)) .ReturnsAsync(validationResult); var act = new Func <Task>(async() => await handler.Handle(query, CancellationToken.None)); act.Should().Throw <ArgumentException>() .WithMessage("The following parameters have failed validation*") .Which.ParamName.Should().Contain(propertyName); }