/* * Copyright (C) 2008 The Guava Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.common.collect.testing; import static com.google.common.collect.testing.Helpers.NullsBeforeB; import static com.google.common.collect.testing.Helpers.testComparator; import com.google.common.annotations.GwtCompatible; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import junit.framework.AssertionFailedError; import junit.framework.TestCase; /** * Unit test for {@link Helpers}. * * @author Chris Povirk */ @GwtCompatible public class HelpersTest extends TestCase { public void testNullsBeforeB() { testComparator(NullsBeforeB.INSTANCE, "a", "azzzzzz", null, "b", "c"); } public void testIsEmpty_iterable() { List<Object> list = new ArrayList<Object>(); Helpers.assertEmpty(list); Helpers.assertEmpty(new Iterable<Object>() { @Override public Iterator<Object> iterator() { return Collections.emptyList().iterator(); } }); list.add("a"); try { Helpers.assertEmpty(list); throw new Error(); } catch (AssertionFailedError expected) { } try { Helpers.assertEmpty(new Iterable<String>() { @Override public Iterator<String> iterator() { return Collections.singleton("a").iterator(); } }); throw new Error(); } catch (AssertionFailedError expected) { } } public void testIsEmpty_map() { Map<Object, Object> map = new HashMap<Object, Object>(); Helpers.assertEmpty(map); map.put("a", "b"); try { Helpers.assertEmpty(map); throw new Error(); } catch (AssertionFailedError expected) { } } public void testAssertEqualInOrder() { List<?> list = Arrays.asList("a", "b", "c"); Helpers.assertEqualInOrder(list, list); List<?> fewer = Arrays.asList("a", "b"); try { Helpers.assertEqualInOrder(list, fewer); throw new Error(); } catch (AssertionFailedError expected) { } try { Helpers.assertEqualInOrder(fewer, list); throw new Error(); } catch (AssertionFailedError expected) { } List<?> differentOrder = Arrays.asList("a", "c", "b"); try { Helpers.assertEqualInOrder(list, differentOrder); throw new Error(); } catch (AssertionFailedError expected) { } List<?> differentContents = Arrays.asList("a", "b", "C"); try { Helpers.assertEqualInOrder(list, differentContents); throw new Error(); } catch (AssertionFailedError expected) { } } public void testAssertContentsInOrder() { List<?> list = Arrays.asList("a", "b", "c"); Helpers.assertContentsInOrder(list, "a", "b", "c"); try { Helpers.assertContentsInOrder(list, "a", "b"); throw new Error(); } catch (AssertionFailedError expected) { } try { Helpers.assertContentsInOrder(list, "a", "b", "c", "d"); throw new Error(); } catch (AssertionFailedError expected) { } try { Helpers.assertContentsInOrder(list, "a", "c", "b"); throw new Error(); } catch (AssertionFailedError expected) { } try { Helpers.assertContentsInOrder(list, "a", "B", "c"); throw new Error(); } catch (AssertionFailedError expected) { } } public void testAssertContains() { List<?> list = Arrays.asList("a", "b"); Helpers.assertContains(list, "a"); Helpers.assertContains(list, "b"); try { Helpers.assertContains(list, "c"); throw new Error(); } catch (AssertionFailedError expected) { } } public void testAssertContainsAllOf() { List<?> list = Arrays.asList("a", "a", "b", "c"); Helpers.assertContainsAllOf(list, "a"); Helpers.assertContainsAllOf(list, "a", "a"); Helpers.assertContainsAllOf(list, "a", "b", "c"); Helpers.assertContainsAllOf(list, "a", "b", "c", "a"); try { Helpers.assertContainsAllOf(list, "d"); throw new Error(); } catch (AssertionFailedError expected) { } try { Helpers.assertContainsAllOf(list, "a", "b", "c", "d"); throw new Error(); } catch (AssertionFailedError expected) { } try { Helpers.assertContainsAllOf(list, "a", "a", "a"); throw new Error(); } catch (AssertionFailedError expected) { } } }