public void TestGetMessageInfosAfterDelete() { // arrange const string welcomeMessage = "+OK"; const string okUsername = "******"; const string okPassword = "******"; const string messageDeleteAccepted = "+OK"; const string messageUidAccepted = "+OK"; const string messageUid1 = "1 psycho"; // Message 1 has UID psycho const string messageUid2 = "3 lord"; // Message 3 has UID lord const string uidListEnded = "."; const string messageListAccepted = "+OK 2 messages (320 octets)"; const string messageSize1 = "1 120"; const string messageSize2 = "3 200"; const string messageListEnd = "."; const string serverResponses = welcomeMessage + "\r\n" + okUsername + "\r\n" + okPassword + "\r\n" + messageDeleteAccepted + "\r\n" + messageUidAccepted + "\r\n" + messageUid1 + "\r\n" + messageUid2 + "\r\n" + uidListEnded + "\r\n" + messageListAccepted + "\r\n" + messageSize1 + "\r\n" + messageSize2 + "\r\n" + messageListEnd + "\r\n" ; Stream inputStream = new MemoryStream(Encoding.ASCII.GetBytes(serverResponses)); Stream outputStream = new MemoryStream(); // act Pop3Client client = new Pop3Client(); client.Connect(new CombinedStream(inputStream, outputStream)); client.Authenticate("test", "test"); client.DeleteMessage(2); List<MessageInfo> infos = client.GetMessageInfos(); // assert Assert.AreEqual(2, infos.Count); Assert.AreEqual(1, infos[0].Number); Assert.AreEqual("psycho", infos[0].Identifier); Assert.AreEqual(120, infos[0].Size); Assert.AreEqual(3, infos[1].Number); Assert.AreEqual("lord", infos[1].Identifier); Assert.AreEqual(200, infos[1].Size); }