/// <summary> /// Setup fake email client /// </summary> /// <returns>Fake email client</returns> internal static Mock <ImapClient> GetMoq() { Mock <ImapClient> mockForClient = new Mock <ImapClient>(); var collection = new FolderNamespaceCollection(); IList <IMailFolder> folders = new List <IMailFolder> { new MoqMailFolder() }; collection.Add(new FolderNamespace('/', "")); mockForClient.Setup(x => x.PersonalNamespaces).Returns(collection); mockForClient.Setup(x => x.GetFolders(It.IsAny <FolderNamespace>(), It.IsAny <StatusItems>(), It.IsAny <bool>(), It.IsAny <CancellationToken>())).Returns(folders); mockForClient.Setup(x => x.GetFolder(It.IsNotIn <string>(string.Empty), It.IsAny <CancellationToken>())).Returns(new MoqMailFolder()); mockForClient.Setup(x => x.GetFolder(It.IsIn <string>(string.Empty), It.IsAny <CancellationToken>())).Throws <NotImplementedException>(); return(mockForClient); }
public void TestFolderNamespaceCollection() { var namespaces = new FolderNamespaceCollection(); FolderNamespace ns; int i = 0; Assert.Throws <ArgumentNullException> (() => namespaces.Add(null)); Assert.Throws <ArgumentNullException> (() => namespaces.Contains(null)); Assert.Throws <ArgumentNullException> (() => namespaces.Remove(null)); Assert.Throws <ArgumentOutOfRangeException> (() => ns = namespaces[-1]); Assert.Throws <ArgumentOutOfRangeException> (() => namespaces[-1] = new FolderNamespace('.', "")); Assert.AreEqual(0, namespaces.Count); ns = new FolderNamespace('.', ""); namespaces.Add(ns); Assert.AreEqual(1, namespaces.Count); Assert.IsTrue(namespaces.Contains(ns)); Assert.Throws <ArgumentNullException> (() => namespaces[0] = null); ns = new FolderNamespace('\\', ""); namespaces[0] = ns; Assert.AreEqual(1, namespaces.Count); Assert.IsTrue(namespaces.Contains(ns)); Assert.IsTrue(namespaces.Remove(ns)); Assert.AreEqual(0, namespaces.Count); Assert.IsFalse(namespaces.Contains(ns)); namespaces.Add(new FolderNamespace('.', "")); namespaces.Add(new FolderNamespace('\\', "")); foreach (var item in namespaces) { Assert.AreEqual(namespaces[i++], item); } i = 0; foreach (object item in (IEnumerable)namespaces) { Assert.AreEqual(namespaces[i++], item); } Assert.AreEqual("((\".\" \"\")(\"\\\\\" \"\"))", namespaces.ToString()); }
public ImapEngine() { ThreadingAlgorithms = new HashSet<ThreadingAlgorithm> (); FolderCache = new Dictionary<string, ImapFolder> (); AuthenticationMechanisms = new HashSet<string> (); CompressionAlgorithms = new HashSet<string> (); SupportedContexts = new HashSet<string> (); SupportedCharsets = new HashSet<string> (); PersonalNamespaces = new FolderNamespaceCollection (); SharedNamespaces = new FolderNamespaceCollection (); OtherNamespaces = new FolderNamespaceCollection (); ProtocolVersion = ImapProtocolVersion.Unknown; Capabilities = ImapCapabilities.None; queue = new List<ImapCommand> (); nextId = 1; }
public void TestArgumentExceptions() { var enumeratedRights = new [] { AccessRight.OpenFolder, AccessRight.CreateFolder }; Assert.Throws <ArgumentNullException> (() => new AccessControl(null)); Assert.Throws <ArgumentNullException> (() => new AccessControl(null, "rk")); Assert.Throws <ArgumentNullException> (() => new AccessControl(null, enumeratedRights)); Assert.Throws <ArgumentNullException> (() => new AccessControl("name", (string)null)); Assert.Throws <ArgumentNullException> (() => new AccessControl("name", (IEnumerable <AccessRight>)null)); Assert.Throws <ArgumentNullException> (() => new AccessControlList(null)); Assert.Throws <ArgumentNullException> (() => new AccessRights((IEnumerable <AccessRight>)null)); Assert.Throws <ArgumentNullException> (() => new AccessRights((string)null)); var rights = new AccessRights(); Assert.Throws <ArgumentNullException> (() => rights.AddRange((string)null)); Assert.Throws <ArgumentNullException> (() => rights.AddRange((IEnumerable <AccessRight>)null)); Assert.Throws <ArgumentNullException> (() => new AlertEventArgs(null)); Assert.Throws <ArgumentNullException> (() => new FolderNamespace('.', null)); var namespaces = new FolderNamespaceCollection(); FolderNamespace ns; Assert.Throws <ArgumentNullException> (() => namespaces.Add(null)); Assert.Throws <ArgumentNullException> (() => namespaces.Contains(null)); Assert.Throws <ArgumentNullException> (() => namespaces.Remove(null)); Assert.Throws <ArgumentOutOfRangeException> (() => ns = namespaces[-1]); Assert.Throws <ArgumentOutOfRangeException> (() => namespaces[-1] = new FolderNamespace('.', "")); namespaces.Add(new FolderNamespace('.', "")); Assert.Throws <ArgumentNullException> (() => namespaces[0] = null); Assert.Throws <ArgumentNullException> (() => new FolderNotFoundException(null)); Assert.Throws <ArgumentNullException> (() => new FolderNotFoundException("message", null)); Assert.Throws <ArgumentNullException> (() => new FolderNotFoundException("message", null, new Exception("message"))); Assert.Throws <ArgumentNullException> (() => new FolderNotOpenException(null, FolderAccess.ReadOnly)); Assert.Throws <ArgumentNullException> (() => new FolderNotOpenException(null, FolderAccess.ReadOnly, "message")); Assert.Throws <ArgumentNullException> (() => new FolderNotOpenException(null, FolderAccess.ReadOnly, "message", new Exception("message"))); Assert.Throws <ArgumentNullException> (() => new FolderRenamedEventArgs(null, "name")); Assert.Throws <ArgumentNullException> (() => new FolderRenamedEventArgs("name", null)); Assert.Throws <ArgumentOutOfRangeException> (() => new MessageEventArgs(-1)); Assert.Throws <ArgumentNullException> (() => new MessageFlagsChangedEventArgs(0, MessageFlags.Answered, null)); Assert.Throws <ArgumentNullException> (() => new MessageFlagsChangedEventArgs(0, MessageFlags.Answered, null, 1)); Assert.Throws <ArgumentNullException> (() => new MessageFlagsChangedEventArgs(0, UniqueId.MinValue, MessageFlags.Answered, null)); Assert.Throws <ArgumentNullException> (() => new MessageFlagsChangedEventArgs(0, UniqueId.MinValue, MessageFlags.Answered, null, 1)); Assert.Throws <ArgumentNullException> (() => new MessageLabelsChangedEventArgs(0, null)); Assert.Throws <ArgumentNullException> (() => new MessageLabelsChangedEventArgs(0, null, 1)); Assert.Throws <ArgumentNullException> (() => new MessageLabelsChangedEventArgs(0, UniqueId.MinValue, null)); Assert.Throws <ArgumentNullException> (() => new MessageLabelsChangedEventArgs(0, UniqueId.MinValue, null, 1)); Assert.Throws <ArgumentNullException> (() => new MessageSentEventArgs(null, "response")); Assert.Throws <ArgumentNullException> (() => new MessageSentEventArgs(new MimeMessage(), null)); Assert.Throws <ArgumentNullException> (() => new MessageSummaryFetchedEventArgs(null)); Assert.Throws <ArgumentNullException> (() => new MessagesVanishedEventArgs(null, false)); Assert.Throws <ArgumentNullException> (() => new MetadataCollection(null)); var metadataOptions = new MetadataOptions(); Assert.Throws <ArgumentOutOfRangeException> (() => metadataOptions.Depth = 500); Assert.Throws <ArgumentOutOfRangeException> (() => new ModSeqChangedEventArgs(-1)); Assert.Throws <ArgumentOutOfRangeException> (() => new ModSeqChangedEventArgs(-1, 1)); Assert.Throws <ArgumentOutOfRangeException> (() => new ModSeqChangedEventArgs(-1, UniqueId.MinValue, 1)); Assert.Throws <ArgumentOutOfRangeException> (() => new OrderBy(OrderByType.To, SortOrder.None)); Assert.Throws <ArgumentNullException> (() => new ProtocolLogger((string)null)); Assert.Throws <ArgumentNullException> (() => new ProtocolLogger((Stream)null)); using (var logger = new ProtocolLogger(new MemoryStream())) { var buffer = new byte[1024]; Assert.Throws <ArgumentNullException> (() => logger.LogConnect(null)); Assert.Throws <ArgumentNullException> (() => logger.LogClient(null, 0, 0)); Assert.Throws <ArgumentNullException> (() => logger.LogServer(null, 0, 0)); Assert.Throws <ArgumentOutOfRangeException> (() => logger.LogClient(buffer, -1, 0)); Assert.Throws <ArgumentOutOfRangeException> (() => logger.LogServer(buffer, -1, 0)); Assert.Throws <ArgumentOutOfRangeException> (() => logger.LogClient(buffer, 0, -1)); Assert.Throws <ArgumentOutOfRangeException> (() => logger.LogServer(buffer, 0, -1)); } Assert.Throws <ArgumentNullException> (() => new UniqueIdMap(null, new [] { UniqueId.MinValue })); Assert.Throws <ArgumentNullException> (() => new UniqueIdMap(new [] { UniqueId.MinValue }, null)); }
public void TestArgumentExceptions () { var enumeratedRights = new [] { AccessRight.OpenFolder, AccessRight.CreateFolder }; Assert.Throws<ArgumentNullException> (() => new AccessControl (null)); Assert.Throws<ArgumentNullException> (() => new AccessControl (null, "rk")); Assert.Throws<ArgumentNullException> (() => new AccessControl (null, enumeratedRights)); Assert.Throws<ArgumentNullException> (() => new AccessControl ("name", (string) null)); Assert.Throws<ArgumentNullException> (() => new AccessControl ("name", (IEnumerable<AccessRight>) null)); Assert.Throws<ArgumentNullException> (() => new AccessControlList (null)); Assert.Throws<ArgumentNullException> (() => new AccessRights ((IEnumerable<AccessRight>) null)); Assert.Throws<ArgumentNullException> (() => new AccessRights ((string) null)); var rights = new AccessRights (); Assert.Throws<ArgumentNullException> (() => rights.AddRange ((string) null)); Assert.Throws<ArgumentNullException> (() => rights.AddRange ((IEnumerable<AccessRight>) null)); Assert.Throws<ArgumentNullException> (() => new AlertEventArgs (null)); Assert.Throws<ArgumentNullException> (() => new FolderNamespace ('.', null)); var namespaces = new FolderNamespaceCollection (); FolderNamespace ns; Assert.Throws<ArgumentNullException> (() => namespaces.Add (null)); Assert.Throws<ArgumentNullException> (() => namespaces.Contains (null)); Assert.Throws<ArgumentNullException> (() => namespaces.Remove (null)); Assert.Throws<ArgumentOutOfRangeException> (() => ns = namespaces[-1]); Assert.Throws<ArgumentOutOfRangeException> (() => namespaces[-1] = new FolderNamespace ('.', "")); namespaces.Add (new FolderNamespace ('.', "")); Assert.Throws<ArgumentNullException> (() => namespaces[0] = null); Assert.Throws<ArgumentNullException> (() => new FolderNotFoundException (null)); Assert.Throws<ArgumentNullException> (() => new FolderNotFoundException ("message", null)); Assert.Throws<ArgumentNullException> (() => new FolderNotFoundException ("message", null, new Exception ("message"))); Assert.Throws<ArgumentNullException> (() => new FolderNotOpenException (null, FolderAccess.ReadOnly)); Assert.Throws<ArgumentNullException> (() => new FolderNotOpenException (null, FolderAccess.ReadOnly, "message")); Assert.Throws<ArgumentNullException> (() => new FolderNotOpenException (null, FolderAccess.ReadOnly, "message", new Exception ("message"))); Assert.Throws<ArgumentNullException> (() => new FolderRenamedEventArgs (null, "name")); Assert.Throws<ArgumentNullException> (() => new FolderRenamedEventArgs ("name", null)); Assert.Throws<ArgumentOutOfRangeException> (() => new MessageEventArgs (-1)); Assert.Throws<ArgumentNullException> (() => new MessageFlagsChangedEventArgs (0, MessageFlags.Answered, null)); Assert.Throws<ArgumentNullException> (() => new MessageFlagsChangedEventArgs (0, MessageFlags.Answered, null, 1)); Assert.Throws<ArgumentNullException> (() => new MessageFlagsChangedEventArgs (0, UniqueId.MinValue, MessageFlags.Answered, null)); Assert.Throws<ArgumentNullException> (() => new MessageFlagsChangedEventArgs (0, UniqueId.MinValue, MessageFlags.Answered, null, 1)); Assert.Throws<ArgumentNullException> (() => new MessageLabelsChangedEventArgs (0, null)); Assert.Throws<ArgumentNullException> (() => new MessageLabelsChangedEventArgs (0, null, 1)); Assert.Throws<ArgumentNullException> (() => new MessageLabelsChangedEventArgs (0, UniqueId.MinValue, null)); Assert.Throws<ArgumentNullException> (() => new MessageLabelsChangedEventArgs (0, UniqueId.MinValue, null, 1)); Assert.Throws<ArgumentNullException> (() => new MessageSentEventArgs (null, "response")); Assert.Throws<ArgumentNullException> (() => new MessageSentEventArgs (new MimeMessage (), null)); Assert.Throws<ArgumentNullException> (() => new MessageSummaryFetchedEventArgs (null)); Assert.Throws<ArgumentNullException> (() => new MessagesVanishedEventArgs (null, false)); Assert.Throws<ArgumentNullException> (() => new MetadataCollection (null)); var metadataOptions = new MetadataOptions (); Assert.Throws<ArgumentOutOfRangeException> (() => metadataOptions.Depth = 500); Assert.Throws<ArgumentOutOfRangeException> (() => new ModSeqChangedEventArgs (-1)); Assert.Throws<ArgumentOutOfRangeException> (() => new ModSeqChangedEventArgs (-1, 1)); Assert.Throws<ArgumentOutOfRangeException> (() => new ModSeqChangedEventArgs (-1, UniqueId.MinValue, 1)); Assert.Throws<ArgumentOutOfRangeException> (() => new OrderBy (OrderByType.To, SortOrder.None)); Assert.Throws<ArgumentNullException> (() => new ProtocolLogger ((string) null)); Assert.Throws<ArgumentNullException> (() => new ProtocolLogger ((Stream) null)); using (var logger = new ProtocolLogger (new MemoryStream ())) { var buffer = new byte[1024]; Assert.Throws<ArgumentNullException> (() => logger.LogConnect (null)); Assert.Throws<ArgumentNullException> (() => logger.LogClient (null, 0, 0)); Assert.Throws<ArgumentNullException> (() => logger.LogServer (null, 0, 0)); Assert.Throws<ArgumentOutOfRangeException> (() => logger.LogClient (buffer, -1, 0)); Assert.Throws<ArgumentOutOfRangeException> (() => logger.LogServer (buffer, -1, 0)); Assert.Throws<ArgumentOutOfRangeException> (() => logger.LogClient (buffer, 0, -1)); Assert.Throws<ArgumentOutOfRangeException> (() => logger.LogServer (buffer, 0, -1)); } Assert.Throws<ArgumentNullException> (() => new UniqueIdMap (null, new [] { UniqueId.MinValue })); Assert.Throws<ArgumentNullException> (() => new UniqueIdMap (new [] { UniqueId.MinValue }, null)); }