public void testGet_collections() { assertEquals(ImmutableSet.of().iterator(), ArbitraryInstances.get(Iterator.class)); assertFalse(ArbitraryInstances.get(PeekingIterator.class).hasNext()); assertFalse(ArbitraryInstances.get(ListIterator.class).hasNext()); assertEquals(ImmutableSet.of(), ArbitraryInstances.get(Iterable.class)); assertEquals(ImmutableSet.of(), ArbitraryInstances.get(Set.class)); assertEquals(ImmutableSet.of(), ArbitraryInstances.get(ImmutableSet.class)); assertEquals(ImmutableSortedSet.of(), ArbitraryInstances.get(SortedSet.class)); assertEquals(ImmutableSortedSet.of(), ArbitraryInstances.get(ImmutableSortedSet.class)); assertEquals(ImmutableList.of(), ArbitraryInstances.get(Collection.class)); assertEquals(ImmutableList.of(), ArbitraryInstances.get(ImmutableCollection.class)); assertEquals(ImmutableList.of(), ArbitraryInstances.get(List.class)); assertEquals(ImmutableList.of(), ArbitraryInstances.get(ImmutableList.class)); assertEquals(ImmutableMap.of(), ArbitraryInstances.get(Map.class)); assertEquals(ImmutableMap.of(), ArbitraryInstances.get(ImmutableMap.class)); assertEquals(ImmutableSortedMap.of(), ArbitraryInstances.get(SortedMap.class)); assertEquals(ImmutableSortedMap.of(), ArbitraryInstances.get(ImmutableSortedMap.class)); assertEquals(ImmutableMultiset.of(), ArbitraryInstances.get(Multiset.class)); assertEquals(ImmutableMultiset.of(), ArbitraryInstances.get(ImmutableMultiset.class)); assertTrue(ArbitraryInstances.get(SortedMultiset.class).isEmpty()); assertEquals(ImmutableMultimap.of(), ArbitraryInstances.get(Multimap.class)); assertEquals(ImmutableMultimap.of(), ArbitraryInstances.get(ImmutableMultimap.class)); assertTrue(ArbitraryInstances.get(SortedSetMultimap.class).isEmpty()); assertEquals(ImmutableTable.of(), ArbitraryInstances.get(Table.class)); assertEquals(ImmutableTable.of(), ArbitraryInstances.get(ImmutableTable.class)); assertTrue(ArbitraryInstances.get(RowSortedTable.class).isEmpty()); assertEquals(ImmutableBiMap.of(), ArbitraryInstances.get(BiMap.class)); assertEquals(ImmutableBiMap.of(), ArbitraryInstances.get(ImmutableBiMap.class)); assertTrue(ArbitraryInstances.get(ImmutableClassToInstanceMap.class).isEmpty()); assertTrue(ArbitraryInstances.get(ClassToInstanceMap.class).isEmpty());
public void testGet_misc() { assertNotNull(ArbitraryInstances.get(CharMatcher.class)); assertNotNull(ArbitraryInstances.get(Currency.class).getCurrencyCode()); assertNotNull(ArbitraryInstances.get(Locale.class)); assertNotNull(ArbitraryInstances.get(Joiner.class).join(ImmutableList.of("a"))); assertNotNull(ArbitraryInstances.get(Splitter.class).split("a,b")); assertThat(ArbitraryInstances.get(com.google.common.base.Optional.class)).isAbsent(); ArbitraryInstances.get(Stopwatch.class).start(); assertNotNull(ArbitraryInstances.get(Ticker.class)); assertFreshInstanceReturned(Random.class); assertEquals( ArbitraryInstances.get(Random.class).nextInt(), ArbitraryInstances.get(Random.class).nextInt()); }
private static void assertFreshInstanceReturned(Class<?>... mutableClasses) { for (Class<?> mutableClass : mutableClasses) { Object instance = ArbitraryInstances.get(mutableClass); assertNotNull("Expected to return non-null for: " + mutableClass, instance); assertNotSame( "Expected to return fresh instance for: " + mutableClass, instance, ArbitraryInstances.get(mutableClass)); } }
@SuppressWarnings("SelfComparison") public void testGet_comparable() { @SuppressWarnings("unchecked") // The null value can compare with any Object Comparable<Object> comparable = ArbitraryInstances.get(Comparable.class); assertEquals(0, comparable.compareTo(comparable)); assertTrue(comparable.compareTo("") > 0); try { comparable.compareTo(null); fail(); } catch (NullPointerException expected) { } }
public void testGet_class() { assertSame(SomeAbstractClass.INSTANCE, ArbitraryInstances.get(SomeAbstractClass.class)); assertSame( WithPrivateConstructor.INSTANCE, ArbitraryInstances.get(WithPrivateConstructor.class)); assertNull(ArbitraryInstances.get(NoDefaultConstructor.class)); assertSame( WithExceptionalConstructor.INSTANCE, ArbitraryInstances.get(WithExceptionalConstructor.class)); assertNull(ArbitraryInstances.get(NonPublicClass.class)); }
public void testGet_misc() { assertNotNull(ArbitraryInstances.get(CharMatcher.class)); assertNotNull(ArbitraryInstances.get(Currency.class).getCurrencyCode()); assertNotNull(ArbitraryInstances.get(Locale.class)); ArbitraryInstances.get(Joiner.class).join(ImmutableList.of("a")); ArbitraryInstances.get(Splitter.class).split("a,b"); assertFalse(ArbitraryInstances.get(Optional.class).isPresent()); ArbitraryInstances.get(Stopwatch.class).start(); assertNotNull(ArbitraryInstances.get(Ticker.class)); assertNotNull(ArbitraryInstances.get(MapConstraint.class)); assertFreshInstanceReturned(Random.class); assertEquals(ArbitraryInstances.get(Random.class).nextInt(), ArbitraryInstances.get(Random.class).nextInt()); }
@SuppressWarnings("unchecked") // functor classes have no type parameters public void testGet_functors() { assertEquals(0, ArbitraryInstances.get(Comparator.class).compare("abc", 123)); assertTrue(ArbitraryInstances.get(Predicate.class).apply("abc")); assertTrue(ArbitraryInstances.get(Equivalence.class).equivalent(1, 1)); assertFalse(ArbitraryInstances.get(Equivalence.class).equivalent(1, 2)); }
public void testGet_concurrent() { assertTrue(ArbitraryInstances.get(BlockingDeque.class).isEmpty()); assertTrue(ArbitraryInstances.get(BlockingQueue.class).isEmpty()); assertTrue(ArbitraryInstances.get(DelayQueue.class).isEmpty()); assertTrue(ArbitraryInstances.get(SynchronousQueue.class).isEmpty()); assertTrue(ArbitraryInstances.get(PriorityBlockingQueue.class).isEmpty()); assertTrue(ArbitraryInstances.get(ConcurrentMap.class).isEmpty()); assertTrue(ArbitraryInstances.get(ConcurrentNavigableMap.class).isEmpty()); ArbitraryInstances.get(Executor.class).execute(ArbitraryInstances.get(Runnable.class)); assertNotNull(ArbitraryInstances.get(ThreadFactory.class)); assertFreshInstanceReturned( BlockingQueue.class, BlockingDeque.class, PriorityBlockingQueue.class, DelayQueue.class, SynchronousQueue.class, ConcurrentMap.class, ConcurrentNavigableMap.class, AtomicReference.class, AtomicBoolean.class, AtomicInteger.class, AtomicLong.class, AtomicDouble.class); }
public void testGet_primitives() { assertNull(ArbitraryInstances.get(void.class)); assertNull(ArbitraryInstances.get(Void.class)); assertEquals(Boolean.FALSE, ArbitraryInstances.get(boolean.class)); assertEquals(Boolean.FALSE, ArbitraryInstances.get(Boolean.class)); assertEquals(Character.valueOf('\0'), ArbitraryInstances.get(char.class)); assertEquals(Character.valueOf('\0'), ArbitraryInstances.get(Character.class)); assertEquals(Byte.valueOf((byte) 0), ArbitraryInstances.get(byte.class)); assertEquals(Byte.valueOf((byte) 0), ArbitraryInstances.get(Byte.class)); assertEquals(Short.valueOf((short) 0), ArbitraryInstances.get(short.class)); assertEquals(Short.valueOf((short) 0), ArbitraryInstances.get(Short.class)); assertEquals(Integer.valueOf(0), ArbitraryInstances.get(int.class)); assertEquals(Integer.valueOf(0), ArbitraryInstances.get(Integer.class)); assertEquals(Long.valueOf(0), ArbitraryInstances.get(long.class)); assertEquals(Long.valueOf(0), ArbitraryInstances.get(Long.class)); assertEquals(Float.valueOf(0), ArbitraryInstances.get(float.class)); assertEquals(Float.valueOf(0), ArbitraryInstances.get(Float.class)); assertEquals(Double.valueOf(0), ArbitraryInstances.get(double.class)); assertEquals(Double.valueOf(0), ArbitraryInstances.get(Double.class)); assertEquals(UnsignedInteger.ZERO, ArbitraryInstances.get(UnsignedInteger.class)); assertEquals(UnsignedLong.ZERO, ArbitraryInstances.get(UnsignedLong.class)); assertEquals(0, ArbitraryInstances.get(BigDecimal.class).intValue()); assertEquals(0, ArbitraryInstances.get(BigInteger.class).intValue()); assertEquals("", ArbitraryInstances.get(String.class)); assertEquals("", ArbitraryInstances.get(CharSequence.class)); assertEquals(TimeUnit.SECONDS, ArbitraryInstances.get(TimeUnit.class)); assertNotNull(ArbitraryInstances.get(Object.class)); assertEquals(0, ArbitraryInstances.get(Number.class)); assertEquals(Charsets.UTF_8, ArbitraryInstances.get(Charset.class)); assertEquals(Optional.empty(), ArbitraryInstances.get(Optional.class));
public void testGet_interface() { assertNull(ArbitraryInstances.get(SomeInterface.class)); }
public void testGet_constructorPreferredOverConstants() { assertNotNull(ArbitraryInstances.get(WithPublicConstructorAndConstant.class)); assertTrue( ArbitraryInstances.get(WithPublicConstructorAndConstant.class) != ArbitraryInstances.get(WithPublicConstructorAndConstant.class)); }
public void testGet_enum() { assertNull(ArbitraryInstances.get(EmptyEnum.class)); assertEquals(Direction.UP, ArbitraryInstances.get(Direction.class)); }
public void testGet_mutable() { assertEquals(0, ArbitraryInstances.get(ArrayList.class).size()); assertEquals(0, ArbitraryInstances.get(HashMap.class).size()); assertThat(ArbitraryInstances.get(Appendable.class).toString()).isEmpty(); assertThat(ArbitraryInstances.get(StringBuilder.class).toString()).isEmpty(); assertThat(ArbitraryInstances.get(StringBuffer.class).toString()).isEmpty(); assertFreshInstanceReturned( ArrayList.class, HashMap.class, Appendable.class, StringBuilder.class, StringBuffer.class, Throwable.class, Exception.class); }
public void testGet_useFirstPublicConstant() { assertSame(WithPublicConstants.FIRST, ArbitraryInstances.get(WithPublicConstants.class)); }
public void testGet_regex() { assertEquals(Pattern.compile("").pattern(), ArbitraryInstances.get(Pattern.class).pattern()); assertEquals(0, ArbitraryInstances.get(MatchResult.class).groupCount()); }
public void testGet_reflect() { assertNotNull(ArbitraryInstances.get(Type.class)); assertNotNull(ArbitraryInstances.get(AnnotatedElement.class)); assertNotNull(ArbitraryInstances.get(GenericDeclaration.class)); }
@SuppressWarnings("unchecked") // functor classes have no type parameters public void testGet_functors() { assertEquals(0, ArbitraryInstances.get(Comparator.class).compare("abc", 123)); assertTrue(ArbitraryInstances.get(Predicate.class).apply("abc")); assertTrue(ArbitraryInstances.get(Equivalence.class).equivalent(1, 1)); assertFalse(ArbitraryInstances.get(Equivalence.class).equivalent(1, 2)); }
@SuppressWarnings("SelfComparison") public void testGet_comparable() { @SuppressWarnings("unchecked") // The null value can compare with any Object Comparable<Object> comparable = ArbitraryInstances.get(Comparable.class); assertEquals(0, comparable.compareTo(comparable)); assertTrue(comparable.compareTo("") > 0); try { comparable.compareTo(null); fail(); } catch (NullPointerException expected) { } }
public void testGet_concurrent() { assertTrue(ArbitraryInstances.get(BlockingQueue.class).isEmpty()); assertTrue(ArbitraryInstances.get(DelayQueue.class).isEmpty()); assertTrue(ArbitraryInstances.get(SynchronousQueue.class).isEmpty()); assertTrue(ArbitraryInstances.get(PriorityBlockingQueue.class).isEmpty()); assertTrue(ArbitraryInstances.get(ConcurrentMap.class).isEmpty()); ArbitraryInstances.get(Executor.class).execute(ArbitraryInstances.get(Runnable.class)); assertNotNull(ArbitraryInstances.get(ThreadFactory.class)); assertFreshInstanceReturned( BlockingQueue.class, PriorityBlockingQueue.class, DelayQueue.class, SynchronousQueue.class, ConcurrentMap.class, AtomicReference.class, AtomicBoolean.class, AtomicInteger.class, AtomicLong.class, AtomicDouble.class); }
public void testGet_primitives() { assertNull(ArbitraryInstances.get(void.class)); assertNull(ArbitraryInstances.get(Void.class)); assertEquals(Boolean.FALSE, ArbitraryInstances.get(boolean.class)); assertEquals(Boolean.FALSE, ArbitraryInstances.get(Boolean.class)); assertEquals(Character.valueOf('\0'), ArbitraryInstances.get(char.class)); assertEquals(Character.valueOf('\0'), ArbitraryInstances.get(Character.class)); assertEquals(Byte.valueOf((byte) 0), ArbitraryInstances.get(byte.class)); assertEquals(Byte.valueOf((byte) 0), ArbitraryInstances.get(Byte.class)); assertEquals(Short.valueOf((short) 0), ArbitraryInstances.get(short.class)); assertEquals(Short.valueOf((short) 0), ArbitraryInstances.get(Short.class)); assertEquals(Integer.valueOf(0), ArbitraryInstances.get(int.class)); assertEquals(Integer.valueOf(0), ArbitraryInstances.get(Integer.class)); assertEquals(Long.valueOf(0), ArbitraryInstances.get(long.class)); assertEquals(Long.valueOf(0), ArbitraryInstances.get(Long.class)); assertEquals(Float.valueOf(0), ArbitraryInstances.get(float.class)); assertEquals(Float.valueOf(0), ArbitraryInstances.get(Float.class)); assertEquals(Double.valueOf(0), ArbitraryInstances.get(double.class)); assertEquals(Double.valueOf(0), ArbitraryInstances.get(Double.class)); assertEquals(UnsignedInteger.ZERO, ArbitraryInstances.get(UnsignedInteger.class)); assertEquals(UnsignedLong.ZERO, ArbitraryInstances.get(UnsignedLong.class)); assertEquals(0, ArbitraryInstances.get(BigDecimal.class).intValue()); assertEquals(0, ArbitraryInstances.get(BigInteger.class).intValue()); assertEquals("", ArbitraryInstances.get(String.class)); assertEquals("", ArbitraryInstances.get(CharSequence.class)); assertEquals(TimeUnit.SECONDS, ArbitraryInstances.get(TimeUnit.class)); assertNotNull(ArbitraryInstances.get(Object.class)); assertEquals(0, ArbitraryInstances.get(Number.class)); assertEquals(Charsets.UTF_8, ArbitraryInstances.get(Charset.class)); }