11d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert/*
21d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * Copyright (C) 2007 The Guava Authors
31d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert *
41d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License");
51d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * you may not use this file except in compliance with the License.
61d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * You may obtain a copy of the License at
71d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert *
81d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * http://www.apache.org/licenses/LICENSE-2.0
91d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert *
101d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * Unless required by applicable law or agreed to in writing, software
111d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS,
121d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * See the License for the specific language governing permissions and
141d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * limitations under the License.
151d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert */
161d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
171d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertpackage com.google.common.collect;
181d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
191d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport static org.junit.contrib.truth.Truth.ASSERT;
201d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
211d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport com.google.common.annotations.GwtCompatible;
221d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport com.google.common.annotations.GwtIncompatible;
231d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport com.google.common.testing.NullPointerTester;
241d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
251d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport junit.framework.TestCase;
261d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
271d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport java.io.Serializable;
281d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport java.util.Arrays;
291d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport java.util.List;
301d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
311d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert/**
321d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * Unit test for {@code ObjectArrays}.
331d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert *
341d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * @author Kevin Bourrillion
351d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert */
361d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert@GwtCompatible(emulated = true)
371d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertpublic class ObjectArraysTest extends TestCase {
381d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
391d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  @GwtIncompatible("NullPointerTester")
401d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testNullPointerExceptions() throws Exception {
411d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    NullPointerTester tester = new NullPointerTester();
421d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    tester.testAllPublicStaticMethods(ObjectArrays.class);
431d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
441d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
451d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  @GwtIncompatible("ObjectArrays.newArray(Class, int)")
461d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testNewArray_fromClass_Empty() {
471d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] empty = ObjectArrays.newArray(String.class, 0);
481d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(String[].class, empty.getClass());
491d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(0, empty.length);
501d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
511d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
521d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  @GwtIncompatible("ObjectArrays.newArray(Class, int)")
531d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testNewArray_fromClass_Nonempty() {
541d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] array = ObjectArrays.newArray(String.class, 2);
551d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(String[].class, array.getClass());
561d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(2, array.length);
571d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertNull(array[0]);
581d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
591d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
601d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  @GwtIncompatible("ObjectArrays.newArray(Class, int)")
611d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testNewArray_fromClass_OfArray() {
621d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[][] array = ObjectArrays.newArray(String[].class, 1);
631d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(String[][].class, array.getClass());
641d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(1, array.length);
651d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertNull(array[0]);
661d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
671d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
681d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testNewArray_fromArray_Empty() {
691d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] in = new String[0];
701d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] empty = ObjectArrays.newArray(in, 0);
711d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(0, empty.length);
721d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
731d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
741d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testNewArray_fromArray_Nonempty() {
751d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] array = ObjectArrays.newArray(new String[0], 2);
761d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(String[].class, array.getClass());
771d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(2, array.length);
781d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertNull(array[0]);
791d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
801d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
811d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testNewArray_fromArray_OfArray() {
821d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[][] array = ObjectArrays.newArray(new String[0][0], 1);
831d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(String[][].class, array.getClass());
841d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(1, array.length);
851d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertNull(array[0]);
861d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
871d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
881d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  @GwtIncompatible("ObjectArrays.concat(Object[], Object[], Class)")
891d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testConcatEmptyEmpty() {
901d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] result
911d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert        = ObjectArrays.concat(new String[0], new String[0], String.class);
921d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(String[].class, result.getClass());
931d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(0, result.length);
941d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
951d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
961d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  @GwtIncompatible("ObjectArrays.concat(Object[], Object[], Class)")
971d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testConcatEmptyNonempty() {
981d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] result = ObjectArrays.concat(
991d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert        new String[0], new String[] { "a", "b" }, String.class);
1001d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(String[].class, result.getClass());
1011d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    ASSERT.that(result).hasContentsInOrder("a", "b");
1021d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1031d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1041d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  @GwtIncompatible("ObjectArrays.concat(Object[], Object[], Class)")
1051d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testConcatNonemptyEmpty() {
1061d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] result = ObjectArrays.concat(
1071d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert        new String[] { "a", "b" }, new String[0], String.class);
1081d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(String[].class, result.getClass());
1091d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    ASSERT.that(result).hasContentsInOrder("a", "b");
1101d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1111d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1121d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  @GwtIncompatible("ObjectArrays.concat(Object[], Object[], Class)")
1131d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testConcatBasic() {
1141d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] result = ObjectArrays.concat(
1151d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert        new String[] { "a", "b" }, new String[] { "c", "d" }, String.class);
1161d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(String[].class, result.getClass());
1171d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    ASSERT.that(result).hasContentsInOrder("a", "b", "c", "d");
1181d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1191d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1201d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  @GwtIncompatible("ObjectArrays.concat(Object[], Object[], Class)")
1211d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testConcatWithMoreGeneralType() {
1221d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    Serializable[] result
1231d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert        = ObjectArrays.concat(new String[0], new String[0], Serializable.class);
1241d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(Serializable[].class, result.getClass());
1251d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1261d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1271d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testToArrayImpl1() {
1281d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    doTestToArrayImpl1(Lists.<Integer>newArrayList());
1291d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    doTestToArrayImpl1(Lists.newArrayList(1));
1301d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    doTestToArrayImpl1(Lists.newArrayList(1, null, 3));
1311d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1321d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1331d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  private void doTestToArrayImpl1(List<Integer> list) {
1341d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    Object[] reference = list.toArray();
1351d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    Object[] target = ObjectArrays.toArrayImpl(list);
1361d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(reference.getClass(), target.getClass());
1371d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertTrue(Arrays.equals(reference, target));
1381d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1391d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1401d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testToArrayImpl2() {
1411d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    doTestToArrayImpl2(Lists.<Integer>newArrayList(), new Integer[0], false);
1421d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    doTestToArrayImpl2(Lists.<Integer>newArrayList(), new Integer[1], true);
1431d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1441d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    doTestToArrayImpl2(Lists.newArrayList(1), new Integer[0], false);
1451d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    doTestToArrayImpl2(Lists.newArrayList(1), new Integer[1], true);
1461d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    doTestToArrayImpl2(Lists.newArrayList(1), new Integer[] { 2, 3 }, true);
1471d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1481d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    doTestToArrayImpl2(Lists.newArrayList(1, null, 3), new Integer[0], false);
1491d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    doTestToArrayImpl2(Lists.newArrayList(1, null, 3), new Integer[2], false);
1501d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    doTestToArrayImpl2(Lists.newArrayList(1, null, 3), new Integer[3], true);
1511d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1521d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1531d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  private void doTestToArrayImpl2(List<Integer> list, Integer[] array1,
1541d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert      boolean expectModify) {
1551d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    Integer[] starting = Platform.clone(array1);
1561d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    Integer[] array2 = Platform.clone(array1);
1571d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    Object[] reference = list.toArray(array1);
1581d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1591d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    Object[] target = ObjectArrays.toArrayImpl(list, array2);
1601d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1611d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertEquals(reference.getClass(), target.getClass());
1621d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertTrue(Arrays.equals(reference, target));
1631d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertTrue(Arrays.equals(reference, target));
1641d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1651d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    Object[] expectedArray1 = expectModify ? reference : starting;
1661d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    Object[] expectedArray2 = expectModify ? target : starting;
1671d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertTrue(Arrays.equals(expectedArray1, array1));
1681d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    assertTrue(Arrays.equals(expectedArray2, array2));
1691d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1701d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1711d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testPrependZeroElements() {
1721d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] result = ObjectArrays.concat("foo", new String[] {});
1731d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    ASSERT.that(result).hasContentsInOrder("foo");
1741d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1751d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1761d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testPrependOneElement() {
1771d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] result = ObjectArrays.concat("foo", new String[]{ "bar" });
1781d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    ASSERT.that(result).hasContentsInOrder("foo", "bar");
1791d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1801d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1811d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testPrependTwoElements() {
1821d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] result = ObjectArrays.concat("foo", new String[]{ "bar", "baz" });
1831d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    ASSERT.that(result).hasContentsInOrder("foo", "bar", "baz");
1841d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1851d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1861d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testAppendZeroElements() {
1871d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] result = ObjectArrays.concat(new String[] {}, "foo");
1881d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    ASSERT.that(result).hasContentsInOrder("foo");
1891d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1901d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1911d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testAppendOneElement() {
1921d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] result = ObjectArrays.concat(new String[]{ "foo" }, "bar");
1931d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    ASSERT.that(result).hasContentsInOrder("foo", "bar");
1941d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
1951d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
1961d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  public void testAppendTwoElements() {
1971d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    String[] result = ObjectArrays.concat(new String[]{ "foo", "bar" }, "baz");
1981d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    ASSERT.that(result).hasContentsInOrder("foo", "bar", "baz");
1991d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  }
2001d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert}
201