Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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]);
            }
        }
Esempio n. 3
0
        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]);
            }
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        public void CaseInsensitiveParameters()
        {
            //  arrange
            var message = new EAEPMessage();
            message["monkey"] = "helloWorld";

            //  act
            var containsParameter = message.ContainsParameter("MONKEY");

            //  assert
            Assert.IsTrue(containsParameter);
        }
Esempio n. 6
0
        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"]);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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));
        }
Esempio n. 10
0
        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]);
            }
        }
Esempio n. 11
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);
        }
Esempio n. 12
0
        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"]);
        }
Esempio n. 13
0
        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"]);
        }
Esempio n. 14
0
        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());
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        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"));
        }
Esempio n. 17
0
        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"]);
        }
Esempio n. 18
0
 public void ParameterNameValidationTest_Message()
 {
     // Arrange / Act
     var message = new EAEPMessage();
     message[EAEPMessage.FIELD_MESSAGE] = "bilge";
 }
Esempio n. 19
0
 public void EventTest()
 {
     var target = new EAEPMessage();
     const string expected = "purchase";
     target.Event = expected;
     string actual = target.Event;
     Assert.AreEqual(expected, actual);
 }
Esempio n. 20
0
        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"]);
        }
Esempio n. 21
0
 public void ParameterNameValidationTest_Application()
 {
     // Arrange / Act
     var message = new EAEPMessage();
     message[EAEPMessage.FIELD_APPLICATION] = "bilge";
 }
Esempio n. 22
0
        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);
        }
Esempio n. 23
0
        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);
        }
Esempio n. 24
0
        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"]);
        }
Esempio n. 25
0
        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"]);
        }
Esempio n. 26
0
 public void ParameterNameValidationTest_Timestamp()
 {
     // Arrange / Act
     var message = new EAEPMessage();
     message[EAEPMessage.FIELD_TIMESTAMP] = "bilge";
 }
Esempio n. 27
0
        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"]));
        }
Esempio n. 28
0
        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);
        }
Esempio n. 29
0
 public void ParameterNameValidationTest_Event()
 {
     // Arrange / Act
     var message = new EAEPMessage();
     message[EAEPMessage.FIELD_EVENT] = "bilge";
 }
Esempio n. 30
0
        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);
        }