public void ItemBoundMismatchLengthTest_ShouldThrowInvalidOperation()
        {
            var expected = new ItemBoundLengthClass {
                Items = new List <string>(new[] { "abc", "defghi" })
            };

#if TESTASYNC
            Assert.ThrowsException <AggregateException>(() => Roundtrip(expected));
#else
            Assert.ThrowsException <InvalidOperationException>(() => Roundtrip(expected));
#endif
        }
        public void ItemBoundLengthTest()
        {
            var expected = new ItemBoundLengthClass {
                Items = new List <string>(new[] { "abc", "def", "ghi" })
            };

            var itemLength     = expected.Items[0].Length;
            var expectedLength = sizeof(int) + itemLength * expected.Items.Count;
            var actual         = Roundtrip(expected, expectedLength);

            Assert.AreEqual(itemLength, actual.ItemLength);
            Assert.IsTrue(expected.Items.SequenceEqual(actual.Items));
        }