public void PurgeTest() { if (!MessageQueue.Exists(TESTQUEUENAME)) { MessageQueue.Create(TESTQUEUENAME); } //Clean up MessageQueue queue = new MessageQueue(TESTQUEUENAME); queue.Purge(); SendMessageCommandEx CommandEx = new SendMessageCommandEx(TESTQUEUENAME, 10); CommandEx.Message = new Message("testsendCommandEx_message#1"); QueueCommandEx.Run(CommandEx); //Make sure there are messages before purging Assert.AreEqual(10, queue.GetAllMessages().Length); QueueCommandEx.Run(new PurgeQueueCommandEx(TESTQUEUENAME)); //Make sure no messages Assert.AreEqual(0, queue.GetAllMessages().Length); }
public void SendTest() { if (!MessageQueue.Exists(TESTQUEUENAME)) { MessageQueue.Create(TESTQUEUENAME); } //Clean up MessageQueue queue = new MessageQueue(TESTQUEUENAME); queue.Purge(); SendMessageCommandEx CommandEx = new SendMessageCommandEx(TESTQUEUENAME, 10); CommandEx.Message = new Message("testsendCommandEx_message#1"); QueueCommandEx.Run(CommandEx); //Check count and content Assert.AreEqual(10, queue.GetAllMessages().Length); Message msg = queue.GetAllMessages()[0]; msg.Formatter = new PlainTextFormatter(); Assert.AreEqual("testsendCommandEx_message#1", msg.Body); msg = queue.GetAllMessages()[9]; msg.Formatter = new PlainTextFormatter(); Assert.AreEqual("testsendCommandEx_message#1", msg.Body); }
public void SendPefTest() { if (!MessageQueue.Exists(TESTQUEUENAME)) { MessageQueue.Create(TESTQUEUENAME); } //Clean up MessageQueue queue = new MessageQueue(TESTQUEUENAME); queue.Purge(); SendMessageCommandEx command = new SendMessageCommandEx(TESTQUEUENAME, 100000); command.Message = new Message("testsendcommand_message#1"); //25 bytes Stopwatch stopwatch = Stopwatch.StartNew(); QueueCommandEx.Run(command); stopwatch.Stop(); //1M ~ 9 sec //100K < 1 sec Assert.AreEqual(true, stopwatch.ElapsedMilliseconds < 1100, string.Format("Perfomance for 100K messages size 25 bytes was less than expected 1 second, actual perfomance was {0} milliseconds", stopwatch.ElapsedMilliseconds)); }
private static QueueCommandEx DecodeSendCommand(string[] args) { /* * send /p [path] [opitonal: /c [count]] [/m [message] | /f [filepath]] */ string queuename = GetQueueName(args, QUEUENAME_KEY); if (queuename == null) { return(null); } int?count = null; if (GetStringForKey(args, COUNT_KEY, false) != null && (count = GetIntForKey(args, COUNT_KEY)) == null) { return(null); } //If count provided was 0, changing to one to execute at least once. if (count == 0) { count = 1; } string commandtype = null; string messagedata = GetStringForKey(args, SENDMESSAGE_KEY, false); if (messagedata == null) { messagedata = GetStringForKey(args, FILENAME_KEY, false); if (messagedata == null) { Console.WriteLine(string.Format(Resource.WARN_PARAM_ISMISSING, string.Format("{0} | {1}", SENDMESSAGE_KEY, FILENAME_KEY))); return(null); } else { commandtype = FILENAME_KEY; } } else { commandtype = SENDMESSAGE_KEY; } switch (commandtype) { case FILENAME_KEY: return(new SendFromFileQueueCommand(queuename, messagedata, count == null ? 1 : (int)count)); default: //"text" SendMessageCommandEx command = new SendMessageCommandEx(queuename, count == null ? 1 : (int)count); command.Message = new Message(messagedata); return(command); } }
public void ExportTest() { //Prepare if (!MessageQueue.Exists(TESTQUEUENAME)) { MessageQueue.Create(TESTQUEUENAME); } if (File.Exists("testfile.xml")) { File.Delete("testfile.xml"); } MessageQueue queue = new MessageQueue(TESTQUEUENAME); queue.Purge(); SendMessageCommandEx CommandEx = new SendMessageCommandEx(TESTQUEUENAME, 3); CommandEx.Message = new Message("testsendCommandEx"); QueueCommandEx.Run(CommandEx); //Make sure messages are there Assert.AreEqual(3, queue.GetAllMessages().Length); //preparations complete - export test QueueCommandEx.Run(new ExportQueueCommandEx(TESTQUEUENAME, "testfile.xml")); //Verify content string actual; using (StreamReader reader = new StreamReader("testfile.xml")) { actual = reader.ReadToEnd(); } string expected = "<?xml version=\"1.0\" encoding=\"utf-8\"?><messages><message><![CDATA[testsendCommandEx]]></message><message><![CDATA[testsendCommandEx]]></message><message><![CDATA[testsendCommandEx]]></message></messages>"; Assert.AreEqual(expected, actual); //Clean up if (File.Exists("testfile.xml")) { File.Delete("testfile.xml"); } }
public void CopyPefTest() { if (!MessageQueue.Exists(TESTQUEUENAME)) { MessageQueue.Create(TESTQUEUENAME); } if (!MessageQueue.Exists(TESTQUEUENAME2)) { MessageQueue.Create(TESTQUEUENAME2); } //Clean up MessageQueue queue = new MessageQueue(TESTQUEUENAME); queue.Purge(); queue = new MessageQueue(TESTQUEUENAME2); queue.Purge(); //Fill the queue QueueCommandEx command = new SendMessageCommandEx(TESTQUEUENAME, 10000); command.Message = new Message("testsendcommand_message#1"); //25 bytes QueueCommandEx.Run(command); //Test command = new CopyQueueCommandEx(TESTQUEUENAME, TESTQUEUENAME2, (int?)null); Stopwatch stopwatch = Stopwatch.StartNew(); QueueCommandEx.Run(command); stopwatch.Stop(); //10K ~ 11 sec (queue opened every time) //10K ~ 2 sec (opening queue when creating instance of the class - ~6 times faster) Assert.AreEqual(true, stopwatch.ElapsedMilliseconds < 2500, string.Format("Perfomance for 10K messages size 25 bytes was less than expected 1 second, actual perfomance was {0} milliseconds", stopwatch.ElapsedMilliseconds)); }
public void CopyTest() { if (!MessageQueue.Exists(TESTQUEUENAME)) { MessageQueue.Create(TESTQUEUENAME); } if (!MessageQueue.Exists(TESTQUEUENAME2)) { MessageQueue.Create(TESTQUEUENAME2); } //Clean up MessageQueue queue = new MessageQueue(TESTQUEUENAME); queue.Purge(); queue = new MessageQueue(TESTQUEUENAME2); queue.Purge(); //Send messages to first queue SendMessageCommandEx CommandEx = new SendMessageCommandEx(TESTQUEUENAME, 110); CommandEx.Message = new Message("testsendCommandEx_message#1"); QueueCommandEx.Run(CommandEx); //end of preparations, testing //Copy all QueueCommandEx.Run(new CopyQueueCommandEx(TESTQUEUENAME, TESTQUEUENAME2, (int?)null)); Assert.AreEqual(110, queue.GetAllMessages().Length); //copy 10 more QueueCommandEx.Run(new CopyQueueCommandEx(TESTQUEUENAME, TESTQUEUENAME2, 10)); Assert.AreEqual(120, queue.GetAllMessages().Length); }
public void PeekTest() { if (!MessageQueue.Exists(TESTQUEUENAME)) { MessageQueue.Create(TESTQUEUENAME); } //Clean up MessageQueue queue = new MessageQueue(TESTQUEUENAME); queue.Purge(); SendMessageCommandEx CommandEx = new SendMessageCommandEx(TESTQUEUENAME, 10); CommandEx.Message = new Message("testpeekCommandEx_message#1"); QueueCommandEx.Run(CommandEx); //Peek CommandEx saves last read message in internal message variable, therefore: //a) test first message PeekQueueCommandEx peekCommandEx = (new PeekQueueCommandEx(TESTQUEUENAME, 1)); QueueCommandEx.Run(peekCommandEx); Assert.AreEqual("testpeekCommandEx_message#1", peekCommandEx.Message.Body); //b) test last message peekCommandEx = (new PeekQueueCommandEx(TESTQUEUENAME, (int?)null)); QueueCommandEx.Run(peekCommandEx); Assert.AreEqual("testpeekCommandEx_message#1", peekCommandEx.Message.Body); Type type = typeof(PeekQueueCommandEx); FieldInfo finfo = type.GetField("_messagesRead", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance); Assert.AreEqual(10, (long)finfo.GetValue(peekCommandEx)); }