public async Task <SearchResult <Classifier> > Handle(GetClassifierList request, CancellationToken cancellationToken) { var repository = _repositoryFactory.GetNamedOrDefaultService(request.TypeCode); return(await repository.Search(request, cancellationToken)); }
public async Task <SearchResult <Classifier> > List(GetClassifierList request) { return(await _mediator.Send(request)); }
public async Task GetClassifierList_Should_ReturnList() { // arrange var cancellationToken = CancellationToken.None; var dbContextFactory = new DefaultDbContextFactory(); var unitOfWorkFactory = new TransactionScopeUnitOfWorkFactory(); var classifierTypeRepository = new DbClassifierTypeRepository(dbContextFactory); var classifierTypeService = new DbClassifierTypeService(dbContextFactory, classifierTypeRepository); var fieldProviderRegistry = new DefaultFieldProviderRegistry(); fieldProviderRegistry.AddFieldType(typeof(TextField)); var dbFieldDataRepository = new DbFieldDataRepository(dbContextFactory, fieldProviderRegistry); var metadataServiceMock = new Mock <IClassifierTypeMetadataService>(); metadataServiceMock .Setup(x => x.GetMetadata(It.IsAny <ClassifierType>(), It.IsAny <CancellationToken>())) .ReturnsAsync(() => new FieldMetadata[] { new TextField { Key = "test1", Active = true, System = false }, new TextField { Key = "test2", Active = true, System = false }, new TextField { Key = "test3", Active = true, System = false } }); var classifierRepository = new DbClassifierRepository <Classifier>( dbContextFactory, classifierTypeService, null, metadataServiceMock.Object, dbFieldDataRepository, null); var classifierRepositoryFactoryMock = new Mock <INamedServiceFactory <IClassifierRepository> >(); classifierRepositoryFactoryMock.Setup(x => x.GetNamedOrDefaultService(It.IsAny <string>())).Returns(classifierRepository); var handler = new GetClassifierListHandler(classifierRepositoryFactoryMock.Object); var generator = new MasterDataDbGenerator(unitOfWorkFactory, dbContextFactory); using (var _ = unitOfWorkFactory.Create()) { // arrange await generator.InsertType(HierarchyType.None, cancellationToken); for (var i = 0; i < 42; i++) { await generator.InsertItem($"{i:D4}", null, cancellationToken); } // act var command = new GetClassifierList { TypeCode = generator.TypeCode }; var result = await handler.Handle(command, cancellationToken); // assert Assert.IsNotNull(result); Assert.AreEqual(10, result.Rows.Count); Assert.AreEqual(42, result.TotalCount); } }