Skip to content

Commit d1e2cf8

Browse files
authored
Merge pull request #62 from picimako/100
v1.0.0
2 parents 3fbee49 + 74d7742 commit d1e2cf8

File tree

89 files changed

+301
-268
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+301
-268
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44

55
## [Unreleased]
66

7+
## [1.0.0]
8+
### Changed
9+
- New support range of IDEs: 2022.3-2023.3
10+
- Various code optimizations based on new IntelliJ Platform inspections.
11+
712
## [0.12.0]
813
### Added
914
- [#52](https://github.com/picimako/mockitools/issues/52): Added code completion for parameters of methods in the `Mockito` class that need mock objects to be passed in (e.g. `reset()` or `verifyNoMoreInteractions()`).

gradle.properties

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
pluginGroup = com.picimako.mockitools
44
pluginName = Mockitools
5-
pluginVersion = 0.12.0
5+
pluginVersion = 1.0.0
66

77
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
8-
pluginSinceBuild = 222
9-
pluginUntilBuild = 232.*
8+
pluginSinceBuild = 223
9+
pluginUntilBuild = 233.*
1010

1111
# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension
1212
platformType = IC
13-
platformVersion = 2022.2
13+
platformVersion = 2022.3
1414

1515
# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html
1616
# Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ annotations = "24.0.1"
55
# plugins
66
kotlin = "1.8.22"
77
changelog = "2.1.0"
8-
gradleIntelliJPlugin = "1.14.2"
8+
gradleIntelliJPlugin = "1.15.0"
99
lombok = "8.1.0"
1010

1111
[libraries]
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//Copyright 2023 Tamás Balog. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2+
3+
package com.picimako.mockitools;
4+
5+
import static com.picimako.mockitools.MockitoQualifiedNames.ORG_MOCKITO_BDDMOCKITO;
6+
import static com.picimako.mockitools.MockitoQualifiedNames.ORG_MOCKITO_INORDER;
7+
import static com.picimako.mockitools.MockitoQualifiedNames.ORG_MOCKITO_MOCKITO;
8+
9+
import lombok.Getter;
10+
import lombok.RequiredArgsConstructor;
11+
12+
/**
13+
* Either standard {@code Mockito} and {@code InOrder} based stubbing and verification,
14+
* or BDD-style via {@code BDDMockito}.
15+
*/
16+
@Getter
17+
@RequiredArgsConstructor
18+
public enum Convention {
19+
MOCKITO(ORG_MOCKITO_MOCKITO + " / " + ORG_MOCKITO_INORDER),
20+
BDD_MOCKITO(ORG_MOCKITO_BDDMOCKITO);
21+
22+
private final String classFqn;
23+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
//Copyright 2023 Tamás Balog. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2+
3+
package com.picimako.mockitools;
4+
5+
import com.intellij.codeInsight.daemon.HighlightDisplayKey;
6+
import com.intellij.profile.codeInspection.InspectionProfileManager;
7+
import com.intellij.psi.PsiElement;
8+
import com.picimako.mockitools.inspection.stubbing.EnforceConventionInspection;
9+
10+
/**
11+
* Helpers for checking which {@link Convention} is enforced.
12+
*/
13+
public final class EnforceConventionUtil {
14+
15+
/**
16+
* @see EnforceConventionInspection#SHORT_NAME
17+
*/
18+
public static final String ENFORCE_CONVENTION_INSPECTION_SHORT_NAME = "EnforceConvention";
19+
20+
/**
21+
* Returns whether {@link EnforceConventionInspection} is enabled in the inspection profile currently active in the current project,
22+
* and {@link Convention#MOCKITO} is being enforced.
23+
*
24+
* @param methodCall the method call the intention availability is being checked
25+
*/
26+
public static boolean isMockitoEnforced(PsiElement methodCall) {
27+
return isEnforced(methodCall, Convention.MOCKITO);
28+
}
29+
30+
/**
31+
* Returns whether {@link EnforceConventionInspection} is enabled in the inspection profile currently active in the current project,
32+
* and {@link Convention#BDD_MOCKITO} is being enforced.
33+
*
34+
* @param methodCall the method call the intention availability is being checked
35+
*/
36+
public static boolean isBDDMockitoEnforced(PsiElement methodCall) {
37+
return isEnforced(methodCall, Convention.BDD_MOCKITO);
38+
}
39+
40+
private static boolean isEnforced(PsiElement methodCall, Convention convention) {
41+
var profile = InspectionProfileManager.getInstance(methodCall.getProject()).getCurrentProfile();
42+
if (profile.isToolEnabled(HighlightDisplayKey.find(ENFORCE_CONVENTION_INSPECTION_SHORT_NAME))) {
43+
var enforceConvention = (EnforceConventionInspection) profile.getUnwrappedTool(ENFORCE_CONVENTION_INSPECTION_SHORT_NAME, methodCall);
44+
return enforceConvention != null && enforceConvention.conventionToEnforce == convention;
45+
}
46+
return false;
47+
}
48+
49+
private EnforceConventionUtil() {
50+
//Utility class
51+
}
52+
}

src/main/java/com/picimako/mockitools/completion/MockCompletionContributor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
*
4242
* @since 0.12.0
4343
*/
44-
public class MockCompletionContributor extends CompletionContributor {
44+
final class MockCompletionContributor extends CompletionContributor {
4545

4646
private static final Pattern MOCKITO_VERIFY_PATTERN = Pattern.compile("Mockito\\.(verifyNoInteractions|verifyNoMoreInteractions|verifyZeroInteractions)");
4747
private static final Pattern VERIFY_PATTERN = Pattern.compile("verifyNoInteractions|verifyNoMoreInteractions|verifyZeroInteractions");

src/main/java/com/picimako/mockitools/inspection/CallOnMockitoResetInspection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
* @see <a href="https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#resetting_mocks">Resetting mocks</a>
1919
* @since 0.1.0
2020
*/
21-
public class CallOnMockitoResetInspection extends MockitoolsBaseInspection {
21+
final class CallOnMockitoResetInspection extends MockitoolsBaseInspection {
2222

2323
@Override
2424
protected void checkMethodCallExpression(PsiMethodCallExpression expression, @NotNull ProblemsHolder holder) {

src/main/java/com/picimako/mockitools/inspection/captor/CaptorFieldInitializationInspection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
* @see <a href="https://www.baeldung.com/mockito-annotations">Baeldung - Mockito Annotations</a>
3333
* @since 0.1.0
3434
*/
35-
public class CaptorFieldInitializationInspection extends MockitoolsBaseInspection {
35+
final class CaptorFieldInitializationInspection extends MockitoolsBaseInspection {
3636

3737
@Override
3838
public @NotNull PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly, @NotNull LocalInspectionToolSession session) {

src/main/java/com/picimako/mockitools/inspection/captor/CaptorFieldOfTypeArgumentCaptorInspection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
*
3535
* @since 0.1.0
3636
*/
37-
public class CaptorFieldOfTypeArgumentCaptorInspection extends MockitoolsBaseInspection {
37+
final class CaptorFieldOfTypeArgumentCaptorInspection extends MockitoolsBaseInspection {
3838

3939
@Override
4040
public @NotNull PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly, @NotNull LocalInspectionToolSession session) {

src/main/java/com/picimako/mockitools/inspection/consecutive/SimplifyConsecutiveReturnCallsInspection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
*
2929
* @since 0.3.0
3030
*/
31-
public class SimplifyConsecutiveReturnCallsInspection extends SimplifyConsecutiveCallsInspectionBase {
31+
final class SimplifyConsecutiveReturnCallsInspection extends SimplifyConsecutiveCallsInspectionBase {
3232
private static final List<ConsecutiveCallAnalysisDescriptor> RETURN_DESCRIPTORS = List.of(
3333
Builder.forMockito(DO_RETURN)
3434
.inCallChainsBeginningWith(DO_RETURN, DO_THROW, "doNothing", "doAnswer", "doCallRealMethod").build(),

0 commit comments

Comments
 (0)