1 package org.apache.maven.archetype.ui.generation;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.archetype.ArchetypeGenerationRequest;
23 import org.apache.maven.archetype.catalog.Archetype;
24 import org.apache.maven.archetype.exception.ArchetypeNotDefined;
25 import org.apache.maven.archetype.exception.ArchetypeSelectionFailure;
26 import org.apache.maven.archetype.exception.UnknownArchetype;
27 import org.apache.maven.archetype.exception.UnknownGroup;
28 import org.apache.maven.archetype.ui.ArchetypeDefinition;
29 import org.codehaus.plexus.PlexusTestCase;
30 import org.codehaus.plexus.components.interactivity.PrompterException;
31 import org.easymock.EasyMock;
32
33 import java.io.IOException;
34 import java.util.List;
35 import java.util.Map;
36
37 public class DefaultArchetypeSelectorTest
38 extends PlexusTestCase
39 {
40 private DefaultArchetypeSelector selector;
41
42 @Override
43 public void setUp()
44 throws Exception
45 {
46 super.setUp();
47
48 selector = (DefaultArchetypeSelector) lookup( ArchetypeSelector.ROLE );
49 }
50
51 public void testArchetypeCoordinatesInRequest()
52 throws PrompterException, IOException, UnknownGroup, ArchetypeSelectionFailure, UnknownArchetype,
53 ArchetypeNotDefined
54 {
55 ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
56 request.setArchetypeArtifactId( "preset-artifactId" );
57 request.setArchetypeGroupId( "preset-groupId" );
58 request.setArchetypeVersion( "preset-version" );
59
60 ArchetypeSelectionQueryer queryer = EasyMock.createMock( ArchetypeSelectionQueryer.class );
61
62
63 EasyMock.replay( queryer );
64
65 selector.setArchetypeSelectionQueryer( queryer );
66
67 selector.selectArchetype( request, Boolean.TRUE, "" );
68
69 EasyMock.verify( queryer );
70
71 assertEquals( "preset-groupId", request.getArchetypeGroupId() );
72 assertEquals( "preset-artifactId", request.getArchetypeArtifactId() );
73 assertEquals( "preset-version", request.getArchetypeVersion() );
74 }
75
76 public void testArchetypeArtifactIdInRequest()
77 throws PrompterException, IOException, UnknownGroup, ArchetypeSelectionFailure, UnknownArchetype,
78 ArchetypeNotDefined
79 {
80 ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
81 request.setArchetypeArtifactId( "preset-artifactId" );
82
83 ArchetypeSelectionQueryer queryer = EasyMock.createMock( ArchetypeSelectionQueryer.class );
84
85
86 EasyMock.replay( queryer );
87
88 selector.setArchetypeSelectionQueryer( queryer );
89
90 selector.selectArchetype( request, Boolean.TRUE, "" );
91
92 EasyMock.verify( queryer );
93
94 assertEquals( DefaultArchetypeSelector.DEFAULT_ARCHETYPE_GROUPID, request.getArchetypeGroupId() );
95 assertEquals( "preset-artifactId", request.getArchetypeArtifactId() );
96 assertEquals( DefaultArchetypeSelector.DEFAULT_ARCHETYPE_VERSION, request.getArchetypeVersion() );
97 }
98
99 public void testArchetypeArtifactIdNotInRequest()
100 throws PrompterException, IOException, UnknownGroup, ArchetypeSelectionFailure, UnknownArchetype,
101 ArchetypeNotDefined
102 {
103 ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
104
105 ArchetypeSelectionQueryer queryer = EasyMock.createMock( ArchetypeSelectionQueryer.class );
106
107 Archetype archetype = new Archetype();
108 archetype.setArtifactId( "set-artifactId" );
109 archetype.setGroupId( "set-groupId" );
110 archetype.setVersion( "set-version" );
111 ArchetypeDefinition y = EasyMock.anyObject();
112 Map<String, List<Archetype>> x = EasyMock.anyObject();
113 EasyMock.expect( queryer.selectArchetype( x , y ) ).andReturn( archetype );
114
115 EasyMock.replay( queryer );
116
117 selector.setArchetypeSelectionQueryer( queryer );
118
119 selector.selectArchetype( request, Boolean.TRUE, "" );
120
121 EasyMock.verify( queryer );
122
123 assertEquals( "set-groupId", request.getArchetypeGroupId() );
124 assertEquals( "set-artifactId", request.getArchetypeArtifactId() );
125 assertEquals( "set-version", request.getArchetypeVersion() );
126 }
127
128 public void testArchetypeNotInRequestDefaultsInBatchMode()
129 throws PrompterException, IOException, UnknownGroup, ArchetypeSelectionFailure, UnknownArchetype,
130 ArchetypeNotDefined
131 {
132 ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
133
134 ArchetypeSelectionQueryer queryer = EasyMock.createMock( ArchetypeSelectionQueryer.class );
135
136
137 EasyMock.replay( queryer );
138
139 selector.setArchetypeSelectionQueryer( queryer );
140
141 selector.selectArchetype( request, Boolean.FALSE, "" );
142
143 EasyMock.verify( queryer );
144
145 assertEquals( DefaultArchetypeSelector.DEFAULT_ARCHETYPE_GROUPID, request.getArchetypeGroupId() );
146 assertEquals( DefaultArchetypeSelector.DEFAULT_ARCHETYPE_ARTIFACTID, request.getArchetypeArtifactId() );
147 assertEquals( DefaultArchetypeSelector.DEFAULT_ARCHETYPE_VERSION, request.getArchetypeVersion() );
148 }
149
150 public void testArchetypeNotInRequestDefaults()
151 throws PrompterException, IOException, UnknownGroup, ArchetypeSelectionFailure, UnknownArchetype,
152 ArchetypeNotDefined
153 {
154 ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
155
156 ArchetypeSelectionQueryer queryer = EasyMock.createMock( ArchetypeSelectionQueryer.class );
157 Archetype archetype = new Archetype();
158 archetype.setArtifactId( "set-artifactId" );
159 archetype.setGroupId( "set-groupId" );
160 archetype.setVersion( "set-version" );
161 ArchetypeDefinition y = EasyMock.anyObject();
162 Map<String, List<Archetype>> x = EasyMock.anyObject();
163 EasyMock.expect( queryer.selectArchetype( x , y ) ).andReturn( archetype );
164
165 EasyMock.replay( queryer );
166
167 selector.setArchetypeSelectionQueryer( queryer );
168
169 selector.selectArchetype( request, Boolean.TRUE, "" );
170
171 EasyMock.verify( queryer );
172
173 assertEquals( "set-groupId", request.getArchetypeGroupId() );
174 assertEquals( "set-artifactId", request.getArchetypeArtifactId() );
175 assertEquals( "set-version", request.getArchetypeVersion() );
176 }
177
178 }