View Javadoc

1   package org.apache.torque.generator.source.transform;
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  
24  import org.apache.torque.generator.source.SourceElement;
25  import org.apache.torque.generator.source.transform.BeanPropertyMethodNameTransformer;
26  import org.apache.torque.generator.source.transform.SourceTransformerException;
27  import org.junit.Before;
28  import org.junit.Test;
29  
30  /**
31   * Converts a source element Attribute such that it can be used as method name.
32   * The base of the method name is the attribute content, with special characters
33   * removed and case corrected where necessary. Optionally,
34   * a prefix and/or suffix can be added. The result is stored into another
35   * attribute of the same source element.
36   *
37   * @version $Id: BeanPropertyMethodNameTransformerTest.java 1331190 2012-04-27 02:41:35Z tfischer $
38   */
39  public class BeanPropertyMethodNameTransformerTest
40  {
41      private BeanPropertyMethodNameTransformer transformer;
42  
43      @Before
44      public void before() throws SourceTransformerException
45      {
46          transformer = new BeanPropertyMethodNameTransformer();
47      }
48  
49      @Test
50      public void testNoPrefixSuffix() throws SourceTransformerException
51      {
52          SourceElement sourceElement
53                  = new SourceElement("elementName");
54          sourceElement.setAttribute("name", "vaL_ue");
55  
56          transformer.setTargetAttributeName("targetAttribute");
57          SourceElement result = transformer.transform(sourceElement, null);
58          assertEquals("vaLUe", result.getAttribute("targetAttribute"));
59      }
60  
61      @Test
62      public void testPrefixSuffix() throws SourceTransformerException
63      {
64          SourceElement sourceElement
65                  = new SourceElement("elementName");
66          sourceElement.setAttribute("sourceAttribute", "someProperty");
67  
68          transformer.setSourceAttributeName("sourceAttribute");
69          transformer.setTargetAttributeName("targetAttribute");
70          transformer.setPrefix("prefix");
71          transformer.setSuffix("Suffix");
72          SourceElement result = transformer.transform(sourceElement, null);
73          assertEquals(
74                  "prefixSomePropertySuffix",
75                  result.getAttribute("targetAttribute"));
76      }
77  
78      @Test
79      public void testNoOverwrite() throws SourceTransformerException
80      {
81          SourceElement sourceElement
82                  = new SourceElement("elementName");
83          sourceElement.setAttribute("name", "modified");
84          sourceElement.setAttribute("targetAttribute", "unmodified");
85  
86          transformer.setOverwrite(false);
87          transformer.setTargetAttributeName("targetAttribute");
88          SourceElement result = transformer.transform(sourceElement, null);
89          assertEquals(
90                  "unmodified",
91                  result.getAttribute("targetAttribute"));
92      }
93  
94      @Test
95      public void testNoOverwriteEmptyTarget() throws SourceTransformerException
96      {
97          SourceElement sourceElement
98                  = new SourceElement("elementName");
99          sourceElement.setAttribute("name", "source");
100 
101         transformer.setOverwrite(false);
102         transformer.setTargetAttributeName("targetAttribute");
103         SourceElement result = transformer.transform(sourceElement, null);
104         assertEquals(
105                 "source",
106                 result.getAttribute("targetAttribute"));
107     }
108 }