Exemplo n.º 1
0
        public void TestArgumentExceptions()
        {
            var multipart = new Multipart();

            Assert.Throws <ArgumentNullException> (() => new Multipart((MimeEntityConstructorArgs)null));
            Assert.Throws <ArgumentNullException> (() => new Multipart((string)null));
            Assert.Throws <ArgumentNullException> (() => new Multipart("mixed", null));
            Assert.Throws <ArgumentException> (() => new Multipart("mixed", 5));

            Assert.Throws <ArgumentNullException> (() => multipart.Boundary = null);

            Assert.Throws <ArgumentNullException> (() => multipart.Add(null));
            Assert.Throws <ArgumentOutOfRangeException> (() => multipart.Insert(-1, new TextPart("plain")));
            Assert.Throws <ArgumentNullException> (() => multipart.Insert(0, null));
            Assert.Throws <ArgumentNullException> (() => multipart.Remove(null));
            Assert.Throws <ArgumentOutOfRangeException> (() => multipart.RemoveAt(-1));

            Assert.Throws <ArgumentNullException> (() => multipart.Contains(null));
            Assert.Throws <ArgumentNullException> (() => multipart.IndexOf(null));

            Assert.Throws <ArgumentOutOfRangeException> (() => multipart[0] = new TextPart("plain"));
            Assert.Throws <ArgumentNullException> (() => multipart[0]       = null);

            Assert.Throws <ArgumentNullException> (() => multipart.Accept(null));

            Assert.Throws <ArgumentOutOfRangeException> (() => multipart.CopyTo(new MimeEntity[0], -1));
            Assert.Throws <ArgumentNullException> (() => multipart.CopyTo(null, 0));

            Assert.Throws <ArgumentOutOfRangeException> (() => multipart.Prepare(EncodingConstraint.SevenBit, 1));

            Assert.Throws <ArgumentNullException> (() => multipart.WriteTo((string)null));
            Assert.Throws <ArgumentNullException> (() => multipart.WriteTo((Stream)null));
            Assert.Throws <ArgumentNullException> (() => multipart.WriteTo((string)null, false));
            Assert.Throws <ArgumentNullException> (() => multipart.WriteTo((Stream)null, false));
            Assert.Throws <ArgumentNullException> (() => multipart.WriteTo(null, Stream.Null));
            Assert.Throws <ArgumentNullException> (() => multipart.WriteTo(FormatOptions.Default, (Stream)null));
            Assert.Throws <ArgumentNullException> (() => multipart.WriteTo(null, "fileName"));
            Assert.Throws <ArgumentNullException> (() => multipart.WriteTo(FormatOptions.Default, (string)null));
            Assert.Throws <ArgumentNullException> (() => multipart.WriteTo(null, Stream.Null, false));
            Assert.Throws <ArgumentNullException> (() => multipart.WriteTo(FormatOptions.Default, (Stream)null, false));
            Assert.Throws <ArgumentNullException> (() => multipart.WriteTo(null, "fileName", false));
            Assert.Throws <ArgumentNullException> (() => multipart.WriteTo(FormatOptions.Default, (string)null, false));

            Assert.ThrowsAsync <ArgumentNullException> (async() => await multipart.WriteToAsync((string)null));
            Assert.ThrowsAsync <ArgumentNullException> (async() => await multipart.WriteToAsync((Stream)null));
            Assert.ThrowsAsync <ArgumentNullException> (async() => await multipart.WriteToAsync((string)null, false));
            Assert.ThrowsAsync <ArgumentNullException> (async() => await multipart.WriteToAsync((Stream)null, false));
            Assert.ThrowsAsync <ArgumentNullException> (async() => await multipart.WriteToAsync(null, Stream.Null));
            Assert.ThrowsAsync <ArgumentNullException> (async() => await multipart.WriteToAsync(FormatOptions.Default, (Stream)null));
            Assert.ThrowsAsync <ArgumentNullException> (async() => await multipart.WriteToAsync(null, "fileName"));
            Assert.ThrowsAsync <ArgumentNullException> (async() => await multipart.WriteToAsync(FormatOptions.Default, (string)null));
            Assert.ThrowsAsync <ArgumentNullException> (async() => await multipart.WriteToAsync(null, Stream.Null, false));
            Assert.ThrowsAsync <ArgumentNullException> (async() => await multipart.WriteToAsync(FormatOptions.Default, (Stream)null, false));
            Assert.ThrowsAsync <ArgumentNullException> (async() => await multipart.WriteToAsync(null, "fileName", false));
            Assert.ThrowsAsync <ArgumentNullException> (async() => await multipart.WriteToAsync(FormatOptions.Default, (string)null, false));
        }