1 package org.apache.maven.model.profile.activation;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.Properties;
23
24 import org.apache.commons.lang3.Validate;
25 import org.apache.maven.model.Profile;
26 import org.apache.maven.model.building.SimpleProblemCollector;
27 import org.apache.maven.model.profile.DefaultProfileActivationContext;
28 import org.apache.maven.model.profile.ProfileActivationContext;
29 import org.codehaus.plexus.PlexusTestCase;
30 import org.codehaus.plexus.component.annotations.Component;
31
32
33
34
35
36
37 public abstract class AbstractProfileActivatorTest<T extends ProfileActivator>
38 extends PlexusTestCase
39 {
40
41 private Class<T> activatorClass;
42
43 private String roleHint;
44
45 protected T activator;
46
47 public AbstractProfileActivatorTest( Class<T> activatorClass )
48 {
49 this.activatorClass = Validate.notNull( activatorClass, "activatorClass cannot be null" );;
50
51 roleHint = activatorClass.getAnnotation( Component.class ).hint();
52 }
53
54 @Override
55 protected void setUp()
56 throws Exception
57 {
58 super.setUp();
59
60 activator = activatorClass.cast( lookup( ProfileActivator.class, roleHint ) );
61 }
62
63 @Override
64 protected void tearDown()
65 throws Exception
66 {
67 activator = null;
68
69 super.tearDown();
70 }
71
72 protected ProfileActivationContext newContext( final Properties userProperties, final Properties systemProperties )
73 {
74 DefaultProfileActivationContext context = new DefaultProfileActivationContext();
75 return context.setUserProperties( userProperties ).setSystemProperties( systemProperties );
76 }
77
78 protected void assertActivation( boolean active, Profile profile, ProfileActivationContext context )
79 {
80 SimpleProblemCollector problems = new SimpleProblemCollector();
81
82 assertEquals( active, activator.isActive( profile, context, problems ) );
83
84 assertEquals( problems.getErrors().toString(), 0, problems.getErrors().size() );
85 assertEquals( problems.getWarnings().toString(), 0, problems.getWarnings().size() );
86 }
87
88 }