// Path: src/main/java/org/fest/util/Arrays.java
// public static @NotNull <T> T[] array(@NotNull T... values) {
//   return checkNotNull(values);
// }
// 
// Path: src/main/java/org/fest/util/Lists.java
// public static @NotNull <T> ArrayList<T> newArrayList(@NotNull T... elements) {
//   checkNotNull(elements);
//   ArrayList<T> list = newArrayList();
//   for (T e : elements) {
//     list.add(e);
//   }
//   return list;
// }
// 
// Path: src/main/java/org/fest/util/ToString.java
// public static @Nullable String toStringOf(@Nullable Object o) {
//   if (isArray(o)) {
//     return Arrays.format(o);
//   }
//   if (o instanceof Calendar) {
//     return toStringOf(o);
//   }
//   if (o instanceof Class<?>) {
//     return toStringOf((Class<?>) o);
//   }
//   if (o instanceof Collection<?>) {
//     return toStringOf((Collection<?>) o);
//   }
//   if (o instanceof Date) {
//     return toStringOf(o);
//   }
//   if (o instanceof Float) {
//     return toStringOf((Float) o);
//   }
//   if (o instanceof Long) {
//     return toStringOf((Long) o);
//   }
//   if (o instanceof File) {
//     return toStringOf((File) o);
//   }
//   if (o instanceof Map<?, ?>) {
//     return toStringOf((Map<?, ?>) o);
//   }
//   if (o instanceof String) {
//     return quote((String) o);
//   }
//   if (o instanceof Comparator) {
//     return toStringOf((Comparator<?>) o);
//   }
//   return o == null ? null : o.toString();
// }


import org.junit.Test;
import java.io.File;
import java.util.*;
import static junit.framework.Assert.assertFalse;
import static org.fest.util.Arrays.array;
import static org.fest.util.Lists.newArrayList;
import static org.fest.util.ToString.toStringOf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
  @Test
  public void should_quote_String() {
    assertEquals("'Hello'", ToString.toStringOf("Hello"));
  }

  @Test
  public void should_quote_empty_String() {
    assertEquals("''", ToString.toStringOf(""));
  }

  @Test
  public void should_return_toString_of_File() {
    final String path = "/someFile.txt";
    @SuppressWarnings("serial")
    File o = new File(path) {
      @Override
      public String getAbsolutePath() {
        return path;
      }
    };
    assertEquals(path, ToString.toStringOf(o));
  }

  @Test
  public void should_return_toString_of_Class_with_its_name() {
    assertEquals("java.lang.Object", ToString.toStringOf(Object.class));
  }

  @Test
  public void should_return_toString_of_Collection_of_String() {
// Path: src/main/java/org/fest/util/Arrays.java
// public static @NotNull <T> T[] array(@NotNull T... values) {
//   return checkNotNull(values);
// }
// 
// Path: src/main/java/org/fest/util/Lists.java
// public static @NotNull <T> ArrayList<T> newArrayList(@NotNull T... elements) {
//   checkNotNull(elements);
//   ArrayList<T> list = newArrayList();
//   for (T e : elements) {
//     list.add(e);
//   }
//   return list;
// }
// 
// Path: src/main/java/org/fest/util/ToString.java
// public static @Nullable String toStringOf(@Nullable Object o) {
//   if (isArray(o)) {
//     return Arrays.format(o);
//   }
//   if (o instanceof Calendar) {
//     return toStringOf(o);
//   }
//   if (o instanceof Class<?>) {
//     return toStringOf((Class<?>) o);
//   }
//   if (o instanceof Collection<?>) {
//     return toStringOf((Collection<?>) o);
//   }
//   if (o instanceof Date) {
//     return toStringOf(o);
//   }
//   if (o instanceof Float) {
//     return toStringOf((Float) o);
//   }
//   if (o instanceof Long) {
//     return toStringOf((Long) o);
//   }
//   if (o instanceof File) {
//     return toStringOf((File) o);
//   }
//   if (o instanceof Map<?, ?>) {
//     return toStringOf((Map<?, ?>) o);
//   }
//   if (o instanceof String) {
//     return quote((String) o);
//   }
//   if (o instanceof Comparator) {
//     return toStringOf((Comparator<?>) o);
//   }
//   return o == null ? null : o.toString();
// }


// Path: src/test/java/org/fest/util/ToString_toStringOf_Test.java
import org.junit.Test;
import java.io.File;
import java.util.*;
import static junit.framework.Assert.assertFalse;
import static org.fest.util.Arrays.array;
import static org.fest.util.Lists.newArrayList;
import static org.fest.util.ToString.toStringOf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;

  @Test
  public void should_quote_String() {
    assertEquals("'Hello'", ToString.toStringOf("Hello"));
  }

  @Test
  public void should_quote_empty_String() {
    assertEquals("''", ToString.toStringOf(""));
  }

  @Test
  public void should_return_toString_of_File() {
    final String path = "/someFile.txt";
    @SuppressWarnings("serial")
    File o = new File(path) {
      @Override
      public String getAbsolutePath() {
        return path;
      }
    };
    assertEquals(path, ToString.toStringOf(o));
  }

  @Test
  public void should_return_toString_of_Class_with_its_name() {
    assertEquals("java.lang.Object", ToString.toStringOf(Object.class));
  }

  @Test
  public void should_return_toString_of_Collection_of_String() {
    Collection<String> collection = newArrayList("s1", "s2");