public void LoadTest() { const string app1 = "app1"; const string app2 = "app2"; const string userParam = "user"; const string user1 = "*****@*****.**"; const string user2 = "*****@*****.**"; var message1 = new EAEPMessage("host1", app1, "purchase"); message1[userParam] = user2; var message2 = new EAEPMessage("host1", app2, "login"); message2[userParam] = user1; var message3 = new EAEPMessage("host1", app1, "purchase"); message3[userParam] = user1; var message4 = new EAEPMessage("host1", app2, "purchase"); message4[userParam] = user2; var expected = new EAEPMessages {message1, message2, message3, message4}; var actual = new EAEPMessages(); actual.Load(expected.ToString()); Assert.AreEqual(expected.Count, actual.Count); for (var i = 0; i < expected.Count; i++) { Assert.AreEqual(expected[i], actual[i]); } }
public override void ProcessRequest(IServiceRequest request, IServiceResponse response, IResourceRepository resourceRepository) { EAEPMessages messages = new EAEPMessages(request.Body); monitorStore.PushMessages(messages); response.StatusCode = Constants.HTTP_200_OK; response.StatusDescription = "OK"; }
public void CountTest() { // Arrange var expected = new[] { 1, 2, 0, 1 }; const string app1 = "app1"; const string app2 = "app2"; var messages = new EAEPMessages { new EAEPMessage(new DateTime(2009, 9, 17, 12, 5, 0), "host1", app1, "purchase"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 10, 0), "host1", app2, "purchase"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 17, 0), "host1", app1, "purchase"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 18, 0), "host1", app2, "purchase"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 22, 0), "host1", app1, "purchase"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 36, 0), "host1", app2, "purchase"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 51, 0), "host1", app1, "purchase"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 55, 0), "host1", app2, "purchase") }; using (var monitorStore = new SQLMonitorStore(Configuration.MonitorStoreConnectionString)) { foreach (var message in messages) { monitorStore.PushMessage(message); } var target = new Aggregator(monitorStore); // Act var actual = target.Count( string.Format("{0}:{1} AND {2}:{3}", EAEPMessage.FIELD_APPLICATION, app1, EAEPMessage.FIELD_EVENT, "purchase"), new DateTime(2009, 9, 17, 12, 0, 0), new DateTime(2009, 9, 17, 13, 0, 0), 4); // Assert Assert.AreEqual(expected.Length, actual.Length); for (var i = 0; i < expected.Length; i++) { Assert.AreEqual(expected[i], actual[i]); } } }
public void ProcessRequestTest() { // Arrange EAEPMessages messages = new EAEPMessages(); messages.Add(new EAEPMessage("host01", "app01", "DoneSomething")); messages.Add(new EAEPMessage("host01", "app02", "DoneSomething")); messages.Add(new EAEPMessage("host01", "app01", "DoneSomethingElse")); string query = "hello"; string expectedContent = JsonConvert.SerializeObject(messages); var monitor = new Mock<IEAEPMonitorStore>(); monitor .Setup(x => x.GetMessages(query)) .Returns(messages) .Verifiable(); var request = new Mock<IServiceRequest>(); request .SetupGet(x => x.Query) .Returns(query); var response = new Mock<IServiceResponse>(); MemoryStream contentStream = new MemoryStream(); response .SetupGet(x => x.ContentStream) .Returns(contentStream); response .SetupProperty(x => x.ContentType); SearchService target = new SearchService(monitor.Object); // Act target.ProcessRequest(request.Object, response.Object, null); // Assert Assert.AreEqual("application/json", response.Object.ContentType); string actualContent = Encoding.UTF8.GetString(contentStream.ToArray()); Assert.AreEqual(expectedContent, actualContent); }
protected override void InternalWriteContent(StreamWriter writer, IServiceRequest request, IServiceResponse response, IResourceRepository resourceRepository) { resourceRepository.WriteResource("header.htm", writer); bool activeSearch = (request.Query != null); try { EAEPMessages messages = new EAEPMessages(); string searchResultText = string.Empty; if (activeSearch) { messages = monitor.GetMessages(request.Query); searchResultText = string.Format("{0} message(s) found", messages.Count); } WriteSearchResultHeader(writer, request, resourceRepository, searchResultText); int maxItems = 100; if (maxItems > messages.Count) { maxItems = messages.Count; } string messageTemplate = resourceRepository.GetResourceAsString("eaepmsg.htm"); for (int i = 0; i < maxItems; i++) { WriteResultItem(writer, messageTemplate, messages[i]); } } catch (Exception ex) { writer.WriteLine(ReplaceCRLFwithHTMLLineBreaks(ex.ToString())); } resourceRepository.WriteResource("searchresultfooter.htm", writer); resourceRepository.WriteResource("footer.htm", writer); }
public void CountUniqueTest() { // Arrange var expected = new[] { 1, 2, 1, 1 }; const string user1 = "user1"; const string user2 = "user2"; var messages = new EAEPMessages { new EAEPMessage(new DateTime(2009, 9, 17, 12, 5, 0), "host1", "webapp", "PageLoad"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 10, 0), "host1", "webapp", "PageLoad"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 17, 0), "host1", "webapp", "PageLoad"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 18, 0), "host1", "webapp", "PageLoad"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 22, 0), "host1", "webapp", "PageLoad"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 36, 0), "host1", "webapp", "PageLoad"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 51, 0), "host1", "webapp", "PageLoad"), new EAEPMessage(new DateTime(2009, 9, 17, 12, 55, 0), "host1", "webapp", "PageLoad") }; messages[0][EAEPMessage.PARAM_USER] = user1; messages[1][EAEPMessage.PARAM_USER] = user1; messages[2][EAEPMessage.PARAM_USER] = user1; messages[3][EAEPMessage.PARAM_USER] = user2; messages[4][EAEPMessage.PARAM_USER] = user2; messages[5][EAEPMessage.PARAM_USER] = user1; messages[6][EAEPMessage.PARAM_USER] = user2; messages[7][EAEPMessage.PARAM_USER] = user2; using (var monitorStore = new SQLMonitorStore(Configuration.MonitorStoreConnectionString)) { foreach (var message in messages) { monitorStore.PushMessage(message); } var target = new Aggregator(monitorStore); // Act var actual = target.Count( string.Format("{0}:{1} AND {2}:{3}", EAEPMessage.FIELD_APPLICATION, "webapp", EAEPMessage.FIELD_HOST, "host1"), new DateTime(2009, 9, 17, 12, 0, 0), new DateTime(2009, 9, 17, 13, 0, 0), 4, EAEPMessage.PARAM_USER); // Assert Assert.AreEqual(expected.Length, actual.Length); for (var i = 0; i < expected.Length; i++) { Assert.AreEqual(expected[i], actual[i]); } } }
public void ToStringTest() { // Arrange const string app1 = "app1"; const string app2 = "app2"; const string userParam = "user"; const string user1 = "*****@*****.**"; const string user2 = "*****@*****.**"; var message1 = new EAEPMessage("host1", app1, "purchase"); message1[userParam] = user2; var message2 = new EAEPMessage("host1", app2, "login"); message2[userParam] = user1; var message3 = new EAEPMessage("host1", app1, "purchase"); message3[userParam] = user1; var message4 = new EAEPMessage("host1", app2, "purchase"); message4[userParam] = user2; var target = new EAEPMessages {message1, message2, message3, message4}; var expected = string.Format("{0}{1}{2}{3}", message1, message2, message3, message4); // Act var actual = target.ToString(); // Assert Assert.AreEqual(expected, actual); }
protected EAEPMessages ExecuteGetMessagesCommand(SqlCommand command) { try { using (SqlConnection connection = GetConnection()) { command.Connection = connection; command.CommandTimeout = Configuration.DefaultQueryTimeout; using (SqlDataReader reader = command.ExecuteReader()) { EAEPMessages messages = new EAEPMessages(); while (reader.Read()) { messages.Add(new EAEPMessage(reader.GetString(0))); } return messages; } } } catch (SqlException ex) { log.Warn(ex); throw new MessageRetrievalException(ex.Message); } catch (Exception ex) { log.Error(ex); throw new MessageRetrievalException(ex.Message); } }
public void PushMessages(EAEPMessages messages) { foreach (EAEPMessage message in messages) { PushMessage(message); } }