001/*
002 * Copyright (C) 2007 The Guava Authors
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
017package com.google.common.collect.testing.testers;
018
019import com.google.common.annotations.GwtCompatible;
020import com.google.common.collect.testing.AbstractCollectionTester;
021import org.junit.Ignore;
022
023/**
024 * Tests {@link java.util.Collection#equals}.
025 *
026 * @author George van den Driessche
027 */
028@GwtCompatible
029@Ignore("test runners must not instantiate and run this directly, only via suites we build")
030// @Ignore affects the Android test runner, which respects JUnit 4 annotations on JUnit 3 tests.
031@SuppressWarnings("JUnit4ClassUsedInJUnit3")
032public class CollectionEqualsTester<E> extends AbstractCollectionTester<E> {
033
034  @SuppressWarnings({
035    "SelfEquals", // TODO(cpovirk): Consider using EqualsTester from Guava.
036    "UndefinedEquals", // Comparisons of an object to itself *are* defined.
037  })
038  public void testEquals_self() {
039    assertTrue("An Object should be equal to itself.", collection.equals(collection));
040  }
041
042  // Comparisons to null *are* defined.
043  @SuppressWarnings("UndefinedEquals")
044  public void testEquals_null() {
045    // noinspection ObjectEqualsNull
046    assertFalse("An object should not be equal to null.", collection.equals(null));
047  }
048
049  // A collection should essentially never be equal to a non-collection.
050  @SuppressWarnings("UndefinedEquals")
051  public void testEquals_notACollection() {
052    // noinspection EqualsBetweenInconvertibleTypes
053    assertFalse(
054        "A Collection should never equal an object that is not a Collection.",
055        collection.equals("huh?"));
056  }
057}