1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.archetype.ui.generation;
20
21 import java.util.regex.Pattern;
22
23 import org.codehaus.plexus.ContainerConfiguration;
24 import org.codehaus.plexus.PlexusTestCase;
25 import org.codehaus.plexus.components.interactivity.Prompter;
26 import org.codehaus.plexus.components.interactivity.PrompterException;
27 import org.easymock.EasyMock;
28
29 public class DefaultArchetypeGenerationQueryerTest extends PlexusTestCase {
30
31 private DefaultArchetypeGenerationQueryer queryer;
32
33 @Override
34 protected void customizeContainerConfiguration(ContainerConfiguration configuration) {
35 configuration.setClassPathScanning("index");
36 }
37
38 @Override
39 public void setUp() throws Exception {
40 super.setUp();
41
42 queryer = (DefaultArchetypeGenerationQueryer) lookup(ArchetypeGenerationQueryer.class.getName());
43 }
44
45 public void testPropertyRegexValidationRetry() throws PrompterException {
46 Prompter prompter = EasyMock.createMock(Prompter.class);
47
48 EasyMock.expect(prompter.prompt(EasyMock.anyObject())).andReturn("invalid-answer");
49 EasyMock.expect(prompter.prompt(EasyMock.anyObject())).andReturn("valid-answer");
50
51 EasyMock.replay(prompter);
52 queryer.setPrompter(prompter);
53
54 String value = queryer.getPropertyValue("custom-property", null, Pattern.compile("^valid-.*"));
55
56 assertEquals("valid-answer", value);
57 }
58 }