ForMapMultimapAsMapImplementsMapTest.java revision 1d580d0f6ee4f21eb309ba7b509d2c6d671c4044
1/*
2 * Copyright (C) 2008 The Guava Authors
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
17package com.google.common.collect;
18
19import com.google.common.annotations.GwtCompatible;
20import com.google.common.collect.testing.MapInterfaceTest;
21
22import java.util.Collection;
23import java.util.Map;
24
25/**
26 * Test {@link Multimap#asMap()} for a {@link Multimaps#forMap} multimap with
27 * {@link MapInterfaceTest}.
28 *
29 * @author Jared Levy
30 */
31@GwtCompatible
32public class ForMapMultimapAsMapImplementsMapTest
33    extends AbstractMultimapAsMapImplementsMapTest {
34
35  public ForMapMultimapAsMapImplementsMapTest() {
36    super(true, true, true);
37  }
38
39  @Override protected Map<String, Collection<Integer>> makeEmptyMap() {
40    Map<String, Integer> map = Maps.newHashMap();
41    return Multimaps.forMap(map).asMap();
42  }
43
44  @Override protected Map<String, Collection<Integer>> makePopulatedMap() {
45    Map<String, Integer> map = Maps.newHashMap();
46    map.put("foo", 1);
47    map.put("bar", 2);
48    map.put("cow", 3);
49    return Multimaps.forMap(map).asMap();
50  }
51
52  @Override public void testEntrySetRemoveAllNullFromEmpty() {
53    try {
54      super.testEntrySetRemoveAllNullFromEmpty();
55    } catch (RuntimeException tolerated) {
56      // GWT's HashMap.entrySet().removeAll(null) doesn't throws NPE.
57    }
58  }
59
60  @Override public void testEntrySetRetainAllNullFromEmpty() {
61    try {
62      super.testEntrySetRetainAllNullFromEmpty();
63    } catch (RuntimeException tolerated) {
64      // GWT's HashMap.entrySet().retainAll(null) doesn't throws NPE.
65    }
66  }
67
68  @Override public void testKeySetRemoveAllNullFromEmpty() {
69    try {
70      super.testKeySetRemoveAllNullFromEmpty();
71    } catch (RuntimeException tolerated) {
72      // GWT's HashMap.keySet().removeAll(null) doesn't throws NPE.
73    }
74  }
75
76  @Override public void testKeySetRetainAllNullFromEmpty() {
77    try {
78      super.testKeySetRetainAllNullFromEmpty();
79    } catch (RuntimeException tolerated) {
80      // GWT's HashMap.keySet().retainAll(null) doesn't throws NPE.
81    }
82  }
83
84  @Override public void testValuesRemoveAllNullFromEmpty() {
85    try {
86      super.testValuesRemoveAllNullFromEmpty();
87    } catch (RuntimeException tolerated) {
88      // GWT's HashMap.values().removeAll(null) doesn't throws NPE.
89    }
90  }
91
92  @Override public void testValuesRetainAllNullFromEmpty() {
93    try {
94      super.testValuesRemoveAllNullFromEmpty();
95    } catch (RuntimeException tolerated) {
96      // GWT's HashMap.values().retainAll(null) doesn't throws NPE.
97    }
98  }
99}
100