Пример #1
0
        internal void Delete(PopMessageInfo message)
        {
            ThrowIfError(Session.Dele(message.MessageNumber));

              dropListing = null; // must be updated
        }
Пример #2
0
        private PopMessageInfo ToMessage(PopScanListing scanList, PopUniqueIdListing? uniqueIdList)
        {
            lock (((System.Collections.ICollection)messages).SyncRoot) {
            PopMessageInfo message;

            if (messages.TryGetValue(scanList.MessageNumber, out message)) {
              // update values
              message.ScanList = scanList;
              message.UniqueIdList = uniqueIdList ?? message.UniqueIdList;
            }
            else {
              message = new PopMessageInfo(this, scanList, uniqueIdList);

              messages[message.MessageNumber] = message;
            }

            return message;
              }
        }
Пример #3
0
        public void TestGetMessageReconnect()
        {
            var sessionMessages = new PopMessageInfo[2];

              for (var i = 0; i < 2; i++) {
            TestUtils.TestAuthenticated(delegate(PopPseudoServer server, PopClient client) {
              // STAT
              server.EnqueueResponse("+OK 1 200\r\n");
              // LIST
              server.EnqueueResponse("+OK 1 200\r\n");

              var message = client.GetMessage(1L);

              Assert.AreEqual(server.DequeueRequest(), "STAT\r\n");
              Assert.AreEqual(server.DequeueRequest(), "LIST 1\r\n");

              Assert.AreEqual(1L, client.MessageCount);
              Assert.AreEqual(200L, client.TotalSize);

              Assert.IsNotNull(message);
              Assert.AreEqual(1L, message.MessageNumber);
              Assert.AreEqual(200L, message.Length);

              sessionMessages[i] = message;
            });
              }

              Assert.AreNotEqual(sessionMessages[0], sessionMessages[1]);
        }