View Javadoc

1   package org.apache.torque.generator.qname;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import static org.junit.Assert.assertEquals;
23  import static org.junit.Assert.assertNull;
24  
25  import org.apache.torque.generator.qname.QualifiedName;
26  import org.apache.torque.generator.qname.QualifiedNameMap;
27  import org.junit.Test;
28  
29  public class QualifiedNameMapTest
30  {
31      private static final QualifiedName qualifiedNameChild
32          = new QualifiedName("org.apache.torque.generator.name");
33      private static final QualifiedName qualifiedName
34          = new QualifiedName("org.apache.torque.name");
35      private static final QualifiedName qualifiedNameParent
36          = new QualifiedName("org.apache.name");
37      private static final QualifiedName qualifiedNameAncestor
38          = new QualifiedName("org.name");
39      private static final QualifiedName qualifiedNameDefault
40          = new QualifiedName("name");
41      private static final QualifiedName qualifiedNameUnrelated
42          = new QualifiedName("org.apa.name");
43      private static final QualifiedName qualifiedNameOtherName
44          = new QualifiedName("org.apache.torque.otherName");
45  
46      @Test
47      public void testGetKeyInHierarchyByQualifiedName()
48      {
49          QualifiedNameMap<String> qualifiedNameMap
50                  = new QualifiedNameMap<String>();
51  
52          QualifiedName result
53                  = qualifiedNameMap.getKeyInHierarchy(qualifiedName);
54          assertNull(result);
55  
56          qualifiedNameMap.put(qualifiedNameUnrelated, "org.apa");
57          result = qualifiedNameMap.getKeyInHierarchy(qualifiedName);
58          assertNull(result);
59  
60          qualifiedNameMap.put(qualifiedNameChild, "org.apache.torque.generator");
61          result = qualifiedNameMap.getKeyInHierarchy(qualifiedName);
62          assertNull(result);
63  
64          qualifiedNameMap.put(qualifiedNameDefault, "default");
65          result = qualifiedNameMap.getKeyInHierarchy(qualifiedName);
66          assertEquals(result, qualifiedNameDefault);
67  
68          qualifiedNameMap.put(qualifiedNameAncestor, "org");
69          result = qualifiedNameMap.getKeyInHierarchy(qualifiedName);
70          assertEquals(result, qualifiedNameAncestor);
71  
72          qualifiedNameMap.put(qualifiedNameParent, "org.apache");
73          result = qualifiedNameMap.getKeyInHierarchy(qualifiedName);
74          assertEquals(result, qualifiedNameParent);
75  
76          qualifiedNameMap.put(qualifiedName, "org.apache.torque");
77          result = qualifiedNameMap.getKeyInHierarchy(qualifiedName);
78          assertEquals(result, qualifiedName);
79  
80          qualifiedNameMap.remove(qualifiedName);
81          result = qualifiedNameMap.getKeyInHierarchy(qualifiedName);
82          assertEquals(result, qualifiedNameParent);
83      }
84  
85      @Test
86      public void testGetInHierarchyByQualifiedName()
87      {
88          QualifiedNameMap<String> qualifiedNameMap
89                  = new QualifiedNameMap<String>();
90  
91          String result = qualifiedNameMap.getInHierarchy(qualifiedName);
92          assertNull(result);
93  
94          qualifiedNameMap.put(qualifiedNameUnrelated, "org.apa");
95          result = qualifiedNameMap.getInHierarchy(qualifiedName);
96          assertNull(result);
97  
98          qualifiedNameMap.put(qualifiedNameChild, "org.apache.torque.generator");
99          result = qualifiedNameMap.getInHierarchy(qualifiedName);
100         assertNull(result);
101 
102         qualifiedNameMap.put(qualifiedNameDefault, "default");
103         result = qualifiedNameMap.getInHierarchy(qualifiedName);
104         assertEquals(result, "default");
105 
106         qualifiedNameMap.put(qualifiedNameAncestor, "org");
107         result = qualifiedNameMap.getInHierarchy(qualifiedName);
108         assertEquals(result, "org");
109 
110         qualifiedNameMap.put(qualifiedNameParent, "org.apache");
111         result = qualifiedNameMap.getInHierarchy(qualifiedName);
112         assertEquals(result, "org.apache");
113 
114         qualifiedNameMap.put(qualifiedName, "org.apache.torque");
115         result = qualifiedNameMap.getInHierarchy(qualifiedName);
116         assertEquals(result, "org.apache.torque");
117 
118         qualifiedNameMap.put(qualifiedName, null);
119         result = qualifiedNameMap.getInHierarchy(qualifiedName);
120         assertEquals(result, null);
121 
122         qualifiedNameMap.remove(qualifiedName);
123         result = qualifiedNameMap.getInHierarchy(qualifiedName);
124         assertEquals(result, "org.apache");
125     }
126 
127     @Test
128     public void testGetInHierarchyByNamespace()
129     {
130         QualifiedNameMap<String> qualifiedNameMap
131                 = new QualifiedNameMap<String>();
132 
133         qualifiedNameMap.put(qualifiedNameUnrelated, "org.apa");
134         qualifiedNameMap.put(qualifiedNameChild, "org.apache.torque.generator");
135         qualifiedNameMap.put(qualifiedNameDefault, "default");
136         qualifiedNameMap.put(qualifiedNameParent, "org.apache");
137         qualifiedNameMap.put(qualifiedName, "org.apache.torque");
138         qualifiedNameMap.put(
139                 qualifiedNameOtherName,
140                 "org.apache.torque.otherName");
141 
142         QualifiedNameMap<String> expected
143                 = new QualifiedNameMap<String>();
144 
145         expected.put(qualifiedName, "org.apache.torque");
146         expected.put(
147                 qualifiedNameOtherName,
148                 "org.apache.torque.otherName");
149 
150         QualifiedNameMap<String> result
151                 = qualifiedNameMap.getInHierarchy(
152                         qualifiedName.getNamespace());
153 
154         assertEquals(expected, result);
155     }
156 
157     @Test
158     public void testGetAllInHierarchy()
159     {
160         QualifiedNameMap<String> qualifiedNameMap
161                 = new QualifiedNameMap<String>();
162 
163         qualifiedNameMap.put(qualifiedNameUnrelated, "org.apa");
164         qualifiedNameMap.put(qualifiedNameChild, "org.apache.torque.generator");
165         qualifiedNameMap.put(qualifiedNameDefault, "default");
166         qualifiedNameMap.put(qualifiedNameParent, "org.apache");
167         qualifiedNameMap.put(qualifiedName, "org.apache.torque");
168         qualifiedNameMap.put(
169                 qualifiedNameOtherName,
170                 "org.apache.torque.otherName");
171 
172         QualifiedNameMap<String> expected
173                 = new QualifiedNameMap<String>();
174 
175         expected.put(qualifiedNameDefault, "default");
176         expected.put(qualifiedNameParent, "org.apache");
177         expected.put(qualifiedName, "org.apache.torque");
178         expected.put(
179                 qualifiedNameOtherName,
180                 "org.apache.torque.otherName");
181 
182         QualifiedNameMap<String> result
183                 = qualifiedNameMap.getAllInHierarchy(
184                         qualifiedName.getNamespace());
185 
186         assertEquals(expected, result);
187     }
188 
189     public void testGetMoreSpecific()
190     {
191         // TODO: implement !
192     }
193 }