コード例 #1
0
        public void FixedStringBuilder_TryAppend_Rolls_Back_When_Capacity_Is_Reached_With_String_And_Reserve()
        {
            FixedStringBuilder target = new FixedStringBuilder(4);

            Assert.IsTrue(target.TryAppend("XX", 1, 0));
            Assert.IsFalse(target.TryAppend("XX", 1, 0));
            Assert.AreEqual(string.Empty, target.ToString());
        }
コード例 #2
0
        public void FixedStringBuilder_TryAppend_Does_Not_Exceed_Capacity_With_Character()
        {
            FixedStringBuilder target = new FixedStringBuilder(1);

            Assert.IsTrue(target.TryAppend('X', 0));
            Assert.IsFalse(target.TryAppend('X', 0));
            Assert.AreEqual("X", target.ToString());
        }
コード例 #3
0
        public void FixedStringBuilder_TryAppend_Does_Not_Exceed_Capacity_With_String_And_Reserve()
        {
            FixedStringBuilder target = new FixedStringBuilder(4);

            Assert.IsTrue(target.TryAppend("XX", 1));
            Assert.IsFalse(target.TryAppend("XX", 1));
            Assert.AreEqual("XX", target.ToString());
        }
コード例 #4
0
        public void FixedStringBuilder_TryResize_Can_Always_Expand_Capacity()
        {
            FixedStringBuilder target = new FixedStringBuilder(1);

            Assert.IsTrue(target.TryAppend('X', 0));
            Assert.IsTrue(target.TryResize(2, 0));
            Assert.IsTrue(target.TryAppend('X', 0));
            Assert.AreEqual("XX", target.ToString());
        }
コード例 #5
0
        public void FixedStringBuilder_TryAppend_Does_Nothing_With_Null_Strings()
        {
            FixedStringBuilder target = new FixedStringBuilder(0);

            Assert.IsTrue(target.TryAppend(null, 0));
            Assert.AreEqual(0, target.Length);
            Assert.IsTrue(target.TryAppend(null, 0, 0));
            Assert.AreEqual(0, target.Length);
        }
コード例 #6
0
        public void FixedStringBuilder_Length_Returns_Current_Length()
        {
            FixedStringBuilder target = new FixedStringBuilder(2);

            Assert.AreEqual(0, target.Length);
            Assert.IsTrue(target.TryAppend('X', 0));
            Assert.AreEqual(1, target.Length);
            Assert.IsTrue(target.TryAppend('X', 0));
            Assert.AreEqual(2, target.Length);
        }
コード例 #7
0
        public void FixedStringBuilder_TryResize_Only_Reduces_Capacity_If_There_Is_Room()
        {
            FixedStringBuilder target = new FixedStringBuilder(3);

            Assert.IsTrue(target.TryAppend('X', 0));
            Assert.IsTrue(target.TryAppend('X', 0));
            Assert.IsFalse(target.TryResize(1, 0));
            Assert.IsTrue(target.TryResize(2, 0));
            Assert.AreEqual("XX", target.ToString());
        }
コード例 #8
0
        public void FixedStringBuilder_TryExpand_Does_Nothing_If_Capacity_Is_Already_Larger()
        {
            FixedStringBuilder target = new FixedStringBuilder(3);

            Assert.IsTrue(target.TryAppend('X', 0));
            Assert.IsFalse(target.TryExpand(2));
            Assert.IsTrue(target.TryAppend('X', 0));
            Assert.IsTrue(target.TryAppend('X', 0));
            Assert.AreEqual("XXX", target.ToString());
        }
コード例 #9
0
        public void FixedStringBuilder_TryAppend_Keeps_Rollback_When_Capacity_Is_Reached_With_Character_And_Reserve()
        {
            FixedStringBuilder target = new FixedStringBuilder(2);

            Assert.IsTrue(target.TryAppend('X', 1));
            int actual = 0;

            Assert.IsFalse(target.TryAppend('X', 1, out actual));
            Assert.AreEqual(1, actual);
            Assert.AreEqual("X", target.ToString());
        }
コード例 #10
0
        public void FixedStringBuilder_TryAppend_Sets_Rollback_With_Character_And_Reserve()
        {
            FixedStringBuilder target = new FixedStringBuilder(3);

            Assert.IsTrue(target.TryAppend('X', 0));
            int actual = 0;

            Assert.IsTrue(target.TryAppend('X', 1, out actual));
            Assert.IsFalse(target.TryAppend('X', 1, actual));
            Assert.AreEqual(1, actual);
            Assert.AreEqual("X", target.ToString());
        }
コード例 #11
0
        public void FixedStringBuilder_Last_Returns_Last_Character()
        {
            FixedStringBuilder target = new FixedStringBuilder(2);

            Assert.IsTrue(target.TryAppend('X', 0));
            Assert.AreEqual('X', target.Last);
        }
コード例 #12
0
        public void FixedStringBuilder_Clear_Resets_Builder()
        {
            FixedStringBuilder target = new FixedStringBuilder(1);

            Assert.IsTrue(target.TryAppend('X', 0));
            Assert.AreEqual("X", target.ToString());
            target.Clear();
            Assert.AreEqual(string.Empty, target.ToString());
        }
コード例 #13
0
        public void FixedStringBuilder_TryAppend_Rejects_Negative_Reserve()
        {
            FixedStringBuilder target = new FixedStringBuilder(2);

            try
            {
                target.TryAppend('X', -1);
                Assert.Fail();
            }
            catch (ArgumentOutOfRangeException ex)
            {
                Assert.AreEqual(typeof(ArgumentOutOfRangeException), ex.GetType());
            }

            try
            {
                target.TryAppend("XX", -1);
                Assert.Fail();
            }
            catch (ArgumentOutOfRangeException ex)
            {
                Assert.AreEqual(typeof(ArgumentOutOfRangeException), ex.GetType());
            }

            try
            {
                target.TryAppend('X', -1, 0);
                Assert.Fail();
            }
            catch (ArgumentOutOfRangeException ex)
            {
                Assert.AreEqual(typeof(ArgumentOutOfRangeException), ex.GetType());
            }

            try
            {
                target.TryAppend("XX", -1, 0);
                Assert.Fail();
            }
            catch (ArgumentOutOfRangeException ex)
            {
                Assert.AreEqual(typeof(ArgumentOutOfRangeException), ex.GetType());
            }
        }