1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    * 
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */ 
17  package org.apache.commons.betwixt.expression;
18  
19  import java.util.ArrayList;
20  import java.util.Collection;
21  import java.util.List;
22  
23  import junit.framework.TestCase;
24  
25  /**
26   * Tests for {@link CollectionUpdater}.
27   */
28  public class TestCollectionUpdater extends TestCase {
29      
30      private CollectionUpdater updater = CollectionUpdater.getInstance();
31      private Context context = new Context();
32     
33      protected void setUp() throws Exception {
34          super.setUp();
35          updater = CollectionUpdater.getInstance();
36          context = new Context();
37      }
38      
39      public void testUpdateNull() throws Exception {
40          context.setBean(null);
41          updater.update(context, null);
42          updater.update(context, "Whatever");
43      }
44  
45      public void testUpdateNotCollection() throws Exception {
46          context.setBean("Whatever");
47          updater.update(context, null);
48          updater.update(context, "Whatever");
49      }
50      
51      public void testUpdateCollection() throws Exception {
52          List list = new ArrayList();
53          context.setBean(list);
54          updater.update(context, null);
55          updater.update(context, "Whatever");
56          assertEquals("Updater updates the list with the value", 1, list.size());
57          updater.update(context, "Thus");
58          assertEquals("Updater updates the list with the value",  2, list.size());
59          assertEquals("Updater updates the list in order", "Whatever", list.get(0));
60          assertEquals("Updater updates the list in order", "Thus", list.get(1));
61      }
62  }