10888a09821a98ac0680fad765217302858e70fa4Paul Duffin/* 20888a09821a98ac0680fad765217302858e70fa4Paul Duffin * Copyright (C) 2013 The Guava Authors 30888a09821a98ac0680fad765217302858e70fa4Paul Duffin * 40888a09821a98ac0680fad765217302858e70fa4Paul Duffin * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 50888a09821a98ac0680fad765217302858e70fa4Paul Duffin * in compliance with the License. You may obtain a copy of the License at 60888a09821a98ac0680fad765217302858e70fa4Paul Duffin * 70888a09821a98ac0680fad765217302858e70fa4Paul Duffin * http://www.apache.org/licenses/LICENSE-2.0 80888a09821a98ac0680fad765217302858e70fa4Paul Duffin * 90888a09821a98ac0680fad765217302858e70fa4Paul Duffin * Unless required by applicable law or agreed to in writing, software distributed under the License 100888a09821a98ac0680fad765217302858e70fa4Paul Duffin * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 110888a09821a98ac0680fad765217302858e70fa4Paul Duffin * or implied. See the License for the specific language governing permissions and limitations under 120888a09821a98ac0680fad765217302858e70fa4Paul Duffin * the License. 130888a09821a98ac0680fad765217302858e70fa4Paul Duffin */ 140888a09821a98ac0680fad765217302858e70fa4Paul Duffin 150888a09821a98ac0680fad765217302858e70fa4Paul Duffinpackage com.google.common.collect.testing.google; 160888a09821a98ac0680fad765217302858e70fa4Paul Duffin 170888a09821a98ac0680fad765217302858e70fa4Paul Duffinimport static com.google.common.collect.testing.features.MapFeature.SUPPORTS_REMOVE; 180888a09821a98ac0680fad765217302858e70fa4Paul Duffin 190888a09821a98ac0680fad765217302858e70fa4Paul Duffinimport com.google.common.annotations.GwtCompatible; 200888a09821a98ac0680fad765217302858e70fa4Paul Duffinimport com.google.common.collect.SortedSetMultimap; 210888a09821a98ac0680fad765217302858e70fa4Paul Duffinimport com.google.common.collect.testing.features.MapFeature; 220888a09821a98ac0680fad765217302858e70fa4Paul Duffin 230888a09821a98ac0680fad765217302858e70fa4Paul Duffinimport java.util.ArrayList; 240888a09821a98ac0680fad765217302858e70fa4Paul Duffinimport java.util.Collection; 250888a09821a98ac0680fad765217302858e70fa4Paul Duffinimport java.util.List; 260888a09821a98ac0680fad765217302858e70fa4Paul Duffinimport java.util.SortedSet; 270888a09821a98ac0680fad765217302858e70fa4Paul Duffin 280888a09821a98ac0680fad765217302858e70fa4Paul Duffin/** 290888a09821a98ac0680fad765217302858e70fa4Paul Duffin * Testers for {@link SortedSetMultimap#asMap}. 300888a09821a98ac0680fad765217302858e70fa4Paul Duffin * 310888a09821a98ac0680fad765217302858e70fa4Paul Duffin * @author Louis Wasserman 320888a09821a98ac0680fad765217302858e70fa4Paul Duffin * @param <K> The key type of the tested multimap. 330888a09821a98ac0680fad765217302858e70fa4Paul Duffin * @param <V> The value type of the tested multimap. 340888a09821a98ac0680fad765217302858e70fa4Paul Duffin */ 350888a09821a98ac0680fad765217302858e70fa4Paul Duffin@GwtCompatible 360888a09821a98ac0680fad765217302858e70fa4Paul Duffinpublic class SortedSetMultimapAsMapTester<K, V> 370888a09821a98ac0680fad765217302858e70fa4Paul Duffin extends AbstractMultimapTester<K, V, SortedSetMultimap<K, V>> { 380888a09821a98ac0680fad765217302858e70fa4Paul Duffin public void testAsMapValuesImplementSortedSet() { 390888a09821a98ac0680fad765217302858e70fa4Paul Duffin for (Collection<V> valueCollection : multimap().asMap().values()) { 400888a09821a98ac0680fad765217302858e70fa4Paul Duffin SortedSet<V> valueSet = (SortedSet<V>) valueCollection; 410888a09821a98ac0680fad765217302858e70fa4Paul Duffin assertEquals(multimap().valueComparator(), valueSet.comparator()); 420888a09821a98ac0680fad765217302858e70fa4Paul Duffin } 430888a09821a98ac0680fad765217302858e70fa4Paul Duffin } 440888a09821a98ac0680fad765217302858e70fa4Paul Duffin 450888a09821a98ac0680fad765217302858e70fa4Paul Duffin public void testAsMapGetImplementsSortedSet() { 460888a09821a98ac0680fad765217302858e70fa4Paul Duffin for (K key : multimap().keySet()) { 470888a09821a98ac0680fad765217302858e70fa4Paul Duffin SortedSet<V> valueSet = (SortedSet<V>) multimap().asMap().get(key); 480888a09821a98ac0680fad765217302858e70fa4Paul Duffin assertEquals(multimap().valueComparator(), valueSet.comparator()); 490888a09821a98ac0680fad765217302858e70fa4Paul Duffin } 500888a09821a98ac0680fad765217302858e70fa4Paul Duffin } 510888a09821a98ac0680fad765217302858e70fa4Paul Duffin 520888a09821a98ac0680fad765217302858e70fa4Paul Duffin @MapFeature.Require(SUPPORTS_REMOVE) 530888a09821a98ac0680fad765217302858e70fa4Paul Duffin public void testAsMapRemoveImplementsSortedSet() { 540888a09821a98ac0680fad765217302858e70fa4Paul Duffin List<K> keys = new ArrayList<K>(multimap().keySet()); 550888a09821a98ac0680fad765217302858e70fa4Paul Duffin for (K key : keys) { 560888a09821a98ac0680fad765217302858e70fa4Paul Duffin resetCollection(); 570888a09821a98ac0680fad765217302858e70fa4Paul Duffin SortedSet<V> valueSet = (SortedSet<V>) multimap().asMap().remove(key); 580888a09821a98ac0680fad765217302858e70fa4Paul Duffin assertEquals(multimap().valueComparator(), valueSet.comparator()); 590888a09821a98ac0680fad765217302858e70fa4Paul Duffin } 600888a09821a98ac0680fad765217302858e70fa4Paul Duffin } 610888a09821a98ac0680fad765217302858e70fa4Paul Duffin} 62