internal void Delete(PopMessageInfo message) { ThrowIfError(Session.Dele(message.MessageNumber)); dropListing = null; // must be updated }
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; } }
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]); }