public static void ConstructorAndFieldTest()
        {
            Assert.Null(Substring.Null.Origin);
            Assert.AreEqual(0, Substring.Null.StartIndex);
            Assert.AreEqual(0, Substring.Null.Length);
            Assert.Null(Substring.Null.ToString());

            Assert.True(object.ReferenceEquals(string.Empty, Substring.Empty.Origin));
            Assert.AreEqual(0, Substring.Empty.StartIndex);
            Assert.AreEqual(0, Substring.Empty.Length);
            Test.OrdinalEquals(string.Empty, Substring.Empty.ToString());

            var substr = new Substring("asd");
            Test.OrdinalEquals("asd", substr.Origin);
            Assert.AreEqual(0, substr.StartIndex);
            Assert.AreEqual(3, substr.Length);
            Test.OrdinalEquals("asd", substr.ToString());

            substr = new Substring("asd", 1);
            Test.OrdinalEquals("asd", substr.Origin);
            Assert.AreEqual(1, substr.StartIndex);
            Assert.AreEqual(2, substr.Length);
            Test.OrdinalEquals("sd", substr.ToString());

            substr = new Substring("asd", 3);
            Test.OrdinalEquals("asd", substr.Origin);
            Assert.AreEqual(3, substr.StartIndex);
            Assert.AreEqual(0, substr.Length);
            Test.OrdinalEquals(string.Empty, substr.ToString());

            substr = new Substring("asd", 1, 1);
            Test.OrdinalEquals("asd", substr.Origin);
            Assert.AreEqual(1, substr.StartIndex);
            Assert.AreEqual(1, substr.Length);
            Test.OrdinalEquals("s", substr.ToString());

            substr = new Substring("asd", 1, 0);
            Test.OrdinalEquals("asd", substr.Origin);
            Assert.AreEqual(1, substr.StartIndex);
            Assert.AreEqual(0, substr.Length);
            Test.OrdinalEquals(string.Empty, substr.ToString());

            Assert.Throws<ArgumentOutOfRangeException>(() => new Substring("asd", -1));
            Assert.Throws<ArgumentOutOfRangeException>(() => new Substring("asd", 4));

            Assert.Throws<ArgumentException>(() => new Substring("asd", -1, 0));
            Assert.Throws<ArgumentException>(() => new Substring("asd", 4, 0));
            Assert.Throws<ArgumentException>(() => new Substring("asd", 0, -1));
            Assert.Throws<ArgumentException>(() => new Substring("asd", 0, 4));
            Assert.Throws<ArgumentException>(() => new Substring("asd", 3, 1));
        }
示例#2
0
 public void Write( Substring substr )
 {
     this.Write(substr.ToString());
 }
示例#3
0
 internal static void OrdinalEquals( Substring expected, Substring actual )
 {
     OrdinalEquals(expected.ToString(), actual.ToString());
 }