1
1
package org .hydev .mcpm .client .database ;
2
2
3
- import org .hydev .mcpm .client .commands .presenters .InstallResultPresenter ;
4
3
import org .hydev .mcpm .client .database .tracker .PluginTracker ;
5
4
import org .hydev .mcpm .client .installer .InstallBoundary ;
6
5
import org .hydev .mcpm .client .installer .input .InstallInput ;
20
19
public class MockInstaller implements InstallBoundary {
21
20
private final List <PluginModel > plugins ;
22
21
private final PluginTracker tracker ;
23
- private final boolean defaultResult ;
22
+ private final InstallResult . Type defaultResult ;
24
23
private final Set <String > requested = new HashSet <>();
25
24
26
25
/**
@@ -30,7 +29,7 @@ public class MockInstaller implements InstallBoundary {
30
29
* @param tracker A plugin tracker to query whether a plugin is installed.
31
30
*/
32
31
public MockInstaller (List <PluginModel > plugins , PluginTracker tracker ) {
33
- this (plugins , tracker , true );
32
+ this (plugins , tracker , InstallResult . Type . SUCCESS_INSTALLED );
34
33
}
35
34
36
35
/**
@@ -40,36 +39,35 @@ public MockInstaller(List<PluginModel> plugins, PluginTracker tracker) {
40
39
* @param tracker A plugin tracker to query whether a plugin is installed.
41
40
* @param defaultResult Determines what the installer should return when installPlugin is invoked.
42
41
*/
43
- public MockInstaller (List <PluginModel > plugins , PluginTracker tracker , boolean defaultResult ) {
42
+ public MockInstaller (List <PluginModel > plugins , PluginTracker tracker , InstallResult . Type defaultResult ) {
44
43
this .plugins = plugins ;
45
44
this .tracker = tracker ;
46
45
this .defaultResult = defaultResult ;
47
46
}
48
47
49
48
@ Override
50
- // TODO InstallPlugin
51
49
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 )) ;
73
71
}
74
72
75
73
/**
0 commit comments