Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

test: migrate VariableReferencesTest to JUnit 5 #4497

Merged

Conversation

MartinWitt
Copy link
Collaborator

#3919

Change Log

The following bad smells are refactored:

Junit4-@before

The JUnit 4 @Before annotation should be replaced with JUnit 5 @BeforeEach annotation.

JUnit4-@test

The JUnit 4 @Test annotation should be replaced with JUnit 5 @Test annotation.

JUnit4Assertion

The JUnit4 assertion should be replaced with JUnit5 Assertions.

The following has changed in the code:

JUnit4-@test

  • Replaced junit 4 test annotation with junit 5 test annotation in testCheckModelConsistency
  • Replaced junit 4 test annotation with junit 5 test annotation in testCatchVariableReferenceFunction
  • Replaced junit 4 test annotation with junit 5 test annotation in testLocalVariableReferenceFunction
  • Replaced junit 4 test annotation with junit 5 test annotation in testParameterReferenceFunction
  • Replaced junit 4 test annotation with junit 5 test annotation in testVariableReferenceFunction
  • Replaced junit 4 test annotation with junit 5 test annotation in testVariableScopeFunction
  • Replaced junit 4 test annotation with junit 5 test annotation in testFieldScopeFunction
  • Replaced junit 4 test annotation with junit 5 test annotation in testLocalVariableReferenceDeclarationFunction
  • Replaced junit 4 test annotation with junit 5 test annotation in testPotentialVariableAccessFromStaticMethod

Junit4-@before

  • Replaced @Before annotation with @BeforeEach at method setup

JUnit4Assertion

  • Transformed junit4 assert to junit 5 assertion in checkKey
  • Transformed junit4 assert to junit 5 assertion in testCheckModelConsistency
  • Transformed junit4 assert to junit 5 assertion in testVariableScopeFunction
  • Transformed junit4 assert to junit 5 assertion in testFieldScopeFunction
  • Transformed junit4 assert to junit 5 assertion in testLocalVariableReferenceDeclarationFunction
  • Transformed junit4 assert to junit 5 assertion in checkVariableAccess
  • Transformed junit4 assert to junit 5 assertion in getLiteralValue
  • Transformed junit4 assert to junit 5 assertion in testPotentialVariableAccessFromStaticMethod

 The following has changed in the code:
Replaced @before annotation with @beforeeach at method setup
Replaced junit 4 test annotation with junit 5 test annotation in testCheckModelConsistency
Replaced junit 4 test annotation with junit 5 test annotation in testCatchVariableReferenceFunction
Replaced junit 4 test annotation with junit 5 test annotation in testLocalVariableReferenceFunction
Replaced junit 4 test annotation with junit 5 test annotation in testParameterReferenceFunction
Replaced junit 4 test annotation with junit 5 test annotation in testVariableReferenceFunction
Replaced junit 4 test annotation with junit 5 test annotation in testVariableScopeFunction
Replaced junit 4 test annotation with junit 5 test annotation in testFieldScopeFunction
Replaced junit 4 test annotation with junit 5 test annotation in testLocalVariableReferenceDeclarationFunction
Replaced junit 4 test annotation with junit 5 test annotation in testPotentialVariableAccessFromStaticMethod
Transformed junit4 assert to junit 5 assertion in testCheckModelConsistency
Transformed junit4 assert to junit 5 assertion in testVariableScopeFunction
Transformed junit4 assert to junit 5 assertion in testFieldScopeFunction
Transformed junit4 assert to junit 5 assertion in testLocalVariableReferenceDeclarationFunction
Transformed junit4 assert to junit 5 assertion in checkVariableAccess
Transformed junit4 assert to junit 5 assertion in getLiteralValue
Transformed junit4 assert to junit 5 assertion in testPotentialVariableAccessFromStaticMethod
Copy link
Collaborator

@slarse slarse left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suboptimal sniper printing in a couple of places.

assertEquals("Only these keys were found: "+context.unique.keySet(), context.maxKey, context.unique.size());
assertEquals("AllLocalVars#maxValue must be equal to maximum value number ", (int)getLiteralValue((CtVariable)modelClass.filterChildren(new NamedElementFilter<>(CtVariable.class,"maxValue")).first()), context.maxKey);
assertEquals(context.maxKey, context.unique.size(), "Only these keys were found: " + context.unique.keySet());
assertEquals(((int) (getLiteralValue(((CtVariable) (modelClass.filterChildren(new NamedElementFilter<>(CtVariable.class, "maxValue")).first()))))), context.maxKey, "AllLocalVars#maxValue must be equal to maximum value number ");
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ugh, sniper printing of casts at work here (see #3809 (comment)). Could you manually remove the redundant parentheses?

assertNotNull("The declaration of variable "+varRef.getSimpleName()+" in "+getParentMethodName(varRef)+" on line "+var.getPosition().getLine()+" with value "+getVariableReferenceValue(varRef)+" was not found", var);
assertEquals("CtLocalVariableReference#getDeclaration returned wrong declaration in "+getParentMethodName(varRef), getVariableReferenceValue(varRef), (int)getLiteralValue(var));
assertNotNull(var, "The declaration of variable " + varRef.getSimpleName() + " in " + getParentMethodName(varRef) + " on line " + var.getPosition().getLine() + " with value " + getVariableReferenceValue(varRef) + " was not found");
assertEquals(getVariableReferenceValue(varRef), ((int) (getLiteralValue(var))), "CtLocalVariableReference#getDeclaration returned wrong declaration in " + getParentMethodName(varRef));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above.

Copy link
Collaborator

@slarse slarse left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@slarse slarse merged commit 573b299 into INRIA:master Jan 16, 2022
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants