public void Write_Call_Properly_Estimates_The_Count(int buffSize)
        {
            using (var mem = new MemoryStream())
            {
                using (var instance = new ByteCountStream(mem, true))
                {
                    var buffer = new byte[buffSize];
                    for (var i = 0; i < buffSize; i++)
                    {
                        buffer[i] = 5;
                    }
                    instance.Write(buffer, 0, buffSize);
                    Assert.True(instance.ByteCount == mem.Length);

                    using (var mem1 = new MemoryStream())
                    {
                        instance.ResetWith(mem1, true);
                        buffer = new byte[buffSize];
                        for (var i = 0; i < buffSize; i++)
                        {
                            buffer[i] = 5;
                        }
                        instance.Write(buffer, 0, buffSize);
                        Assert.True(instance.ByteCount == mem.Length);
                    }
                }
            }
        }
        public void Write_Call_Properly_Checks_The_Constraints_When_Stream_Is_Null(byte[] nullBuff)
        {
            using (var instance = new ByteCountStream())
            {
                //null buff
                var err = Assert.Throws <DdnDfException>(() => instance.Write(nullBuff, 0, 0));
                Assert.NotNull(err);
                Assert.True(err.ErrorCode == DdnDfErrorCode.NullObject);

                // -ve offset
                err = Assert.Throws <DdnDfException>(() => instance.Write(new byte[0], -1, 0));
                Assert.NotNull(err);
                Assert.True(err.ErrorCode == DdnDfErrorCode.ValueLessThanThreshold);

                // -ve count
                err = Assert.Throws <DdnDfException>(() => instance.Write(new byte[0], 0, -1));
                Assert.NotNull(err);
                Assert.True(err.ErrorCode == DdnDfErrorCode.ValueLessThanThreshold);

                // buff length < offset + count
                err = Assert.Throws <DdnDfException>(() => instance.Write(new byte[0], 0, 1));
                Assert.NotNull(err);
                Assert.True(err.ErrorCode == DdnDfErrorCode.ValueLessThanThreshold);

                //this would pass
                instance.Write(new byte[0], 0, 0);
            }
        }