1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Copyright (C) 2008 The Guava Authors 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * you may not use this file except in compliance with the License. 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * You may obtain a copy of the License at 7a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang * 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * See the License for the specific language governing permissions and 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * limitations under the License. 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Projectpackage com.google.common.collect.testing.testers; 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Projectimport static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Projectimport com.google.common.collect.testing.MinimalSet; 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Projectimport com.google.common.collect.testing.features.CollectionFeature; 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Projectimport com.google.common.collect.testing.features.CollectionSize; 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Projectimport java.util.ArrayList; 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Projectimport java.util.Collection; 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Projectimport java.util.List; 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/** 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Tests {@link List#equals}. 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * <p>This class is GWT compatible. 3377f63d23f7d380b0ff02c18fd6a154ab9063128aDavid 'Digit' Turner * 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @author George van den Driessche 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Projectpublic class ListEqualsTester<E> extends AbstractListTester<E> { 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project public void testEquals_otherListWithSameElements() { 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project assertTrue( 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project "A List should equal any other List containing the same elements.", 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project getList().equals(new ArrayList<E>(getSampleElements()))); 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project @CollectionSize.Require(absent = CollectionSize.ZERO) 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project public void testEquals_otherListWithDifferentElements() { 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project ArrayList<E> other = new ArrayList<E>(getSampleElements()); 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project other.set(other.size() / 2, getSubjectGenerator().samples().e3); 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project assertFalse( 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project "A List should not equal another List containing different elements.", 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project getList().equals(other)); 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project @CollectionSize.Require(absent = CollectionSize.ZERO) 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project public void testEquals_otherListContainingNull() { 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project List<E> other = new ArrayList<E>(getSampleElements()); 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project other.set(other.size() / 2, null); 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project assertFalse("Two Lists should not be equal if exactly one of them has " 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project + "null at a given index.", 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project getList().equals(other)); 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project @CollectionSize.Require(absent = CollectionSize.ZERO) 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project @CollectionFeature.Require(ALLOWS_NULL_VALUES) 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project public void testEquals_containingNull() { 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project ArrayList<E> elements = new ArrayList<E>(getSampleElements()); 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project elements.set(elements.size() / 2, null); 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project collection = getSubjectGenerator().create(elements.toArray()); 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project List<E> other = new ArrayList<E>(getSampleElements()); 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project assertFalse("Two Lists should not be equal if exactly one of them has " 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project + "null at a given index.", 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project getList().equals(other)); 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project @CollectionSize.Require(absent = CollectionSize.ZERO) 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project public void testEquals_shorterList() { 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project Collection<E> fewerElements = getSampleElements(getNumElements() - 1); 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project assertFalse("Lists of different sizes should not be equal.", 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project getList().equals(new ArrayList<E>(fewerElements))); 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project public void testEquals_longerList() { 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project Collection<E> moreElements = getSampleElements(getNumElements() + 1); 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project assertFalse("Lists of different sizes should not be equal.", 83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project getList().equals(new ArrayList<E>(moreElements))); 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project public void testEquals_set() { 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project assertFalse("A List should never equal a Set.", 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project getList().equals(MinimalSet.from(getList()))); 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project} 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project