public void TestAsReadOnly() { var list = new ImapMailboxFlagList(new[] { ImapMailboxFlag.NoInferiors, ImapMailboxFlag.Subscribed, }); var readOnlyList = list.AsReadOnly(); Assert.AreNotSame(list, readOnlyList); Assert.AreEqual(2, readOnlyList.Count); Assert.IsTrue(readOnlyList.Has(ImapMailboxFlag.NoInferiors)); Assert.IsTrue(readOnlyList.Has("\\Noinferiors")); Assert.IsTrue(readOnlyList.Has(ImapMailboxFlag.Subscribed)); try { var collection = readOnlyList as System.Collections.Generic.ICollection<ImapMailboxFlag>; collection.Add(ImapMailboxFlag.HasChildren); Assert.Fail("NotSupportedException not thrown"); } catch (NotSupportedException) { } }
static ImapMailboxFlag() { AllFlags = new ImapMailboxFlagList(true, GetDefinedConstants<ImapMailboxFlag>()); }
public void Create(bool subscribe) { ProcessResult(client.Session.Create(mailbox.Name)); deleted = false; // remove \NonExistent flag if (mailbox.Flags.Has(ImapMailboxFlag.NonExistent)) { var flags = new ImapMailboxFlagList(mailbox.Flags); flags.Remove(ImapMailboxFlag.NonExistent); mailbox.Flags = flags.AsReadOnly(); } if (subscribe) ProcessResult(client.Session.Subscribe(mailbox.Name)); }