Skip to content
New issue

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

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

Already on GitHub? Sign in 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants