public void ProcessRequestTest_POST() { // Arrange EAEPMessage message = new EAEPMessage("host1", "app1", "event1"); var store = new Mock<IEAEPMonitorStore>(); store .Setup(x => x.PushMessages(It.Is<EAEPMessages> (ms => ms[0].Host == message.Host && ms[0].Application == message.Application && ms[0].Event == message.Event) )) .Verifiable(); var request = new Mock<IServiceRequest>(); request.SetupGet(x => x.Method).Returns("POST"); request.SetupGet(x => x.ResourceName).Returns("event"); request.SetupGet(x => x.Body).Returns(message.ToString()); var response = new Mock<IServiceResponse>(); response.SetupProperty(x => x.StatusCode); EventService target = new EventService(store.Object); // Act target.ProcessRequest(request.Object, response.Object, null); // Assert store.VerifyAll(); Assert.AreEqual(Constants.HTTP_200_OK, response.Object.StatusCode); }
public void GetMessagesTest_Between() { // Arrange const string app1 = "app1"; const string app2 = "app2"; var message1 = new EAEPMessage(new DateTime(2009, 9, 12, 12, 0, 0), "host1", app1, "purchase"); var message2 = new EAEPMessage(new DateTime(2009, 9, 12, 12, 10, 0), "host1", app2, "login"); var message3 = new EAEPMessage(new DateTime(2009, 9, 12, 12, 20, 0), "host1", app1, "purchase"); var message4 = new EAEPMessage(new DateTime(2009, 9, 12, 12, 40, 0), "host1", app1, "purchase"); using (var monitorStore = new SQLMonitorStore(Configuration.MonitorStoreConnectionString)) { monitorStore.PushMessage(message1); monitorStore.PushMessage(message2); monitorStore.PushMessage(message3); monitorStore.PushMessage(message4); // Act var messages = monitorStore.GetMessages( new DateTime(2009, 9, 12, 12, 5, 0), new DateTime(2009, 9, 12, 12, 22, 0), string.Format("{0}:{1}", EAEPMessage.FIELD_HOST, "host1") ); // Assert Assert.AreEqual(2, messages.Count); Assert.AreEqual(message3, messages[0]); Assert.AreEqual(message2, messages[1]); } }
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 void SendMessage(string uri, EAEPMessage message, EndSendEAEPMessageDelegate onwardDelegate) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri); request.Timeout = Timeout; request.Method = "POST"; request.BeginGetRequestStream(GetRequestStreamCallback, new RequestState(request, onwardDelegate, message)); }
public void CaseInsensitiveParameters() { // arrange var message = new EAEPMessage(); message["monkey"] = "helloWorld"; // act var containsParameter = message.ContainsParameter("MONKEY"); // assert Assert.IsTrue(containsParameter); }
public void AddAMessageIDParameter() { // Arrange var messageID = Guid.NewGuid(); var message = new EAEPMessage("myhost", "myapp", "myevent"); // Act message["messageID"] = messageID.ToString(); // Assert Assert.AreEqual(messageID.ToString(), message["messageID"]); }
public void ApplicationTest() { // Arrange var target = new EAEPMessage(); const string expected = "purchase"; target.Application = expected; // Act var actual = target.Application; // Assert Assert.AreEqual(expected, actual); }
public void CaseInsensitiveParameters_SetDifferently() { // arrange var message = new EAEPMessage(); const string expectedValue = "helloWorld"; message["monkey"] = expectedValue; // act var actualValue = message["MONKEY"]; // assert Assert.AreEqual(expectedValue, actualValue); }
private void WriteResultItem(StreamWriter targetWriter, string template, EAEPMessage message) { Hashtable values = new Hashtable(); values.Add("message", ReplaceCRLFwithHTMLLineBreaks(message.ToString())); values.Add("host", CreateSearchLink(EAEPMessage.FIELD_HOST, message.Host, message.Host)); values.Add("app", CreateSearchLink(EAEPMessage.FIELD_APPLICATION, message.Application, message.Application)); values.Add("event", CreateSearchLink(EAEPMessage.FIELD_EVENT, message.Event, message.Event)); values.Add("timestamp", message.TimeStamp.ToString(EAEPMessage.TIMESTAMP_FORMAT)); StringBuilder parameters = new StringBuilder(); StringWriter parametersWriter = new StringWriter(parameters); foreach (string parameter in message.ParameterKeys) { // only write out if not a reserved parameter name, displayed above if (EAEPMessage.ParamNameIsValid(parameter)) { parametersWriter.WriteLine(CreateSearchLink(parameter, message[parameter], string.Format("{0}={1}", parameter, message[parameter]))); } } values.Add("params", parameters.ToString()); targetWriter.WriteLine(TemplateParser.Parse(template, values)); }
public void GetMessagesTest_CaseSensitivity() { var message1 = new EAEPMessage(new DateTime(2009, 9, 17, 12, 0, 0), "host1", "app1", "purchase"); var message2 = new EAEPMessage(new DateTime(2009, 9, 17, 12, 0, 10), "host1", "app2", "Purchase"); var message3 = new EAEPMessage(new DateTime(2009, 9, 17, 12, 0, 20), "host1", "app1", "Purchase"); using (var monitorStore = new SQLMonitorStore(Configuration.MonitorStoreConnectionString)) { monitorStore.PushMessage(message1); monitorStore.PushMessage(message2); monitorStore.PushMessage(message3); var messages = monitorStore.GetMessages(string.Format("{0}:{1}", EAEPMessage.FIELD_EVENT, "Purchase")); Assert.AreEqual(2, messages.Count); Assert.AreEqual(message3, messages[0]); Assert.AreEqual(message2, messages[1]); messages = monitorStore.GetMessages(string.Format("{0}:{1}",EAEPMessage.FIELD_EVENT, "purchase")); Assert.AreEqual(1, messages.Count); Assert.AreEqual(message1, messages[0]); } }
public void EqualsTest_NotEqual() { // Arrange var message1 = new EAEPMessage { Host = "app1", Application = "ecommerce", Event = "purchase" }; message1["value"] = "25.00"; message1["currency"] = "EUR"; message1["user"] = "******"; var message2 = new EAEPMessage { Host = "app1", Application = "ecommerce", Event = "purchase" }; message2["value"] = "25.00"; message2["currency"] = "EUR"; message2["product"] = "SMS 200"; // Assert Assert.AreNotEqual(message1, message2); }
public void WithNonUrlEncoded_WithoutCarrageReturnSerializesEaep_ThenDeserializesWithoutError_AndWithOriginalValue() { const string paramValue = "My value has spaces"; const string serialisedMessage = "EAEP 1.0 12-03-2007-12:33:59.123\r\napp1 ecommerce purchase\r\nparam=" + paramValue + "\r\n" + EAEPMessage.END_OF_MESSAGE + "\r\n"; var deserializedMessage = new EAEPMessage(serialisedMessage); // assert Assert.AreEqual(paramValue, deserializedMessage["param"]); }
public void WithComplexParameterValue_EaepMessageSerializes_AndDeserializesOk() { // arrange var paramValue = "This=Parameter Is\r\nComplex"; var message = new EAEPMessage(DateTime.UtcNow, "host", "app", "event"); // act message["param"] = paramValue; var serialized = message.ToString(); var deserializedMessage = new EAEPMessage(serialized); // assert Assert.AreEqual(paramValue, deserializedMessage["param"]); }
public void ToStringTest() { // Arrange var message = new EAEPMessage { Version = "1.0", Host = "app1", Application = "ecommerce", Event = "purchase", TimeStamp = DateTime.ParseExact("12-03-2007-12:33:59.123", EAEPMessage.TIMESTAMP_FORMAT, CultureInfo.InvariantCulture) }; message["value"] = "25.00"; message["currency"] = "EUR"; message["user"] = "******"; const string expectedString = "EAEP 1.0 12-03-2007-12:33:59.123\r\napp1 ecommerce purchase\r\nvalue=25.00\r\ncurrency=EUR\r\nuser=user%40company.com\r\n" + EAEPMessage.END_OF_MESSAGE + "\r\n"; // Act / Assert Assert.AreEqual(expectedString, message.ToString()); }
public void ItemHeaderTest() { // Arrange var target = new EAEPMessage(); const string expected = "MyApp"; target.Application = "MyApp"; target.Application = expected; // Act var actual = target.Application; // Assert Assert.AreEqual(expected, actual); }
public void ContainsParameterTest() { // Arrange var message = new EAEPMessage { Host = "app1", Application = "ecommerce", Event = "purchase" }; message["value"] = "25.00"; message["currency"] = "EUR"; message["user"] = "******"; // Act / Assert Assert.IsTrue(message.ContainsParameter("currency")); Assert.IsFalse(message.ContainsParameter("bilge")); }
public void WithParamValueWithParamDelimiter_SerializesThenDeserializesWithoutError_AndWithOriginalValue() { // arrange var paramValueWithDelimiter = @"start of value=end of value after delimiter"; var message = new EAEPMessage(DateTime.UtcNow, "host", "app", "event"); // act message["param"] = paramValueWithDelimiter; var serialized = message.ToString(); var deserializedMessage = new EAEPMessage(serialized); // assert Assert.AreEqual(paramValueWithDelimiter, deserializedMessage["param"]); }
public void ParameterNameValidationTest_Message() { // Arrange / Act var message = new EAEPMessage(); message[EAEPMessage.FIELD_MESSAGE] = "bilge"; }
public void EventTest() { var target = new EAEPMessage(); const string expected = "purchase"; target.Event = expected; string actual = target.Event; Assert.AreEqual(expected, actual); }
public void ExampleMessage_EaepMessageSerializesOk() { var paramValue = @"Jim Parker, 447974326623, 1 pax, GVA-Landry, newcastle - 6465 - 13:35, paid"; var message = new EAEPMessage(DateTime.UtcNow, "host", "app", "event"); // act message["param"] = paramValue; var serialized = message.ToString(); var deserializedMessage = new EAEPMessage(serialized); // assert Assert.AreEqual(paramValue, deserializedMessage["param"]); }
public void ParameterNameValidationTest_Application() { // Arrange / Act var message = new EAEPMessage(); message[EAEPMessage.FIELD_APPLICATION] = "bilge"; }
public void LoadSerialisedTest() { // Arrange var expectedMessage = new EAEPMessage("host1", "app1", "loadpage") { TimeStamp = DateTime.Now }; expectedMessage["user"] = "******"; // Act var actualMessage = new EAEPMessage(expectedMessage.ToString()); // Assert Assert.AreEqual(expectedMessage, actualMessage); }
public void ItemTest() { // Arrange var target = new EAEPMessage(); const string param = "user"; const string expected = "*****@*****.**"; target[param] = expected; // Act string actual = target[param]; // Assert Assert.AreEqual(expected, actual); }
public void WithParamValueContainingNewLine_SerializesThenDeserializesWithoutError_AndWithOriginalValue() { // arrange var paramValueWithNewLine = @"this value is on more than one line"; var message = new EAEPMessage(DateTime.UtcNow, "host", "app", "event"); // act message["param"] = paramValueWithNewLine; var serialized = message.ToString(); var deserializedMessage = new EAEPMessage(serialized); // assert Assert.AreEqual(paramValueWithNewLine, deserializedMessage["param"]); }
public void WithParamValueWithEndOfMessageCharacters_SerializesThenDeserializesWithoutError_AndWithOriginalValue() { // arrange var paramValueWithEndOfMessageCharacters = @"start of value---end of value after end of message"; var message = new EAEPMessage(DateTime.UtcNow, "host", "app", "event"); // actl message["param"] = paramValueWithEndOfMessageCharacters; var serialized = message.ToString(); var deserializedMessage = new EAEPMessage(serialized); // assert Assert.AreEqual(paramValueWithEndOfMessageCharacters, deserializedMessage["param"]); }
public void ParameterNameValidationTest_Timestamp() { // Arrange / Act var message = new EAEPMessage(); message[EAEPMessage.FIELD_TIMESTAMP] = "bilge"; }
public void SerializeAndDeserialize_EaepMessage_WithNullParameterValue() { // arrange var message = new EAEPMessage(DateTime.UtcNow, "host", "app", "event"); message["param"] = null; // act var serialized = message.ToString(); var deserializedMessage = new EAEPMessage(serialized); // assert Assert.IsTrue(string.IsNullOrEmpty(deserializedMessage["param"])); }
public void TimeStampTest() { // Arrange var target = new EAEPMessage(); var expected = new DateTime(); target.TimeStamp = expected; // Act var actual = target.TimeStamp; // Assert Assert.AreEqual(expected, actual); }
public void ParameterNameValidationTest_Event() { // Arrange / Act var message = new EAEPMessage(); message[EAEPMessage.FIELD_EVENT] = "bilge"; }
public void HostTest() { // Arrange var target = new EAEPMessage(); const string expected = "app1"; target.Host = expected; // Act var actual = target.Host; // Assert Assert.AreEqual(expected, actual); }