1   /*
2    * Copyright 2005,2009 Ivan SZKIBA
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.ini4j;
17  
18  import org.easymock.classextension.EasyMock;
19  
20  import org.ini4j.sample.Dwarf;
21  import org.ini4j.sample.Dwarfs;
22  
23  import static org.junit.Assert.*;
24  
25  import org.junit.Test;
26  
27  /**
28   * JUnit test of IniParser class.
29   */
30  public class IniHandlerTest
31  {
32      private static final String DOPEY_WEIGHT = "${bashful/weight}";
33      private static final String DOPEY_HEIGHT = "${doc/height}";
34      private static final String GRUMPY_HEIGHT = "${dopey/height}";
35      private static final String SLEEPY_HEIGHT = "${doc/height}8";
36      private static final String SNEEZY_HOME_PAGE = "${happy/homePage}/~sneezy";
37  
38      @Test public void testHandler() throws Exception
39      {
40          IniParser parser = new IniParser();
41          IniHandler handler;
42  
43          handler = newHandler();
44          EasyMock.replay(handler);
45          parser.parse(Helper.getResourceStream(Helper.DWARFS_INI), handler);
46          EasyMock.verify(handler);
47          handler = newHandler();
48          EasyMock.replay(handler);
49          parser.parseXML(Helper.getResourceStream(Helper.DWARFS_XML), handler);
50          EasyMock.verify(handler);
51      }
52  
53      protected IniHandler newHandler() throws Exception
54      {
55          IniHandler handler = EasyMock.createMock(IniHandler.class);
56          Dwarf dwarf;
57  
58          handler.startIni();
59          dwarf = DwarfsData.bashful;
60          handler.startSection(Dwarfs.PROP_BASHFUL);
61          handler.handleOption(Dwarf.PROP_WEIGHT, String.valueOf(dwarf.getWeight()));
62          handler.handleOption(Dwarf.PROP_HEIGHT, String.valueOf(dwarf.getHeight()));
63          handler.handleOption(Dwarf.PROP_AGE, String.valueOf(dwarf.getAge()));
64          handler.handleOption(Dwarf.PROP_HOME_PAGE, String.valueOf(dwarf.getHomePage()));
65          handler.handleOption(Dwarf.PROP_HOME_DIR, String.valueOf(dwarf.getHomeDir()));
66          handler.endSection();
67          dwarf = DwarfsData.doc;
68          handler.startSection(Dwarfs.PROP_DOC);
69          handler.handleOption(Dwarf.PROP_WEIGHT, String.valueOf(dwarf.getWeight()));
70          handler.handleOption(Dwarf.PROP_HEIGHT, String.valueOf(dwarf.getHeight()));
71          handler.handleOption(Dwarf.PROP_AGE, String.valueOf(dwarf.getAge()));
72          handler.handleOption(Dwarf.PROP_HOME_PAGE, String.valueOf(dwarf.getHomePage()));
73          handler.handleOption(Dwarf.PROP_HOME_DIR, String.valueOf(dwarf.getHomeDir()));
74          handler.endSection();
75          dwarf = DwarfsData.dopey;
76          handler.startSection(Dwarfs.PROP_DOPEY);
77          handler.handleOption(Dwarf.PROP_WEIGHT, DOPEY_WEIGHT);
78          handler.handleOption(Dwarf.PROP_HEIGHT, DOPEY_HEIGHT);
79          handler.handleOption(Dwarf.PROP_AGE, String.valueOf(dwarf.getAge()));
80          handler.handleOption(Dwarf.PROP_HOME_PAGE, String.valueOf(dwarf.getHomePage()));
81          handler.handleOption(Dwarf.PROP_HOME_DIR, String.valueOf(dwarf.getHomeDir()));
82          handler.endSection();
83          dwarf = DwarfsData.grumpy;
84          handler.startSection(Dwarfs.PROP_GRUMPY);
85          handler.handleOption(Dwarf.PROP_WEIGHT, String.valueOf(dwarf.getWeight()));
86          handler.handleOption(Dwarf.PROP_HEIGHT, GRUMPY_HEIGHT);
87          handler.handleOption(Dwarf.PROP_AGE, String.valueOf(dwarf.getAge()));
88          handler.handleOption(Dwarf.PROP_HOME_PAGE, String.valueOf(dwarf.getHomePage()));
89          handler.handleOption(Dwarf.PROP_HOME_DIR, String.valueOf(dwarf.getHomeDir()));
90          handler.endSection();
91          dwarf = DwarfsData.happy;
92          handler.startSection(Dwarfs.PROP_HAPPY);
93          handler.handleOption(Dwarf.PROP_WEIGHT, String.valueOf(dwarf.getWeight()));
94          handler.handleOption(Dwarf.PROP_HEIGHT, String.valueOf(dwarf.getHeight()));
95          handler.handleOption(Dwarf.PROP_AGE, String.valueOf(dwarf.getAge()));
96          handler.handleOption(EasyMock.eq(Dwarf.PROP_HOME_PAGE), (String) EasyMock.anyObject());
97          handler.handleOption(Dwarf.PROP_HOME_DIR, String.valueOf(dwarf.getHomeDir()));
98          handler.endSection();
99          dwarf = DwarfsData.sleepy;
100         handler.startSection(Dwarfs.PROP_SLEEPY);
101         handler.handleOption(Dwarf.PROP_WEIGHT, String.valueOf(dwarf.getWeight()));
102         handler.handleOption(Dwarf.PROP_HEIGHT, SLEEPY_HEIGHT);
103         handler.handleOption(Dwarf.PROP_AGE, String.valueOf(dwarf.getAge()));
104         handler.handleOption(Dwarf.PROP_HOME_PAGE, String.valueOf(dwarf.getHomePage()));
105         handler.handleOption(Dwarf.PROP_HOME_DIR, String.valueOf(dwarf.getHomeDir()));
106         handler.handleOption(Dwarf.PROP_FORTUNE_NUMBER, String.valueOf(dwarf.getFortuneNumber()[0]));
107         handler.endSection();
108         dwarf = DwarfsData.sneezy;
109         handler.startSection(Dwarfs.PROP_SNEEZY);
110         handler.handleOption(Dwarf.PROP_WEIGHT, String.valueOf(dwarf.getWeight()));
111         handler.handleOption(Dwarf.PROP_HEIGHT, String.valueOf(dwarf.getHeight()));
112         handler.handleOption(Dwarf.PROP_AGE, String.valueOf(dwarf.getAge()));
113         handler.handleOption(Dwarf.PROP_HOME_PAGE, SNEEZY_HOME_PAGE);
114         handler.handleOption(Dwarf.PROP_HOME_DIR, String.valueOf(dwarf.getHomeDir()));
115         handler.handleOption(Dwarf.PROP_FORTUNE_NUMBER, String.valueOf(dwarf.getFortuneNumber()[0]));
116         handler.handleOption(Dwarf.PROP_FORTUNE_NUMBER, String.valueOf(dwarf.getFortuneNumber()[1]));
117         handler.handleOption(Dwarf.PROP_FORTUNE_NUMBER, String.valueOf(dwarf.getFortuneNumber()[2]));
118         handler.handleOption(Dwarf.PROP_FORTUNE_NUMBER, String.valueOf(dwarf.getFortuneNumber()[3]));
119         handler.endSection();
120         dwarf = DwarfsData.happy;
121         handler.startSection(Dwarfs.PROP_HAPPY);
122         handler.handleOption(Dwarf.PROP_HOME_PAGE, String.valueOf(dwarf.getHomePage()));
123         handler.endSection();
124         handler.endIni();
125 
126         return handler;
127     }
128 }