public ClientDocumentDto[] Search(SearchClientDocumentsRequest request) { LoadDocuments(); var result = _documents.AsQueryable(); if (!string.IsNullOrEmpty(request.TitleLike)) result = result.Where(d => d.Title.StartsWith(request.TitleLike) || d.Title.EndsWith(request.TitleLike)); if (request.DocumentTypeIds != null) result = result.Where(d => request.DocumentTypeIds.Contains(d.DocumentType.Id.Value)); return result.ToArray(); }
public void Given_view_model_with_document_type_ids_when_get_view_model_Then_pass_document_type_ids_to_request() { //Given var target = CreateViewModelFactory(); var returnDocumentTypesList = new List<DocHandlerDocumentTypeDto>() { new DocHandlerDocumentTypeDto() { Id = 1 }, new DocHandlerDocumentTypeDto() { Id = 2 } }; _documentTypeService .Setup(x => x.GetForDocumentGroup(DocHandlerDocumentTypeGroup.BusinessSafeSystem)) .Returns(returnDocumentTypesList); var peninsulaSiteId = 34587435; var siteId = 678L; _siteService .Setup(x => x.Search(It.IsAny<SearchSitesRequest>())) .Returns(() => new SiteDto[] { new SiteDto() { Id = siteId, SiteId = peninsulaSiteId,Name = "Test"} ,new SiteDto() {Id=siteId,SiteId = peninsulaSiteId,Name="Test"}, }); var documentTypeEvaluationReport = new ClientDocumentService.DocumentTypeDto() { Id = 1, Title = "Site Evaluation Reports" }; var documentTypeBBSManagementReviews = new ClientDocumentService.DocumentTypeDto() { Id = 2, Title = "Management Reviews" }; var documentTypeEvaluationReportSafeDoc = new ClientDocumentService.DocumentTypeDto() { Id = 3, Title = "Site Evaluation Reports safe docs" }; var documentTypeHandsBookSafeDoc = new ClientDocumentService.DocumentTypeDto() { Id = 4, Title = "Site Evaluation Reports safe docs" }; var docTypeIdsToSerachFor = new List<long> {1, 2}; var returnDocuments = new[]{ new ClientDocumentDto() { Id = 1, CreatedOn = DateTime.Now, Title = "Title1", Description = "Test Description", DocumentType = documentTypeEvaluationReport, SiteId = peninsulaSiteId }, new ClientDocumentDto() { Id = 2, CreatedOn = DateTime.Now, Title = "Title2", Description = "Test Description", DocumentType = documentTypeBBSManagementReviews, SiteId = peninsulaSiteId }, new ClientDocumentDto() { Id = 3, CreatedOn = DateTime.Now, Title = "Title3", Description = "Test Description", DocumentType = documentTypeHandsBookSafeDoc, SiteId = peninsulaSiteId }, new ClientDocumentDto() { Id = 4, CreatedOn = DateTime.Now, Title = "Title4", Description = "Test Description", DocumentType = documentTypeEvaluationReportSafeDoc, SiteId = peninsulaSiteId } }; var searchClientDocumentsRequest = new SearchClientDocumentsRequest(); _clientDocumentService .Setup(x => x.Search(It.IsAny<SearchClientDocumentsRequest>())) .Callback<SearchClientDocumentsRequest>(y => searchClientDocumentsRequest= y) .Returns(returnDocuments); //When var result = target .WithCompanyId(_companyId) .WithDocHandlerDocumentTypeGroup(DocHandlerDocumentTypeGroup.BusinessSafeSystem) .WithDocumentTitle(_title) .WithDocumentTypeIds(docTypeIdsToSerachFor) .WithAllowedSites(new List<long> { siteId }) .GetViewModel(); //Then Assert.That(searchClientDocumentsRequest.DocumentTypeIds.Count(), Is.EqualTo(2)); }
public void GetViewModel_retrieves_docType_ids_from_dochandler_service_and_passes_to_clientdocument_webservice() { // Given var target = CreateViewModelFactory(); var passedSearchClientDocumentsRequest = new SearchClientDocumentsRequest(); var documentTypes = new List<DocHandlerDocumentTypeDto>() { new DocHandlerDocumentTypeDto { Id = 1 }, new DocHandlerDocumentTypeDto { Id = 2 }, new DocHandlerDocumentTypeDto { Id = 3 } }; _documentTypeService .Setup(x => x.GetForDocumentGroup(DocHandlerDocumentTypeGroup.BusinessSafeSystem)) .Returns(documentTypes); _clientDocumentService .Setup(x => x.Search(It.IsAny<SearchClientDocumentsRequest>())).Returns(new ClientDocumentDto[0]) .Callback<SearchClientDocumentsRequest>(y => passedSearchClientDocumentsRequest = y); // When target .WithCompanyId(_companyId) .WithDocumentTitle(_title) .WithDocHandlerDocumentTypeGroup(DocHandlerDocumentTypeGroup.BusinessSafeSystem) .GetViewModel(); // Test _documentTypeService.Verify(x => x.GetForDocumentGroup(DocHandlerDocumentTypeGroup.BusinessSafeSystem), Times.Once()); _clientDocumentService.Verify(x => x.Search(It.IsAny<SearchClientDocumentsRequest>()), Times.Once()); Assert.That(passedSearchClientDocumentsRequest.DocumentTypeIds, Is.EqualTo(new long[] { 1,2,3 })); }