TEST(ObjCNSNumberLiteralsRuleTest, NumberWithBoxedUnsignedLongLong) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *fortyTwoUnsignedLongLong = [NSNumber numberWithUnsignedLongLong:(43ULL - 1ULL)]; }"); }
TEST(ObjcVerifySubclassMustImplementRuleTest, SubChildUnaffected) { testRuleOnObjCCode(new ObjCVerifySubclassMustImplementRule(), testSubChildUnaffected); }
TEST(EmptyTryStatementRuleTest, NonEmptyObjCTryStmt) { testRuleOnObjCCode(new EmptyTryStatementRule(), "void m() { @try { ; } @catch(id ex) { ; } }"); }
TEST(ReturnFromFinallyBlockRuleTest, ReturnFromNestedBlockInsideFinallyBlock) { testRuleOnObjCCode(new ReturnFromFinallyBlockRule(), "void m() { @try {;} @catch(id ex) {;} @finally { int i; if(1) {return;} int j; } }", 0, 1, 64, 1, 64); }
TEST(ObjcVerifySubclassMustImplementRuleTest, AnnotationDoesImplement) { testRuleOnObjCCode(new ObjCVerifySubclassMustImplementRule(), testAnnotationDoesImplement); }
TEST(ObjCNSNumberLiteralsRuleTest, UnsignedIntLiteral) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *fortyTwoUnsigned = @42U; }"); }
TEST(ReturnFromFinallyBlockRuleTest, NoReturnFromFinallyBlock) { testRuleOnObjCCode(new ReturnFromFinallyBlockRule(), "void m() { @try {;} @catch(id ex) {;} @finally {;} }"); }
TEST(ObjCNSNumberLiteralsRuleTest, BOOLYesLiteral_newBOOLDef) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + newBOOLDef + "void m() { NSNumber *fortyTwoBOOL = @YES; }"); }
TEST(ObjCNSNumberLiteralsRuleTest, NumberWithBoolYes_newBOOLDef) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + newBOOLDef + "void m() { NSNumber *fortyTwoBOOL = [NSNumber numberWithBool:YES]; }", 0, 20, 37, 20, 65); }
TEST(ObjCNSNumberLiteralsRuleTest, NumberWithDouble) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *fortyTwoDouble = [NSNumber numberWithDouble:3.1415926535]; }", 0, 17, 39, 17, 78); }
TEST(ObjCNSNumberLiteralsRuleTest, NumberWithBoxedDouble) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *fortyTwoDouble = [NSNumber numberWithDouble:(4.1415926535 - 1.0)]; }"); }
TEST(ObjCNSNumberLiteralsRuleTest, DoubleLiteral) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *fortyTwoDouble = @3.1415926535; }"); }
TEST(ObjCNSNumberLiteralsRuleTest, NumberWithBoxedFloat) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *fortyTwoFloat = [NSNumber numberWithFloat:(4.1415926535F - 1.0F)]; }"); }
TEST(ObjCNSNumberLiteralsRuleTest, FloatLiteral) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *fortyTwoFloat = @3.1415926535F; }"); }
TEST(ObjCNSNumberLiteralsRuleTest, NumberWithInt) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *fortyTwo = [NSNumber numberWithInt:42]; }", 0, 17, 33, 17, 59); }
TEST(ObjCNSNumberLiteralsRuleTest, BOOLNoLiteral_oldBOOLDef) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + oldBOOLDef + "void m() { NSNumber *fortyTwoBOOL = @NO; }"); }
TEST(ObjCNSNumberLiteralsRuleTest, NumberWithBoxedInt) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *fortyTwo = [NSNumber numberWithInt:(43 - 1)]; }"); }
TEST(ObjCNSNumberLiteralsRuleTest, NumberWithBoolNo_oldBOOLDef) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + oldBOOLDef + "void m() { NSNumber *fortyTwoBOOL = [NSNumber numberWithBool:NO]; }", 0, 20, 37, 20, 64); }
TEST(ObjCNSNumberLiteralsRuleTest, NumberWithBoxedUnsignedIntButInterger) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *fortyTwoUnsigned = [NSNumber numberWithUnsignedInt:42]; }"); }
TEST(ObjCNSNumberLiteralsRuleTest, NumberWithBoxedBOOLNo_oldBOOLDef) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + oldBOOLDef + "void m() { NSNumber *fortyTwoBOOL = [NSNumber numberWithBool:(!NO)]; }"); }
TEST(ReturnFromFinallyBlockRuleTest, ReturnFromFinallyBlock) { testRuleOnObjCCode(new ReturnFromFinallyBlockRule(), "void m() { @try {;} @catch(id ex) {;} @finally { int i; return; int j; } }", 0, 1, 57, 1, 57); }
TEST(ObjCNSNumberLiteralsRuleTest, CharacterLiteral) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *theLetterZ = @'Z'; }"); }
TEST(ObjcVerifySubclassMustImplementRuleTest, AnnotationDoesNotImplementation) { testRuleOnObjCCode(new ObjCVerifySubclassMustImplementRule(), testAnnotationDoesNotImplement, 0, 12, 1, 14, 1, "subclasses of Parent must implement someAbstractMethod"); }
TEST(ObjCNSNumberLiteralsRuleTest, NumberWithChar) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *theLetterZ = [NSNumber numberWithChar:'Z']; }", 0, 17, 35, 17, 63); }
TEST(ObjcVerifySubclassMustImplementRuleTest, NormalDoesImplement) { testRuleOnObjCCode(new ObjCVerifySubclassMustImplementRule(), testNormalDoesImplement); }
TEST(ObjCNSNumberLiteralsRuleTest, NumberWithCharButInteger) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *theLetterZ = [NSNumber numberWithChar:15]; }"); }
TEST_F(NPathComplexityRuleTest, ObjCForeachStmtWithCompoundStmtWithIfStmt) { testRuleOnObjCCode(new NPathComplexityRule(), "void mthd() { id anArray; for (id it in anArray) { if (1) {} } }", 0, 1, 1, 1, 64, "NPath Complexity Number 4 exceeds limit of 1"); }
TEST(ObjCNSNumberLiteralsRuleTest, NumberWithBoxedChar) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "char getZ() { return 'Z'; } void m() { NSNumber *theLetterZ = [NSNumber numberWithChar:(getZ())]; }"); }
TEST(EmptyTryStatementRuleTest, EmptyObjCTryWithEmptyCompoundStmt) { testRuleOnObjCCode(new EmptyTryStatementRule(), "void m() { @try {} @catch(id ex) { ; } }", 0, 1, 17, 1, 18); }
TEST(ObjCNSNumberLiteralsRuleTest, LongLongLiteral) { testRuleOnObjCCode(new ObjCNSNumberLiteralsRule(), objcNSNumberPrefix + "void m() { NSNumber *fortyTwoLongLong = @42LL; }"); }