Skip to content

Commit e9004c2

Browse files
committed
Fix NullPointerException in tests
1 parent 4acc456 commit e9004c2

File tree

2 files changed

+34
-32
lines changed

2 files changed

+34
-32
lines changed

src/test/java/org/hydev/mcpm/client/database/MockInstaller.java

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.hydev.mcpm.client.database;
22

3-
import org.hydev.mcpm.client.commands.presenters.InstallResultPresenter;
43
import org.hydev.mcpm.client.database.tracker.PluginTracker;
54
import org.hydev.mcpm.client.installer.InstallBoundary;
65
import org.hydev.mcpm.client.installer.input.InstallInput;
@@ -20,7 +19,7 @@
2019
public class MockInstaller implements InstallBoundary {
2120
private final List<PluginModel> plugins;
2221
private final PluginTracker tracker;
23-
private final boolean defaultResult;
22+
private final InstallResult.Type defaultResult;
2423
private final Set<String> requested = new HashSet<>();
2524

2625
/**
@@ -30,7 +29,7 @@ public class MockInstaller implements InstallBoundary {
3029
* @param tracker A plugin tracker to query whether a plugin is installed.
3130
*/
3231
public MockInstaller(List<PluginModel> plugins, PluginTracker tracker) {
33-
this(plugins, tracker, true);
32+
this(plugins, tracker, InstallResult.Type.SUCCESS_INSTALLED);
3433
}
3534

3635
/**
@@ -40,36 +39,35 @@ public MockInstaller(List<PluginModel> plugins, PluginTracker tracker) {
4039
* @param tracker A plugin tracker to query whether a plugin is installed.
4140
* @param defaultResult Determines what the installer should return when installPlugin is invoked.
4241
*/
43-
public MockInstaller(List<PluginModel> plugins, PluginTracker tracker, boolean defaultResult) {
42+
public MockInstaller(List<PluginModel> plugins, PluginTracker tracker, InstallResult.Type defaultResult) {
4443
this.plugins = plugins;
4544
this.tracker = tracker;
4645
this.defaultResult = defaultResult;
4746
}
4847

4948
@Override
50-
// TODO InstallPlugin
5149
public List<InstallResult> installPlugin(InstallInput installInput) {
52-
// Assertions.assertEquals(installInput.type(), SearchPackagesType.BY_NAME);
53-
//
54-
// if (tracker.findIfInLockByName(installInput.name()))
55-
// return false;
56-
//
57-
// var model = plugins.stream()
58-
// .filter(plugin -> plugin.getLatestPluginVersion()
59-
// .map(x -> x.meta() != null && installInput.name().equals(x.meta().name()))
60-
// .orElse(false)
61-
// ).findFirst();
62-
//
63-
// var modelId = model.map(PluginModel::id).orElse(0L);
64-
// var versionId = model.map(x -> x.getLatestPluginVersion()
65-
// .map(PluginVersion::id).orElse(0L)
66-
// ).orElse(0L);
67-
//
68-
// requested.add(installInput.name());
69-
// tracker.addEntry(installInput.name(), true, versionId, modelId);
70-
//
71-
// return defaultResult;
72-
return null;
50+
Assertions.assertEquals(installInput.type(), SearchPackagesType.BY_NAME);
51+
var name = installInput.name();
52+
53+
if (tracker.findIfInLockByName(installInput.name()))
54+
return List.of(new InstallResult(InstallResult.Type.PLUGIN_EXISTS, name));
55+
56+
var model = plugins.stream()
57+
.filter(plugin -> plugin.getLatestPluginVersion()
58+
.map(x -> x.meta() != null && installInput.name().equals(x.meta().name()))
59+
.orElse(false)
60+
).findFirst();
61+
62+
var modelId = model.map(PluginModel::id).orElse(0L);
63+
var versionId = model.map(x -> x.getLatestPluginVersion()
64+
.map(PluginVersion::id).orElse(0L)
65+
).orElse(0L);
66+
67+
requested.add(installInput.name());
68+
tracker.addEntry(installInput.name(), true, versionId, modelId);
69+
70+
return List.of(new InstallResult(defaultResult, name));
7371
}
7472

7573
/**

src/test/java/org/hydev/mcpm/client/database/UpdateInteractorTest.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
import org.hydev.mcpm.client.commands.presenters.InstallResultPresenter;
44
import org.hydev.mcpm.client.database.fetcher.ConstantFetcher;
55
import org.hydev.mcpm.client.database.fetcher.QuietFetcherListener;
6+
import org.hydev.mcpm.client.installer.output.InstallResult;
67
import org.hydev.mcpm.client.matcher.MatchPluginsInteractor;
78
import org.hydev.mcpm.client.models.PluginModel;
9+
import org.hydev.mcpm.client.search.SearchInteractor;
810
import org.hydev.mcpm.client.updater.CheckForUpdatesInteractor;
911
import org.hydev.mcpm.client.updater.UpdateBoundary;
1012
import org.hydev.mcpm.client.updater.UpdateInput;
@@ -18,10 +20,7 @@
1820
import java.util.Optional;
1921
import java.util.Set;
2022

21-
import static org.junit.jupiter.api.Assertions.assertFalse;
22-
import static org.junit.jupiter.api.Assertions.assertNull;
23-
import static org.junit.jupiter.api.Assertions.assertTrue;
24-
import static org.junit.jupiter.api.Assertions.assertEquals;
23+
import static org.junit.jupiter.api.Assertions.*;
2524

2625
/**
2726
* Test methods related to the Update plugins use case.
@@ -37,7 +36,7 @@ private record MockPackage(
3736
) { }
3837

3938
/**
40-
* Create an interactor with provided paramters.
39+
* Create an interactor with provided parameters.
4140
*
4241
* @param plugins A repository of all plugins. Will be passed to database unless emptyDatabase is true.
4342
* @param installedVersions Maps from plugin id to versions of plugins that are "installed" in the mock tracker.
@@ -67,8 +66,12 @@ private static MockPackage interactor(
6766
.map(version -> version.get().meta())
6867
.toList();
6968

69+
var defaultResult = installerSucceeds
70+
? InstallResult.Type.SUCCESS_INSTALLED
71+
: InstallResult.Type.SEARCH_FAILED_TO_FETCH_DATABASE;
72+
7073
var tracker = new MockPluginTracker(installed);
71-
var installer = new MockInstaller(plugins, tracker, installerSucceeds);
74+
var installer = new MockInstaller(plugins, tracker, defaultResult);
7275

7376
var interactor = new UpdateInteractor(checker, installer, tracker);
7477

@@ -306,6 +309,7 @@ void testAllMixed() {
306309
var mock = oneOldInteractor();
307310

308311
var input = new UpdateInput(List.of(), false, false);
312+
//assertNotNull(mock.updator);
309313
var result = mock.updator.update(input);
310314

311315
assertEquals(result.state(), UpdateResult.State.SUCCESS);

0 commit comments

Comments
 (0)