Example #1
0
        public async Task ProcessBatch_DeletedWorkspace()
        {
            // Arrange
            var batchId    = 1;
            var batchSize  = 50;
            var batchStart = 0;
            var batch      = new SearchAuditBatch
            {
                Id          = batchId,
                WorkspaceId = workspaceId,
                BatchSize   = batchSize,
                BatchStart  = batchStart,
                ServerId    = 123,
                HourId      = this.hourId
            };

            this.searchAuditBatchRepositoryMock.Setup(m => m.ReadBatch(batch.Id)).Returns(batch);
            this.serverRepositoryMock.Setup(m => m.ReadWorkspaceExistsAsync(workspaceId)).ReturnsAsync(false);
            this.searchAuditBatchRepositoryMock.Setup(r => r.UpdateAsync(batch))
            .Returns(Task.FromResult(1));

            // Act
            var result = await this.auditBatchProcessor.ProcessBatch(batchId);

            // Assert
            Assert.That(result, Is.Empty);
        }
 public async Task UpdateAsync(SearchAuditBatch batch)
 {
     using (var connection = this.connectionFactory.GetEddsPerformanceConnection())
     {
         await connection.ExecuteAsync(Resources.SearchAuditBatch_Update, batch);
     }
 }
 internal bool BatchAlreadyExists(IList <SearchAuditBatch> existingBatches, SearchAuditBatch batch) =>
 existingBatches.Any(batchExists =>
                     batchExists.HourId == batch.HourId &&
                     batchExists.WorkspaceId == batch.WorkspaceId &&
                     batchExists.BatchStart == batch.BatchStart &&
                     batchExists.BatchSize == batch.BatchSize);
Example #4
0
        public async Task ProcessBatch()
        {
            // Arrange
            var batchId    = 1;
            var batchSize  = 50;
            var batchStart = 0;
            var batch      = new SearchAuditBatch
            {
                Id          = batchId,
                WorkspaceId = workspaceId,
                BatchSize   = batchSize,
                BatchStart  = batchStart,
                ServerId    = 123,
                HourId      = this.hourId
            };

            this.searchAuditBatchRepositoryMock.Setup(m => m.ReadBatch(batch.Id))
            .Returns(batch);

            this.serverRepositoryMock.Setup(m => m.ReadWorkspaceExistsAsync(workspaceId)).ReturnsAsync(true);
            this.hourRepositoryMock.Setup(m => m.ReadAsync(batch.HourId)).ReturnsAsync(hour);

            var audit  = new Audit();
            var audits = new List <Audit> {
                audit
            };

            this.workspaceAuditServiceMock.Setup(
                m => m.ReadAuditsAsync(
                    batch.WorkspaceId,
                    hour.Id,
                    It.Is <IList <AuditActionId> >(a => a.Contains(AuditActionId.DocumentQuery)),
                    batch.BatchSize,
                    batch.BatchStart))
            .ReturnsAsync(audits);

            var queryId = (string)null;

            this.auditParsingServiceMock.Setup(m => m.ParseQueryId(audit.Details)).Returns(queryId);

            var searchAudit = new SearchAudit {
                Search = new Search(), IsComplex = true
            };
            var startSearchAudits = new SearchAuditGroup {
                Audits = new List <SearchAudit> {
                    searchAudit
                }
            };
            var endSearchAudits = new SearchAuditGroup {
                Audits = new List <SearchAudit> {
                    searchAudit
                }
            };
            var expectedSearchAudits = new List <SearchAudit> {
                searchAudit
            };
            var expectedSearchAuditGroups = new List <SearchAuditGroup> {
                new SearchAuditGroup {
                    Audits = expectedSearchAudits
                }
            };

            this.searchAnalysisServiceMock.Setup(m => m.AnalyzeSearchAudit(startSearchAudits)).ReturnsAsync(endSearchAudits);
            expectedSearchAudits[0].IsComplex = searchAudit.IsComplex;

            var auditResult = new SearchAuditBatchResult {
                BatchId = batchId
            };
            var auditResults = new List <SearchAuditBatchResult> {
                auditResult
            };

            this.auditBatchAnalyzerMock.Setup(m => m.GetBatchResults(It.IsAny <IList <SearchAuditGroup> >(), batchId)).Returns(auditResults);

            this.workspaceAuditReporter.Setup(r => r.ReportWorkspaceAudits(It.IsAny <IList <SearchAuditGroup> >(), It.IsAny <Hour>(), It.IsAny <int>()))
            .Returns(Task.FromResult(1));

            this.searchAuditBatchRepositoryMock.Setup(r => r.CreateBatchResults(It.IsAny <IList <SearchAuditBatchResult> >()))
            .Returns(new[] { 123456 });

            this.searchAuditBatchRepositoryMock.Setup(r => r.UpdateAsync(batch))
            .Returns(Task.FromResult(1));

            this.workspaceService.Setup(s => s.WorkspaceIsAvailableAsync(workspaceId))
            .ReturnsAsync(true);

            // Act
            var result = await this.auditBatchProcessor.ProcessBatch(batchId);

            // Assert
            Assert.That(result, Is.Not.Empty);
            Assert.That(result.Count, Is.EqualTo(auditResults.Count));
        }