1 package com.atlassian.plugin.manager;
2
3 import com.atlassian.plugin.Plugin;
4 import com.atlassian.plugin.PluginDependencies;
5 import com.google.common.collect.Collections2;
6 import org.junit.Before;
7
8 import java.util.HashSet;
9 import java.util.Set;
10
11 import static com.atlassian.plugin.manager.PluginWithDeps.GET_KEY;
12
13 public class TestDependentPlugins {
14 protected Set<Plugin> allPlugins;
15
16 @Before
17 public void setUp() throws Exception {
18 allPlugins = new HashSet<>();
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 allPlugins.add(new PluginWithDeps("A", PluginDependencies.builder()
35 .withMandatory("B")
36 .withOptional("D")
37 .withDynamic("E")
38 .build()));
39
40 allPlugins.add(new PluginWithDeps("F", PluginDependencies.builder()
41 .withDynamic("B")
42 .withMandatory("D")
43 .withOptional("E")
44 .build()));
45
46 allPlugins.add(new PluginWithDeps("H", PluginDependencies.builder()
47 .withOptional("B")
48 .withDynamic("D")
49 .withMandatory("E")
50 .build()));
51
52 allPlugins.add(new PluginWithDeps("B", PluginDependencies.builder()
53 .withDynamic("C")
54 .build()));
55
56 allPlugins.add(new PluginWithDeps("D", PluginDependencies.builder()
57 .withOptional("C")
58 .build()));
59
60 allPlugins.add(new PluginWithDeps("E", PluginDependencies.builder()
61 .withMandatory("C")
62 .build()));
63
64 allPlugins.add(new PluginWithDeps("C", PluginDependencies.builder()
65 .withMandatory("G")
66 .build()));
67
68 allPlugins.add(new PluginWithDeps("G"));
69
70
71 allPlugins.add(new PluginWithDeps("a", PluginDependencies.builder()
72 .withMandatory("b")
73 .build()));
74 allPlugins.add(new PluginWithDeps("b", PluginDependencies.builder()
75 .withMandatory("c")
76 .build()));
77 allPlugins.add(new PluginWithDeps("c", PluginDependencies.builder()
78 .withMandatory("a")
79 .build()));
80
81
82
83
84
85 allPlugins.add(new PluginWithDeps("aC", PluginDependencies.builder()
86 .withOptional("aC")
87 .withDynamic("aC")
88 .withMandatory("aC")
89 .build()));
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105 allPlugins.add(new PluginWithDeps("mA", PluginDependencies.builder()
106 .withMandatory("mB", "mD", "mE")
107 .withOptional("mB", "mD", "mE")
108 .withDynamic("mB", "mD", "mE")
109 .build()));
110
111 allPlugins.add(new PluginWithDeps("mB", PluginDependencies.builder()
112 .withDynamic("mC")
113 .build()));
114
115 allPlugins.add(new PluginWithDeps("mD", PluginDependencies.builder()
116 .withOptional("mC")
117 .build()));
118
119 allPlugins.add(new PluginWithDeps("mE", PluginDependencies.builder()
120 .withMandatory("mC")
121 .build()));
122
123 allPlugins.add(new PluginWithDeps("mX", PluginDependencies.builder()
124 .withMandatory("mA")
125 .build()));
126
127 allPlugins.add(new PluginWithDeps("mC", PluginDependencies.builder()
128 .withMandatory("mE")
129 .withOptional("mD")
130 .withDynamic("mB")
131 .build()));
132 }
133
134 protected Set<String> getKeys(final Set<Plugin> plugins) {
135 return new HashSet<>(Collections2.transform(plugins, GET_KEY));
136 }
137
138 }