示例#1
0
        private MsmqSink CreateSink(MsmqSinkData msmqSinkData)
        {
            MsmqSink msmqSink = new MsmqSink();

            msmqSink.Initialize(new TestLogSinkConfigurationView(msmqSinkData));
            return(msmqSink);
        }
        public void LogTwoMessagesToQueueAndBeAbleToReadBothOfThem()
        {
            string path = @"FormatName:DIRECT=OS:" + CommonUtil.MessageQueuePath;

            MsmqSinkData sinkParams = new MsmqSinkData();

            sinkParams.QueuePath = path;

            MsmqSink sink = new MsmqSink();

            sink.Initialize(new TestLogSinkConfigurationView(sinkParams));

            CommonUtil.SendTestMessage(sink);

            using (MessageQueue mq = new MessageQueue(path))
            {
                Message msg = mq.Receive(new TimeSpan(0, 0, 1));
                mq.Close();
                msg.Formatter = new XmlMessageFormatter(new string[] { "System.String,mscorlib" });
                Assert.AreEqual(CommonUtil.FormattedMessage, msg.Body.ToString());
            }

            CommonUtil.SendTestMessage(sink);
            using (MessageQueue mq = new MessageQueue(path))
            {
                Message msg = mq.Receive(new TimeSpan(0, 0, 1));
                mq.Close();
                msg.Formatter = new XmlMessageFormatter(new string[] { "System.String,mscorlib" });
                Assert.AreEqual(CommonUtil.FormattedMessage, msg.Body.ToString());
            }
        }
示例#3
0
        public void MsmqSink()
        {
            string       sinkName = "MsmqSink";
            MsmqSinkData sink     = new MsmqSinkData();

            sink.Name = sinkName;

            SinkFromFactory(sink);
        }
示例#4
0
        public void MsmqSinkDataPropertiesTest()
        {
            MsmqSinkData data      = new MsmqSinkData();
            string       queuePath = "Path";

            data.QueuePath = queuePath;

            Assert.AreEqual(queuePath, data.QueuePath);
        }
示例#5
0
        public void InvalidQueuePath()
        {
            string path = @"INVALID PATH";

            MsmqSinkData sinkParams = new MsmqSinkData("MsmqSink");

            sinkParams.QueuePath = path;
            MsmqSink sink = CreateSink(sinkParams);

            sink.SendMessage(new LogEntry());
        }
示例#6
0
        private bool ValidateQueuePath(LogEntry log)
        {
            MsmqSinkData msmqSinkData = GetMsmqSinkDataFromCursor();

            bool valid = true;

            if (msmqSinkData.QueuePath == null || msmqSinkData.QueuePath.Length == 0)
            {
                valid = false;
                log.AddErrorMessage(SR.ExceptionMsmqSinkMissingConfiguration);
                this.defaultSink.SendMessage(log);
            }
            return(valid);
        }
示例#7
0
        private void SendMessageToQueue(LogEntry logEntry)
        {
            MsmqSinkData msmqSinkData = GetMsmqSinkDataFromCursor();

            using (MessageQueue messageQueue = new MessageQueue(msmqSinkData.QueuePath))
            {
                Message queueMessage = new Message();
                queueMessage.Body     = FormatEntry(logEntry);
                queueMessage.Label    = logEntry.Title;
                queueMessage.Priority = msmqSinkData.MessagePriority;

                MessageQueueTransactionType transactionType = (messageQueue.Transactional)
                                ? MessageQueueTransactionType.Single
                                : MessageQueueTransactionType.None;

                messageQueue.Send(queueMessage, transactionType);
                messageQueue.Close();
            }
        }
示例#8
0
        public void QueueDoesNotExist()
        {
            // delete the queue
            CommonUtil.DeletePrivateTestQ();

            MsmqSinkData sinkParams = new MsmqSinkData("MsmqSink");

            sinkParams.QueuePath = CommonUtil.MessageQueuePath;
            MsmqSink sink = CreateSink(sinkParams);

            try
            {
                CommonUtil.SendTestMessage(sink);
            }
            finally
            {
                CommonUtil.CreatePrivateTestQ();
            }
        }
示例#9
0
        public void MsmqSinkDataTest()
        {
            string name      = "testName";
            string queuePath = "testPath";
            string type      = typeof(MsmqSink).AssemblyQualifiedName;

            MsmqSinkData data = new MsmqSinkData();

            data.Name      = name;
            data.QueuePath = queuePath;
            data.TypeName  = type;

            MsmqSinkNode node = new MsmqSinkNode(data);

            GeneratedApplicationNode.Nodes.Add(node);
            MsmqSinkData nodeData = (MsmqSinkData)node.SinkData;

            Assert.AreEqual(name, nodeData.Name);
            Assert.AreEqual(queuePath, nodeData.QueuePath);
            Assert.AreEqual(type, nodeData.TypeName);
        }
示例#10
0
        public void LogMessageToMSMQ()
        {
            string path = @"FormatName:DIRECT=OS:" + CommonUtil.MessageQueuePath;

            MsmqSinkData sinkParams = new MsmqSinkData("MsmqSink");

            sinkParams.QueuePath       = path;
            sinkParams.MessagePriority = MessagePriority.Low;
            MsmqSink sink = CreateSink(sinkParams);

            CommonUtil.SendTestMessage(sink);

            MessageQueue mq = new MessageQueue(path);

            mq.MessageReadPropertyFilter.Priority = true;
            Message msg = mq.Receive(new TimeSpan(0, 0, 1));

            msg.Formatter = new XmlMessageFormatter(new string[] { "System.String,mscorlib" });

            mq.Close();
            mq = null;
            Assert.AreEqual(MessagePriority.Low, msg.Priority);
            Assert.AreEqual(CommonUtil.FormattedMessage, msg.Body.ToString());
        }
示例#11
0
 /// <summary>
 /// Creates node with specified configuration data.
 /// </summary>
 /// <param name="msmqSinkData">Configuration data.</param>
 public MsmqSinkNode(MsmqSinkData msmqSinkData) : base(msmqSinkData)
 {
     this.msmqSinkData = msmqSinkData;
 }
示例#12
0
        public void MsmqSinkDataPropertiesTest()
        {
            MsmqSinkData data = new MsmqSinkData();
            string queuePath = "Path";

            data.QueuePath = queuePath;

            Assert.AreEqual(queuePath, data.QueuePath);
        }