public void CopyTo_Invalid()
        {
            var m = new MemoryStream ();

            var sc = new ByteArrayContent (new byte[0]);
            try {
                sc.CopyToAsync (null);
                Assert.Fail ("#1");
            } catch (ArgumentNullException) {
            }
        }
        public void CopyToAsync()
        {
            byte[] b = { 4, 2 };

            var sc = new ByteArrayContent (b);

            var dest = new MemoryStream ();
            var task = sc.CopyToAsync (dest);
            Assert.IsTrue (task.Wait (500));
            Assert.AreEqual (2, dest.Length, "#1");
        }
        public async Task CopyToAsync_UseEmptySourceArray_NothingCopied()
        {
            var contentData = new byte[0];
            var content = new ByteArrayContent(contentData, 0, 0);

            var destination = new MemoryStream();
            await content.CopyToAsync(destination);

            Assert.Equal(0, destination.Length);
        }
        public async Task CopyToAsync_UsePartialSourceArray_PartialContentCopied()
        {
            byte[] contentData = CreateSourceArray();
            var content = new ByteArrayContent(contentData, 3, 5);

            var destination = new MemoryStream();
            await content.CopyToAsync(destination);

            Assert.Equal(5, destination.Length);
            CheckResult(destination, 3);
        }
        public async Task CopyToAsync_UseWholeSourceArray_WholeContentCopied()
        {
            byte[] contentData = CreateSourceArray();
            var content = new ByteArrayContent(contentData);

            var destination = new MemoryStream();
            await content.CopyToAsync(destination);

            Assert.Equal(contentData.Length, destination.Length);
            CheckResult(destination, 0);
        }
        public void CopyToAsync_NullDestination_ThrowsArgumentNullException()
        {
            byte[] contentData = CreateSourceArray();
            var content = new ByteArrayContent(contentData);

            Assert.Throws<ArgumentNullException>(() => { Task t = content.CopyToAsync(null); });
        }