private static Object[] getParameterValues(Method method) { FreshValueGenerator paramValues = new FreshValueGenerator(); final List<Object> passedArgs = Lists.newArrayList(); for (Class<?> paramType : method.getParameterTypes()) { passedArgs.add(paramValues.generateFresh(paramType)); } return passedArgs.toArray(); }
InteractionTester(Class<T> interfaceType, Method method) { this.interfaceType = interfaceType; this.method = method; this.passedArgs = getParameterValues(method); this.returnValue = new FreshValueGenerator().generateFresh(method.getReturnType()); }
@Nullable final <T> T generateFresh(Class<T> type) { return Primitives.wrap(type).cast(generateFresh(TypeToken.of(type))); }
public void testStringArray() { FreshValueGenerator generator = new FreshValueGenerator(); String[] a1 = generator.generateFresh(String[].class); String[] a2 = generator.generateFresh(String[].class); assertFalse(a1[0].equals(a2[0])); }
public void testPrimitiveArray() { FreshValueGenerator generator = new FreshValueGenerator(); int[] a1 = generator.generateFresh(int[].class); int[] a2 = generator.generateFresh(int[].class); assertTrue(a1[0] != a2[0]); }
public void testFreshCurrency() { FreshValueGenerator generator = new FreshValueGenerator(); // repeat a few times to make sure we don't stumble upon a bad Locale assertNotNull(generator.generateFresh(Currency.class)); assertNotNull(generator.generateFresh(Currency.class)); assertNotNull(generator.generateFresh(Currency.class)); }
private static <T> void assertEqualInstance(Class<T> type, T value) { FreshValueGenerator generator = new FreshValueGenerator(); assertEquals(value, generator.generateFresh(type)); assertEquals(value, generator.generateFresh(type)); }
private static void assertCanGenerateOnly(TypeToken<?> type, Object expected) { FreshValueGenerator generator = new FreshValueGenerator(); assertValueAndTypeEquals(expected, generator.generateFresh(type)); assertNull(generator.generateFresh(type)); }
public void testObject() { assertEquals( new FreshValueGenerator().generateFresh(String.class), new FreshValueGenerator().generateFresh(Object.class)); }
for (int i = 0; i < params.size(); i++) { List<Object> newArgs = Lists.newArrayList(args); Object newArg = argGenerators.get(i).generateFresh(params.get(i).getType());
@AndroidIncompatible public void testJavaOptional() { FreshValueGenerator generator = new FreshValueGenerator(); assertEquals(Optional.empty(), generator.generateFresh(new TypeToken<Optional<String>>() {})); assertEquals(Optional.of("2"), generator.generateFresh(new TypeToken<Optional<String>>() {})); // Test that the first generated instance for different Optional<T> is always empty(). Having // generated Optional<String> instances doesn't prevent empty() from being generated for other // Optional types. assertEquals( Optional.empty(), generator.generateFresh(new TypeToken<Optional<OneConstantEnum>>() {})); assertEquals( Optional.of(OneConstantEnum.CONSTANT1), generator.generateFresh(new TypeToken<Optional<OneConstantEnum>>() {})); }
private static @Nullable Object generateDummyArg(Parameter param, FreshValueGenerator generator) throws ParameterNotInstantiableException { if (isNullable(param)) { return null; } Object arg = generator.generateFresh(param.getType()); if (arg == null) { throw new ParameterNotInstantiableException(param); } return arg; }
public void testAddSampleInstances_twoInstances() { FreshValueGenerator generator = new FreshValueGenerator(); generator.addSampleInstances(String.class, ImmutableList.of("a", "b")); assertEquals("a", generator.generateFresh(String.class)); assertEquals("b", generator.generateFresh(String.class)); assertEquals("a", generator.generateFresh(String.class)); }
public void testAddSampleInstances_oneInstance() { FreshValueGenerator generator = new FreshValueGenerator(); generator.addSampleInstances(String.class, ImmutableList.of("a")); assertEquals("a", generator.generateFresh(String.class)); assertEquals("a", generator.generateFresh(String.class)); }
public void testAddSampleInstances_noInstance() { FreshValueGenerator generator = new FreshValueGenerator(); generator.addSampleInstances(String.class, ImmutableList.<String>of()); assertEquals( new FreshValueGenerator().generateFresh(String.class), generator.generateFresh(String.class)); }
@AndroidIncompatible // problem with equality of Type objects? public void testGoogleOptional() { FreshValueGenerator generator = new FreshValueGenerator(); assertEquals( com.google.common.base.Optional.absent(), generator.generateFresh(new TypeToken<com.google.common.base.Optional<String>>() {})); assertEquals( com.google.common.base.Optional.of("2"), generator.generateFresh(new TypeToken<com.google.common.base.Optional<String>>() {})); // Test that the first generated instance for different cgcb.Optional<T> is always absent(). // Having generated cgcb.Optional<String> instances doesn't prevent absent() from being // generated for other cgcb.Optional types. assertEquals( com.google.common.base.Optional.absent(), generator.generateFresh( new TypeToken<com.google.common.base.Optional<OneConstantEnum>>() {})); assertEquals( com.google.common.base.Optional.of(OneConstantEnum.CONSTANT1), generator.generateFresh( new TypeToken<com.google.common.base.Optional<OneConstantEnum>>() {})); }
private static void assertNotInstantiable(TypeToken<?> type) { assertNull(new FreshValueGenerator().generateFresh(type)); }
private static void assertFreshInstance(TypeToken<?> type, int instances) { FreshValueGenerator generator = new FreshValueGenerator(); EqualsTester tester = new EqualsTester(); for (int i = 0; i < instances; i++) { tester.addEqualityGroup(generator.generateFresh(type)); } tester.testEquals(); }
public void testStringArray() { FreshValueGenerator generator = new FreshValueGenerator(); String[] a1 = generator.generateFresh(String[].class); String[] a2 = generator.generateFresh(String[].class); assertFalse(a1[0].equals(a2[0])); }
private static @Nullable Object generateDummyArg(Parameter param, FreshValueGenerator generator) throws ParameterNotInstantiableException { if (isNullable(param)) { return null; } Object arg = generator.generateFresh(param.getType()); if (arg == null) { throw new ParameterNotInstantiableException(param); } return arg; }