1   package org.apache.velocity.test;
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  
23  /**
24   * This class tests support for string concatenation.
25   */
26  public class StringConcatenationTestCase extends BaseTestCase
27  {
28      public StringConcatenationTestCase(String name)
29      {
30         super(name);
31      }
32  
33      public void setUp() throws Exception
34      {
35          super.setUp();
36          context.put("foo", "foo");
37          context.put("baz", "baz");
38      }
39  
40      public void testStringRefLeft()
41      {
42          assertEvalEquals("foobar", "#set( $o = $foo + 'bar' )$o");
43          assertEvalEquals("foo$bar", "#set( $o = $foo + $bar )$o");
44          assertEvalEquals("foo1", "#set( $o = $foo + 1 )$o");
45          assertEvalEquals("foobaz", "#set( $o = $foo + $baz )$o");
46      }
47  
48      public void testStringRefRight()
49      {
50          assertEvalEquals("barfoo", "#set( $o = 'bar' + $foo )$o");
51          assertEvalEquals("$barfoo", "#set( $o = $bar + $foo )$o");
52          assertEvalEquals("1foo", "#set( $o = 1 + $foo )$o");
53      }
54  
55      public void testNoRef()
56      {
57          assertEvalEquals("bar1", "#set( $o = 'bar' + 1 )$o");
58      }
59  
60      public void testAll()
61      {
62          assertEvalEquals("foobar$bar1baz", "#set( $o = $foo + 'bar' + $bar + 1 + $baz )$o");
63      }
64  
65  }