private static IOptions <FilterConfiguration> CreateFilterConfiguration( string modelName, string filterName, string filterOptionKey, string filterOptionValue) { var filterBuilder = new FilterConfigurationBuilder() .AddModel(modelName, builder => { builder.AddFilter(filterName, options => { options.AddOption(filterOptionKey, filterOptionValue); }); }); var options = Options.Create(filterBuilder.Build()); return(options); }
public async Task RestrictedContractorFilterForContractors() { const string ModelName = FilterConstants.WorkOrder; var mockCurrentUserService = new CurrentUserServiceMock(); mockCurrentUserService.SetSecurityGroup(UserGroups.Contractor); mockCurrentUserService.SetContractor("c1", "c2", "c3"); var mockScheduleOfRatesGateway = new Mock <IScheduleOfRatesGateway>(); mockScheduleOfRatesGateway.Setup(m => m.GetLiveContractors()).ReturnsAsync(BuildContractors("c1", "c3", "c4")); var filter = new FilterConfigurationBuilder().AddModel(ModelName, b => { }).Build(); var sut = new WorkOrderFilterProvider(Options.Create(filter), mockScheduleOfRatesGateway.Object, mockCurrentUserService.Object); var result = await sut.GetFilter(); result.Should().ContainKey(FilterSectionConstants.Contractors); result[FilterSectionConstants.Contractors].Should().HaveCount(2); result[FilterSectionConstants.Contractors].Should().ContainSingle(c => c.Key == "c1" && c.Description == "c1"); result[FilterSectionConstants.Contractors].Should().ContainSingle(c => c.Key == "c3" && c.Description == "c3"); }