public void AuditQueryableElastic_Default_Constructor_Failed_InvalidSource() { var auditQueryable = new AuditQueryableElastic("http://invalid-elastic-source", string.Empty, string.Empty, AuthenticationType.Anonymous, string.Empty, string.Empty); var query = new Dictionary <string, StringBuilder>(); _ = auditQueryable.QueryLogData(query); Assert.Fail("Invalid Elastic source successfully connected."); }
public void AuditQueryableElastic_QueryLogData() { var dependency = new Depends(Depends.ContainerType.AnonymousElasticsearch); var hostName = "http://" + dependency.Container.IP; const string searchIndex = "warewolftestlogs"; const string username = ""; const string password = ""; var mockElasticsearchSource = new Mock <IElasticsearchSource>(); mockElasticsearchSource.Setup(o => o.HostName).Returns(hostName); mockElasticsearchSource.Setup(o => o.Port).Returns(dependency.Container.Port); mockElasticsearchSource.Setup(o => o.SearchIndex).Returns(searchIndex); mockElasticsearchSource.Setup(o => o.Username).Returns(username); mockElasticsearchSource.Setup(o => o.Password).Returns(password); mockElasticsearchSource.Setup(o => o.AuthenticationType).Returns(AuthenticationType.Anonymous); var executionId = Guid.NewGuid(); var serverId = Guid.NewGuid(); var parentId = Guid.NewGuid(); var customTransactionId = Guid.NewGuid(); var auditDate = DateTime.Now; var startDate = DateTime.Now; var endDate = startDate.AddMinutes(5); const string workflowName = "workflowName"; const string executingUser = "******"; const string url = "http:localhost.net"; const string environment = "environment"; const string auditType = "LogResumeExecutionState"; var logLevel = LogLevel.Debug.ToString(); var hits = new Dictionary <string, object> { { "ExecutionID", executionId }, { "CustomTransactionID", customTransactionId }, { "WorkflowName", workflowName }, { "ExecutingUser", executingUser }, { "Url", url }, { "Environment", environment }, { "AuditDate", auditDate }, { "Exception", new Exception("This is an exception") }, { "AuditType", auditType }, { "LogLevel", logLevel }, { "IsSubExecution", false.ToString() }, { "IsRemoteWorkflow", false.ToString() }, { "ServerID", serverId }, { "ParentID", parentId }, }; var values = new Dictionary <string, object> { { "values", hits } }; var fields = new Dictionary <string, object> { { "fields", values } }; var mockHit = new Mock <IHit <object> >(); mockHit.Setup(o => o.Source).Returns(fields); var readOnlyCollection = new List <IHit <object> > { mockHit.Object }; var mockHitsMetadata = new Mock <IHitsMetadata <object> >(); mockHitsMetadata.Setup(o => o.Hits).Returns(readOnlyCollection); var mockSearchResponse = new Mock <ISearchResponse <object> >(); mockSearchResponse.Setup(o => o.HitsMetadata).Returns(mockHitsMetadata.Object); var mockElasticClient = new Mock <IElasticClient>(); var mock = new Mock <IConnectionSettingsValues>(); mockElasticClient.Setup(o => o.ConnectionSettings).Returns(mock.Object); mockElasticClient.Setup(o => o.Search <object>(It.IsAny <ISearchRequest>())) .Returns(mockSearchResponse.Object); var auditQueryableElastic = new AuditQueryableElastic(mockElasticsearchSource.Object, mockElasticClient.Object); var query = new Dictionary <string, StringBuilder> { { "StartDateTime", startDate.ToString().ToStringBuilder() }, { "CompletedDateTime", endDate.ToString().ToStringBuilder() }, { "EventLevel", "Debug".ToStringBuilder() }, { "ExecutionID", executionId.ToString().ToStringBuilder() }, }; var queryTriggerData = auditQueryableElastic.QueryLogData(query); var audits = queryTriggerData.ToList(); Assert.AreEqual(1, audits.Count); Assert.AreEqual(executionId.ToString(), audits[0].ExecutionID); Assert.AreEqual(customTransactionId.ToString(), audits[0].CustomTransactionID); Assert.AreEqual(workflowName, audits[0].WorkflowName); Assert.AreEqual(executingUser, audits[0].ExecutingUser); Assert.AreEqual(auditDate.ToString(), audits[0].AuditDate.ToString()); Assert.AreEqual(auditType, audits[0].AuditType); Assert.AreEqual(logLevel, audits[0].LogLevel.ToString()); Assert.IsFalse(audits[0].IsSubExecution); Assert.IsFalse(audits[0].IsRemoteWorkflow); Assert.AreEqual(serverId.ToString(), audits[0].ServerID); Assert.AreEqual(parentId.ToString(), audits[0].ParentID); }