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.plugins.invoker;
20  
21  import java.util.Properties;
22  
23  import org.junit.Test;
24  
25  import static org.junit.Assert.assertEquals;
26  
27  /**
28   * Test for {@link Selector}.
29   */
30  public class SelectorTest {
31      @Test
32      public void testGlobalMatch() {
33          Selector selector = new Selector("3.2.5", "1.7", null);
34  
35          Properties props = new Properties();
36          props.setProperty("invoker.maven.version", "3.0+");
37          InvokerProperties invokerProperties = new InvokerProperties(props);
38          assertEquals(0, selector.getSelection(invokerProperties));
39      }
40  
41      @Test
42      public void testSelectorMatch() {
43          Selector selector = new Selector("3.2.5", "1.7", null);
44  
45          Properties props = new Properties();
46          props.setProperty("selector.1.maven.version", "3.0+");
47          InvokerProperties invokerProperties = new InvokerProperties(props);
48          assertEquals(0, selector.getSelection(invokerProperties));
49  
50          props.setProperty("selector.1.maven.version", "3.3.1+");
51          assertEquals(Selector.SELECTOR_MULTI, selector.getSelection(invokerProperties));
52      }
53  
54      @Test
55      public void testSelectorWithGlobalMatch() {
56          Selector selector = new Selector("3.2.5", "1.7", null);
57  
58          Properties props = new Properties();
59          // invoker.maven.version is used by all selectors
60          props.setProperty("invoker.maven.version", "3.0+");
61          props.setProperty("selector.1.java.version", "1.4+");
62          props.setProperty("selector.2.os.family", "myos");
63          InvokerProperties invokerProperties = new InvokerProperties(props);
64          assertEquals(0, selector.getSelection(invokerProperties));
65  
66          props.setProperty("invoker.maven.version", "3.3.1+");
67          assertEquals(Selector.SELECTOR_MULTI, selector.getSelection(invokerProperties));
68  
69          props.setProperty("invoker.maven.version", "3.0+");
70          props.setProperty("selector.1.maven.version", "3.3.1+");
71          assertEquals(Selector.SELECTOR_MULTI, selector.getSelection(invokerProperties));
72  
73          props.setProperty("selector.2.os.family", "!myos");
74          assertEquals(0, selector.getSelection(invokerProperties));
75      }
76  }