/// <summary> /// Checks if the rule is valid for the statement /// </summary> /// <param name="statement">The statement</param> /// <returns>True if valid, otherwise false</returns> public override bool IsValidFor(StatementBase statement) { MemberStatement memberStatement = (MemberStatement)statement; bool matchesExpression = _expression.IsMatch(memberStatement.MemberNameToken.Content); //either true or must be public static to be true return(matchesExpression || (memberStatement.AccessModifierToken is PublicModifierToken && memberStatement.StaticToken != null)); }
public void AccessModifierTokenPropertyShouldReturnNullIfNoAccessModifier() { IList <TokenBase> input = new List <TokenBase>(); input.Add(TokenCreator.Create <SpaceToken>()); input.Add(TokenCreator.Create <IdentifierToken>("String")); input.Add(TokenCreator.Create <SpaceToken>()); input.Add(TokenCreator.Create <IdentifierToken>("memberName")); input.Add(TokenCreator.Create <SemiColonToken>()); MemberStatement statement = new MemberStatement(input, null); Assert.IsNull(statement.AccessModifierToken); }
public void StaticTokenPropertyShouldReturnNullIfNoStaticToken() { TokenBase expected = TokenCreator.Create <IdentifierToken>("memberName"); IList <TokenBase> input = new List <TokenBase>(); input.Add(TokenCreator.Create <PrivateModifierToken>()); input.Add(TokenCreator.Create <SpaceToken>()); input.Add(TokenCreator.Create <IdentifierToken>("String")); input.Add(TokenCreator.Create <SpaceToken>()); input.Add(expected); input.Add(TokenCreator.Create <SemiColonToken>()); MemberStatement statement = new MemberStatement(input, null); Assert.IsNull(statement.StaticToken); }
public void AccessModifierTokenPropertyShouldReturnAccessModifier() { TokenBase expected = TokenCreator.Create <PrivateModifierToken>(); IList <TokenBase> input = new List <TokenBase>(); input.Add(expected); input.Add(TokenCreator.Create <SpaceToken>()); input.Add(TokenCreator.Create <IdentifierToken>("String")); input.Add(TokenCreator.Create <SpaceToken>()); input.Add(TokenCreator.Create <IdentifierToken>("test")); input.Add(TokenCreator.Create <SemiColonToken>()); MemberStatement statement = new MemberStatement(input, null); Assert.AreEqual(expected, statement.AccessModifierToken); }
public void RuleShouldReturnValidForStatementsThatDoNotMatchThePatternButArePublicStatic() { MemberNameMatchesPatternRule rule = new MemberNameMatchesPatternRule(new Regex("^_[a-z]+"), true); IList <TokenBase> input = new List <TokenBase>(); input.Add(TokenCreator.Create <PublicModifierToken>()); input.Add(TokenCreator.Create <SpaceToken>()); input.Add(TokenCreator.Create <StaticToken>()); input.Add(TokenCreator.Create <SpaceToken>()); input.Add(TokenCreator.Create <IdentifierToken>("String")); input.Add(TokenCreator.Create <SpaceToken>()); input.Add(TokenCreator.Create <IdentifierToken>("Test")); input.Add(TokenCreator.Create <SemiColonToken>()); MemberStatement member = new MemberStatement(input, null); Assert.IsTrue(rule.IsValidFor(member)); }
public override void SetUp() { base.SetUp(); _statement = StatementCreator.CreateMemberStatement("member"); }