001 /*
002 * Copyright 2005,2009 Ivan SZKIBA
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.ini4j;
017
018 import static org.junit.Assert.assertEquals;
019 import static org.junit.Assert.assertNull;
020 import static org.junit.Assert.assertTrue;
021
022 import org.junit.Test;
023
024 import java.util.HashMap;
025 import java.util.Map;
026
027 public class CommonMultiMapTest extends Ini4jCase
028 {
029 private static final String KEY = "key";
030 private static final String VALUE = "value";
031 private static final String COMMENT = "comment";
032
033 @Test public void testClearAndRemove() throws Exception
034 {
035 CommonMultiMap<String, String> map = new CommonMultiMap<String, String>();
036
037 assertNull(map.removeComment(KEY));
038
039 //
040 map.put(KEY, VALUE);
041 map.clear();
042 assertTrue(map.isEmpty());
043
044 //
045 map.put(KEY, VALUE);
046 map.remove(KEY);
047 assertNull(map.getComment(KEY));
048
049 //
050 map.put(KEY, VALUE);
051 map.remove(KEY, 0);
052 assertNull(map.getComment(KEY));
053
054 //
055 map.add(KEY, VALUE);
056 map.add(KEY, VALUE);
057 map.putComment(KEY, COMMENT);
058 map.remove(KEY, 0);
059 assertEquals(COMMENT, map.getComment(KEY));
060
061 //
062 map.put(KEY, VALUE);
063 map.putComment(KEY, COMMENT);
064 assertEquals(COMMENT, map.getComment(KEY));
065 map.clear();
066 assertNull(map.getComment(KEY));
067
068 //
069 map.put(KEY, VALUE);
070 map.putComment(KEY, COMMENT);
071 map.remove(KEY);
072 assertNull(map.getComment(KEY));
073
074 //
075 map.put(KEY, VALUE);
076 map.putComment(KEY, COMMENT);
077 assertEquals(COMMENT, map.removeComment(KEY));
078 assertNull(map.getComment(KEY));
079
080 //
081 map.put(KEY, VALUE);
082 map.putComment(KEY, COMMENT);
083 map.remove(KEY, 0);
084 assertNull(map.getComment(KEY));
085 }
086
087 @Test public void testPutAll() throws Exception
088 {
089 CommonMultiMap<String, String> map = new CommonMultiMap<String, String>();
090 CommonMultiMap<String, String> copy = new CommonMultiMap<String, String>();
091
092 map.put(KEY, VALUE);
093 map.putComment(KEY, COMMENT);
094 copy.putAll(map);
095 assertEquals(COMMENT, copy.getComment(KEY));
096 Map<String, String> simple = new HashMap<String, String>();
097
098 simple.put(KEY, VALUE);
099 copy.clear();
100 assertTrue(copy.isEmpty());
101 copy.putAll(simple);
102 assertNull(copy.getComment(KEY));
103 assertEquals(VALUE, copy.get(KEY));
104
105 //
106 map = new CommonMultiMap<String, String>();
107 map.put(KEY, VALUE);
108 copy.clear();
109 copy.putAll(map);
110 assertEquals(VALUE, copy.get(KEY));
111 assertNull(copy.getComment(KEY));
112 }
113 }