View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.model.profile.activation;
20  
21  import java.util.Objects;
22  import java.util.Properties;
23  
24  import junit.framework.TestCase;
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  
30  /**
31   * Provides common services to test {@link ProfileActivator} implementations.
32   *
33   * @author Benjamin Bentmann
34   */
35  public abstract class AbstractProfileActivatorTest<T extends ProfileActivator> extends TestCase {
36  
37      private Class<T> activatorClass;
38  
39      protected T activator;
40  
41      public AbstractProfileActivatorTest(Class<T> activatorClass) {
42          this.activatorClass = Objects.requireNonNull(activatorClass, "activatorClass cannot be null");
43          ;
44      }
45  
46      @Override
47      protected void setUp() throws Exception {
48          super.setUp();
49  
50          activator = activatorClass.getConstructor().newInstance();
51      }
52  
53      @Override
54      protected void tearDown() throws Exception {
55          activator = null;
56  
57          super.tearDown();
58      }
59  
60      protected ProfileActivationContext newContext(final Properties userProperties, final Properties systemProperties) {
61          DefaultProfileActivationContext context = new DefaultProfileActivationContext();
62          return context.setUserProperties(userProperties).setSystemProperties(systemProperties);
63      }
64  
65      protected void assertActivation(boolean active, Profile profile, ProfileActivationContext context) {
66          SimpleProblemCollector problems = new SimpleProblemCollector();
67  
68          assertEquals(active, activator.isActive(profile, context, problems));
69  
70          assertEquals(problems.getErrors().toString(), 0, problems.getErrors().size());
71          assertEquals(
72                  problems.getWarnings().toString(), 0, problems.getWarnings().size());
73      }
74  }