Skip to content

Commit 2698208

Browse files
authored
feat: Migrate cat.ddk.xtext.ui.test to Junit5 (#42)
removed junit4 dependencies removed dependency to DiscerningSuite. Once we migrate the DiscerningSuite to Junit5 we can use it again here
1 parent 6c668a9 commit 2698208

8 files changed

Lines changed: 83 additions & 69 deletions

com.avaloq.tools.ddk.xtext.ui.test/META-INF/MANIFEST.MF

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Bundle-RequiredExecutionEnvironment: JavaSE-21
88
Require-Bundle: org.eclipse.xtext.ui,
99
org.eclipse.xtext.xbase.lib,
1010
org.eclipse.xtext.testing,
11+
org.mockito,
1112
org.junit,
1213
org.mockito.mockito-core,
1314
com.avaloq.tools.ddk.xtext.ui,
@@ -16,6 +17,9 @@ Require-Bundle: org.eclipse.xtext.ui,
1617
com.avaloq.tools.ddk.xtext.test.core,
1718
junit-jupiter-api,
1819
junit-jupiter-engine,
19-
junit-vintage-engine
20+
junit-vintage-engine,
21+
net.bytebuddy.byte-buddy,
22+
org.objenesis,
23+
junit-platform-suite-api
2024
Export-Package: com.avaloq.tools.ddk.xtext.ui.test
2125
Automatic-Module-Name: com.avaloq.tools.ddk.xtext.ui.test

com.avaloq.tools.ddk.xtext.ui.test/src/com/avaloq/tools/ddk/xtext/ui/quickfix/WorkbenchResolutionAdaptorRunTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@
4343
import org.eclipse.xtext.util.Pair;
4444
import org.eclipse.xtext.util.Tuples;
4545
import org.eclipse.xtext.validation.Issue;
46-
import org.junit.Before;
47-
import org.junit.Test;
46+
import org.junit.jupiter.api.BeforeEach;
47+
import org.junit.jupiter.api.Test;
4848
import org.mockito.ArgumentMatchers;
4949

5050
import com.avaloq.tools.ddk.check.runtime.ui.quickfix.IModificationContextRegistry;
@@ -95,7 +95,7 @@ protected void configure() {
9595

9696
private final WorkbenchMarkerResolutionGenerator wmrg = injector.getInstance(WorkbenchMarkerResolutionGenerator.class);
9797

98-
@Before
98+
@BeforeEach
9999
public void setUp() throws Exception {
100100
wmrg.setIssueUtil(new IssueUtil());
101101

com.avaloq.tools.ddk.xtext.ui.test/src/com/avaloq/tools/ddk/xtext/ui/quickfix/WorkbenchResolutionAdaptorTest.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
package com.avaloq.tools.ddk.xtext.ui.quickfix;
1313

14-
import static org.junit.Assert.assertArrayEquals;
15-
import static org.junit.Assert.assertEquals;
14+
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
15+
import static org.junit.jupiter.api.Assertions.assertEquals;
1616
import static org.mockito.Mockito.mock;
1717
import static org.mockito.Mockito.when;
1818

@@ -21,8 +21,8 @@
2121
import org.eclipse.xtext.ui.editor.quickfix.IssueResolution;
2222
import org.eclipse.xtext.ui.util.IssueUtil;
2323
import org.eclipse.xtext.validation.Issue;
24-
import org.junit.Before;
25-
import org.junit.Test;
24+
import org.junit.jupiter.api.BeforeEach;
25+
import org.junit.jupiter.api.Test;
2626

2727
import com.avaloq.tools.ddk.xtext.ui.quickfix.WorkbenchMarkerResolutionGenerator.WorkbenchResolutionAdapter;
2828

@@ -37,7 +37,7 @@ public class WorkbenchResolutionAdaptorTest {
3737

3838
private final WorkbenchMarkerResolutionGenerator mockWmrg = mock(WorkbenchMarkerResolutionGenerator.class);
3939

40-
@Before
40+
@BeforeEach
4141
public void setUp() throws Exception {
4242
when(mockWmrg.getIssueUtil()).thenReturn(new IssueUtil());
4343
}
@@ -51,7 +51,7 @@ public void testGetLabel() {
5151

5252
WorkbenchResolutionAdapter adapter = mockWmrg.new WorkbenchResolutionAdapter(mockIssueResolution, mockMarker);
5353

54-
assertEquals("Adapter delegates get label to resolution.", TEST_LABEL, adapter.getLabel()); //$NON-NLS-1$
54+
assertEquals(TEST_LABEL, adapter.getLabel(), "Adapter delegates get label to resolution."); //$NON-NLS-1$
5555
}
5656

5757
@Test
@@ -63,7 +63,7 @@ public void testGetDescription() {
6363

6464
WorkbenchResolutionAdapter adapter = mockWmrg.new WorkbenchResolutionAdapter(mockIssueResolution, mockMarker);
6565

66-
assertEquals("Adapter delegates get description to resolution.", TEST_DESCRIPTION, adapter.getDescription()); //$NON-NLS-1$
66+
assertEquals(TEST_DESCRIPTION, adapter.getDescription(), "Adapter delegates get description to resolution."); //$NON-NLS-1$
6767
}
6868

6969
@Test
@@ -75,7 +75,7 @@ public void testGetImage() {
7575

7676
WorkbenchResolutionAdapter adapter = mockWmrg.new WorkbenchResolutionAdapter(mockIssueResolution, mockMarker);
7777

78-
assertEquals("Adapter delegates get Image to resolution.", TEST_IMAGE, adapter.getImage()); //$NON-NLS-1$
78+
assertEquals(TEST_IMAGE, adapter.getImage(), "Adapter delegates get Image to resolution."); //$NON-NLS-1$
7979
}
8080

8181
@Test
@@ -95,14 +95,14 @@ public void findOtherMarkers() {
9595

9696
WorkbenchResolutionAdapter adapter = mockWmrg.new WorkbenchResolutionAdapter(mockIssueResolution, mockResolutionMarker);
9797

98-
assertArrayEquals("Adapter findOtherMarkers matching on CODE1.", matchingMarkers, adapter.findOtherMarkers(allMarkers)); //$NON-NLS-1$
98+
assertArrayEquals(matchingMarkers, adapter.findOtherMarkers(allMarkers), "Adapter findOtherMarkers matching on CODE1."); //$NON-NLS-1$
9999

100100
when(mockResolutionMarker.getAttribute(Issue.CODE_KEY, null)).thenReturn(CODE2);
101101
matchingMarkers = new IMarker[] {mockMarker2};
102102

103103
adapter = mockWmrg.new WorkbenchResolutionAdapter(mockIssueResolution, mockResolutionMarker);
104104

105-
assertArrayEquals("Adapter findOtherMarkers matching on CODE2.", matchingMarkers, adapter.findOtherMarkers(allMarkers)); //$NON-NLS-1$
105+
assertArrayEquals(matchingMarkers, adapter.findOtherMarkers(allMarkers), "Adapter findOtherMarkers matching on CODE2."); //$NON-NLS-1$
106106

107107
}
108108

com.avaloq.tools.ddk.xtext.ui.test/src/com/avaloq/tools/ddk/xtext/ui/templates/ResourceNameTemplateVariableResolverTest.java

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,29 @@
1111

1212
package com.avaloq.tools.ddk.xtext.ui.templates;
1313

14+
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
15+
import static org.junit.jupiter.api.Assertions.assertThrows;
16+
1417
import org.eclipse.core.resources.IFile;
1518
import org.eclipse.jface.text.templates.TemplateException;
1619
import org.eclipse.jface.text.templates.TemplateVariable;
1720
import org.eclipse.xtext.XtextRuntimeModule;
21+
import org.eclipse.xtext.testing.extensions.InjectionExtension;
1822
import org.eclipse.xtext.ui.editor.model.IXtextDocument;
1923
import org.eclipse.xtext.ui.editor.templates.XtextTemplateContext;
20-
import org.junit.Assert;
21-
import org.junit.Test;
22-
import org.junit.runner.RunWith;
24+
import org.junit.jupiter.api.AfterAll;
25+
import org.junit.jupiter.api.BeforeAll;
26+
import org.junit.jupiter.api.Test;
27+
import org.junit.jupiter.api.TestInstance;
28+
import org.junit.jupiter.api.extension.ExtendWith;
2329
import org.mockito.Mockito;
2430

25-
import com.avaloq.tools.ddk.test.core.AfterAll;
26-
import com.avaloq.tools.ddk.test.core.BeforeAll;
27-
import com.avaloq.tools.ddk.xtext.test.junit.runners.XtextClassRunner;
2831
import com.google.common.collect.Iterables;
2932
import com.google.inject.Guice;
3033

3134

32-
@RunWith(XtextClassRunner.class)
35+
@ExtendWith(InjectionExtension.class)
36+
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
3337
public class ResourceNameTemplateVariableResolverTest {
3438

3539
private static final Object[] FILE = new Object[] {"file"}; //$NON-NLS-1$
@@ -66,14 +70,14 @@ public void afterAll() {
6670
resolver = null;
6771
}
6872

69-
@Test(expected = NullPointerException.class)
73+
@Test
7074
public void testResolveValuesWithNullVariable() {
71-
resolver.resolveValues(null, mockContext);
75+
assertThrows(NullPointerException.class, () -> resolver.resolveValues(null, mockContext));
7276
}
7377

74-
@Test(expected = NullPointerException.class)
78+
@Test
7579
public void testResolveValuesWithNullContext() {
76-
resolver.resolveValues(Mockito.mock(TemplateVariable.class), null);
80+
assertThrows(NullPointerException.class, () -> resolver.resolveValues(Mockito.mock(TemplateVariable.class), null));
7781
}
7882

7983
@Test
@@ -121,7 +125,7 @@ public void testResolveValues(final Object[] values, final String filename, fina
121125
final String[] actualResolvedValues = Iterables.toArray(resolver.resolveValues(variable, mockContext), String.class);
122126

123127
// ASSERT
124-
Assert.assertArrayEquals("Resolved values", expectedResolvedValues, actualResolvedValues); //$NON-NLS-1$
128+
assertArrayEquals(expectedResolvedValues, actualResolvedValues, "Resolved values"); //$NON-NLS-1$
125129
}
126130

127131
}

com.avaloq.tools.ddk.xtext.ui.test/src/com/avaloq/tools/ddk/xtext/ui/templates/SimpleEnumTemplateVariableResolverTest.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,28 @@
1111

1212
package com.avaloq.tools.ddk.xtext.ui.templates;
1313

14-
import static org.junit.Assert.assertArrayEquals;
14+
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
15+
import static org.junit.jupiter.api.Assertions.assertThrows;
1516
import static org.mockito.Mockito.mock;
1617

1718
import java.util.List;
1819

1920
import org.eclipse.jface.text.templates.TemplateException;
2021
import org.eclipse.jface.text.templates.TemplateVariable;
2122
import org.eclipse.xtext.XtextRuntimeModule;
23+
import org.eclipse.xtext.testing.extensions.InjectionExtension;
2224
import org.eclipse.xtext.ui.editor.templates.XtextTemplateContext;
23-
import org.junit.Test;
24-
import org.junit.runner.RunWith;
25+
import org.junit.jupiter.api.AfterAll;
26+
import org.junit.jupiter.api.BeforeAll;
27+
import org.junit.jupiter.api.Test;
28+
import org.junit.jupiter.api.TestInstance;
29+
import org.junit.jupiter.api.extension.ExtendWith;
2530

26-
import com.avaloq.tools.ddk.test.core.AfterAll;
27-
import com.avaloq.tools.ddk.test.core.BeforeAll;
28-
import com.avaloq.tools.ddk.xtext.test.junit.runners.XtextClassRunner;
2931
import com.google.inject.Guice;
3032

3133

32-
@RunWith(XtextClassRunner.class)
34+
@ExtendWith(InjectionExtension.class)
35+
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
3336
public class SimpleEnumTemplateVariableResolverTest {
3437

3538
private static XtextTemplateContext mockContext;
@@ -50,9 +53,9 @@ public void afterAll() {
5053
resolver = null;
5154
}
5255

53-
@Test(expected = NullPointerException.class)
56+
@Test
5457
public void testResolveValuesWithNullVariable() {
55-
resolver.resolveValues(null, mockContext);
58+
assertThrows(NullPointerException.class, () -> resolver.resolveValues(null, mockContext));
5659
}
5760

5861
@Test
@@ -73,7 +76,7 @@ private void testResolveValues(final Object... values) throws TemplateException
7376
final List<String> resolvedValues = resolver.resolveValues(variable, mockContext);
7477

7578
// ASSERT
76-
assertArrayEquals("Resolved values", values, resolvedValues.toArray(new String[resolvedValues.size()])); //$NON-NLS-1$
79+
assertArrayEquals(values, resolvedValues.toArray(new String[resolvedValues.size()]), "Resolved values"); //$NON-NLS-1$
7780
}
7881

7982
}

com.avaloq.tools.ddk.xtext.ui.test/src/com/avaloq/tools/ddk/xtext/ui/templates/TemplateProposalProviderHelperTest.xtend

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,29 +11,32 @@
1111

1212
package com.avaloq.tools.ddk.xtext.ui.templates
1313

14-
import com.avaloq.tools.ddk.test.core.AfterAll
15-
import com.avaloq.tools.ddk.test.core.BeforeAll
16-
import com.avaloq.tools.ddk.xtext.test.junit.runners.XtextClassRunner
1714
import com.google.inject.Guice
1815
import org.eclipse.jface.text.IDocument
1916
import org.eclipse.jface.text.IRegion
2017
import org.eclipse.jface.text.Position
2118
import org.eclipse.jface.text.templates.Template
2219
import org.eclipse.xtext.XtextRuntimeModule
20+
import org.eclipse.xtext.testing.extensions.InjectionExtension
2321
import org.eclipse.xtext.ui.editor.templates.XtextTemplateContext
2422
import org.eclipse.xtext.ui.editor.templates.XtextTemplateContextType
25-
import org.junit.Test
26-
import org.junit.runner.RunWith
23+
import org.junit.jupiter.api.Test
24+
import org.junit.jupiter.api.^extension.ExtendWith
2725

28-
import static org.junit.Assert.assertArrayEquals
29-
import static org.junit.Assert.assertEquals
26+
import static org.junit.jupiter.api.Assertions.assertThrows
27+
import static org.junit.jupiter.api.Assertions.assertEquals
28+
import static org.junit.jupiter.api.Assertions.assertArrayEquals
3029
import static org.mockito.ArgumentMatchers.anyInt
3130
import static org.mockito.Mockito.mock
3231
import static org.mockito.Mockito.spy
3332
import static org.mockito.Mockito.verify
3433
import static org.mockito.Mockito.when
34+
import org.junit.jupiter.api.TestInstance
35+
import org.junit.jupiter.api.BeforeAll
36+
import org.junit.jupiter.api.AfterAll
3537

36-
@RunWith(XtextClassRunner)
38+
@ExtendWith(InjectionExtension)
39+
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
3740
class TemplateProposalProviderHelperTest {
3841

3942
static val SIMPLE_ENUM_VARIABLE_TYPE = new SimpleEnumTemplateVariableResolver().type
@@ -80,14 +83,14 @@ class TemplateProposalProviderHelperTest {
8083
helper = null
8184
}
8285

83-
@Test(expected=NullPointerException)
86+
@Test
8487
def void testCreateLiteralValuePatternWithNullName() {
85-
helper.createLiteralValuePattern(null, 42)
88+
assertThrows(NullPointerException, [| helper.createLiteralValuePattern(null, 42)])
8689
}
8790

88-
@Test(expected=IllegalArgumentException)
91+
@Test
8992
def void testCreateLiteralValuePatternWithNameContainingWhitespace() {
90-
helper.createLiteralValuePattern("Contains whitespace", 42)
93+
assertThrows(IllegalArgumentException, [| helper.createLiteralValuePattern("Contains whitespace", 42)])
9194
}
9295

9396
@Test
@@ -134,37 +137,36 @@ class TemplateProposalProviderHelperTest {
134137

135138
// ASSERT
136139
verify(helperSpy).createTemplateVariablePattern(SIMPLE_ENUM_VARIABLE_TYPE, VARIABLE_NAME, defaultValue)
137-
assertEquals("Expected result", expectedResult, actualResult)
140+
assertEquals(expectedResult, actualResult, "Expected result")
138141
}
139142

140-
@Test(expected=NullPointerException)
143+
@Test
141144
def void testCreateTemplateVariablePatternWithNullType() {
142-
helper.createTemplateVariablePattern(null, VARIABLE_NAME)
145+
assertThrows(NullPointerException, [| helper.createTemplateVariablePattern(null, VARIABLE_NAME)])
143146
}
144147

145-
@Test(expected=IllegalArgumentException)
148+
@Test
146149
def void testCreateTemplateVariablePatternWithTypeContainingWhitespace() {
147-
helper.createTemplateVariablePattern("Contains whitespace", VARIABLE_NAME)
150+
assertThrows(IllegalArgumentException, [|helper.createTemplateVariablePattern("Contains whitespace", VARIABLE_NAME)])
148151
}
149152

150-
@Test(expected=NullPointerException)
153+
@Test
151154
def void testCreateTemplateVariablePatternWithNullName() {
152-
helper.createTemplateVariablePattern(SIMPLE_ENUM_VARIABLE_TYPE, null)
155+
assertThrows(NullPointerException, [| helper.createTemplateVariablePattern(SIMPLE_ENUM_VARIABLE_TYPE, null)])
153156
}
154157

155-
@Test(expected=IllegalArgumentException)
156158
def void testCreateTemplateVariablePatternWithNameContainingWhitespace() {
157-
helper.createTemplateVariablePattern(SIMPLE_ENUM_VARIABLE_TYPE, "Contains whitespace")
159+
assertThrows(IllegalArgumentException, [| helper.createTemplateVariablePattern(SIMPLE_ENUM_VARIABLE_TYPE, "Contains whitespace")])
158160
}
159161

160-
@Test(expected=NullPointerException)
162+
@Test
161163
def void testCreateTemplateVariablePatternWithNull() {
162-
helper.createTemplateVariablePattern(SIMPLE_ENUM_VARIABLE_TYPE, VARIABLE_NAME, null)
164+
assertThrows(NullPointerException, [| helper.createTemplateVariablePattern(SIMPLE_ENUM_VARIABLE_TYPE, VARIABLE_NAME, null)])
163165
}
164166

165-
@Test(expected=IllegalArgumentException)
167+
@Test
166168
def void testCreateTemplateVariablePatternWithNoValues() {
167-
helper.createTemplateVariablePattern(SIMPLE_ENUM_VARIABLE_TYPE, VARIABLE_NAME)
169+
assertThrows(IllegalArgumentException, [| helper.createTemplateVariablePattern(SIMPLE_ENUM_VARIABLE_TYPE, VARIABLE_NAME)])
168170
}
169171

170172
@Test
@@ -256,8 +258,8 @@ class TemplateProposalProviderHelperTest {
256258
val actualValues = templateBuffer.variables.get(0).values
257259
258260
// ASSERT
259-
assertEquals("Expected result", expectedResult, actualResult)
260-
assertArrayEquals("Expected values", expectedValues, actualValues)
261+
assertEquals(expectedResult, actualResult, "Expected result")
262+
assertArrayEquals(expectedValues, actualValues, "Expected values")
261263
}
262264
263265
}

com.avaloq.tools.ddk.xtext.ui.test/src/com/avaloq/tools/ddk/xtext/ui/templates/TemplateVariableResolverTestHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
package com.avaloq.tools.ddk.xtext.ui.templates;
1313

14-
import static org.junit.Assert.assertEquals;
14+
import static org.junit.jupiter.api.Assertions.assertEquals;
1515

1616
import org.eclipse.jface.text.templates.TemplateException;
1717
import org.eclipse.jface.text.templates.TemplateTranslator;
@@ -55,7 +55,7 @@ public TemplateVariable createTemplateVariable(final TemplateVariableResolver re
5555
// and has protected constructors thus cannot be directly instantiated
5656
final String pattern = helper.createTemplateVariablePattern(resolver.getType(), name, values);
5757
final TemplateVariable[] variables = translator.translate(pattern).getVariables();
58-
assertEquals("Exactly one variable should be returned", 1, variables.length); //$NON-NLS-1$
58+
assertEquals(1, variables.length, "Exactly one variable should be returned"); //$NON-NLS-1$
5959
return variables[0];
6060
}
6161

com.avaloq.tools.ddk.xtext.ui.test/src/com/avaloq/tools/ddk/xtext/ui/test/XtextUiTestSuite.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111

1212
package com.avaloq.tools.ddk.xtext.ui.test;
1313

14-
import org.junit.runner.RunWith;
14+
import org.junit.platform.suite.api.SelectClasses;
15+
import org.junit.platform.suite.api.Suite;
1516

1617
import com.avaloq.tools.ddk.test.core.junit.runners.DiscerningSuite;
1718
import com.avaloq.tools.ddk.xtext.ui.quickfix.WorkbenchResolutionAdaptorRunTest;
@@ -22,10 +23,10 @@
2223

2324

2425
/**
25-
* Empty class serving only as holder for JUnit4 annotations.
26+
* Junit5 version of test suites. does not implement the logic in our {@link DiscerningSuite}.
2627
*/
27-
@RunWith(DiscerningSuite.class)
28-
@DiscerningSuite.SuiteClasses({
28+
@Suite
29+
@SelectClasses({
2930
// @Format-Off
3031
WorkbenchResolutionAdaptorTest.class,
3132
WorkbenchResolutionAdaptorRunTest.class,

0 commit comments

Comments
 (0)