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.shared.filtering;
20  
21  import java.util.LinkedHashSet;
22  
23  import org.hamcrest.Matchers;
24  import org.junit.jupiter.api.Test;
25  
26  import static org.hamcrest.MatcherAssert.assertThat;
27  
28  /**
29   * @author Karl Heinz Marbaise <a href="mailto:khmarbaise@apache.org">khmarbaise@apache.org</a>.
30   */
31  class AbstractMavenFilteringRequestTest {
32  
33      private AbstractMavenFilteringRequest request = new AbstractMavenFilteringRequest();
34      private LinkedHashSet<String> delimiters = new LinkedHashSet<>();
35  
36      @Test
37      void setDelimitersShouldNotChangeAnythingIfUsingNull() {
38          request.setDelimiters(null, false);
39          assertThat(request.getDelimiters(), Matchers.contains("${*}", "@"));
40      }
41  
42      @Test
43      void setDelimitersShouldNotChangeAnythingIfUsingEmpty() {
44          request.setDelimiters(delimiters, false);
45          assertThat(request.getDelimiters(), Matchers.contains("${*}", "@"));
46      }
47  
48      @Test
49      void setDelimitersShouldAddOnlyTheGivenDelimiter() {
50          delimiters.add("test");
51          request.setDelimiters(delimiters, false);
52          assertThat(request.getDelimiters(), Matchers.contains("test"));
53      }
54  
55      @Test
56      void setDelimitersShouldAddDefaultDelimitersForNullElements() {
57          delimiters.add("test");
58          delimiters.add(null);
59          delimiters.add("second");
60          request.setDelimiters(delimiters, false);
61          assertThat(request.getDelimiters(), Matchers.contains("test", "${*}", "second"));
62      }
63  
64      @Test
65      void setDelimitersShouldAddDefaultDelimitersIfUseDefaultDelimitersIfNullGiven() {
66          request.setDelimiters(null, true);
67          assertThat(request.getDelimiters(), Matchers.contains("${*}", "@"));
68      }
69  
70      @Test
71      void setDelimitersShouldAddDefaultDelimitersIfUseDefaultDelimitersIfNotNullGiven() {
72          LinkedHashSet<String> delimiters = new LinkedHashSet<>();
73          request.setDelimiters(delimiters, true);
74          assertThat(request.getDelimiters(), Matchers.contains("${*}", "@"));
75      }
76  
77      @Test
78      void setDelimitersShouldAddDefaultDelimitersIfUseDefaultDelimitersIfSingleElementIsGiven() {
79          delimiters.add("test");
80          request.setDelimiters(delimiters, true);
81          assertThat(request.getDelimiters(), Matchers.contains("${*}", "@", "test"));
82      }
83  
84      @Test
85      void setDelimitersShouldAddDefaultDelimitersForNullElement() {
86          delimiters.add("test");
87          delimiters.add(null);
88          delimiters.add("second");
89          request.setDelimiters(delimiters, true);
90          assertThat(request.getDelimiters(), Matchers.contains("${*}", "@", "test", "second"));
91      }
92  }