public void Constructor() { void ConstructorTest(int startIndex, string text, PkgdefTokenType tokenType, Exception expectedException = null) { if (expectedException != null) { AssertEx.Throws(() => new PkgdefToken(startIndex, text, tokenType), expectedException); } else { PkgdefToken token = new PkgdefToken(startIndex, text, tokenType); Assert.AreEqual(startIndex, token.GetStartIndex()); Assert.AreEqual(text, token.GetText()); Assert.AreEqual(tokenType, token.GetTokenType()); Assert.AreEqual(text.Length, token.GetLength()); Assert.AreEqual(startIndex + text.Length, token.GetAfterEndIndex()); Assert.AreEqual(startIndex + text.Length - 1, token.GetEndIndex()); } } ConstructorTest(-1, "hello", PkgdefTokenType.Unrecognized, expectedException: new PreConditionException("startIndex (-1) must be greater than or equal to 0.")); ConstructorTest(0, null, PkgdefTokenType.Unrecognized, expectedException: new PreConditionException("text cannot be null.")); ConstructorTest(0, "", PkgdefTokenType.Unrecognized, expectedException: new PreConditionException("text cannot be empty.")); ConstructorTest(0, "abc", PkgdefTokenType.Unrecognized); }