@Override public AppleCart instantiate(PropertyLookup<AppleCart> lookup) { return new AppleCart(lookup.valueOf(apples, listOf(an(Apple)))); } };
@Test public void distinctCollectionElementsAreUsedForEachMadeObjectWhenElementsAreDefinedWithAMaker() { Maker<SecretAgent> anAgent = a(SecretAgent, with(assumedIdentities, listOf( an(Identity, with(name, "jason bourne")), an(Identity, with(name, "james bond"))))); SecretAgent x = make(anAgent); SecretAgent y = make(anAgent); assertThat(x.assumedIdentities, not(sameInstance(y.assumedIdentities))); assertThat(x.assumedIdentities.get(0), not(sameInstance(y.assumedIdentities.get(0)))); assertThat(x.assumedIdentities.get(1), not(sameInstance(y.assumedIdentities.get(1)))); }
@Override public FruitBowl instantiate(PropertyLookup<FruitBowl> lookup) { return new FruitBowl( lookup.valueOf(contents, listOf(an(Apple), a(Banana)).value())); } };
@Test public void canDeclareThatElementsOfDifferentCollectionAreTheSame() { Maker<SecretAgent> anAgent = a(SecretAgent, with(assumedIdentities, listOf( theSame(Identity, with(name, "austin powers")), theSame(Identity, with(name, "harry palmer"))))); SecretAgent x = make(anAgent); SecretAgent y = make(anAgent); assertThat(x.assumedIdentities, not(sameInstance(y.assumedIdentities))); assertThat(x.assumedIdentities.get(0), sameInstance(y.assumedIdentities.get(0))); assertThat(x.assumedIdentities.get(1), sameInstance(y.assumedIdentities.get(1))); }
public static void howToMakeObjectsWithPropertiesThatAreCollections() { AppleCart cart = make(a(AppleCart, with(apples, listOf( an(Apple, with(ripeness, 0.5)), an(Apple, with(ripeness, 0.35)) )))); FruitBowl bowl = make(a(FruitBowl, with(contents, listOf( an(Apple, with(2, leaves)), an(Apple, with(3, leaves)), a(Banana, with(ripeness, 0.25)), a(Banana, with(ripeness, 0.99)) )))); }
@Test public void canDeclareThatSameCollectionIsUsedForEveryMadeObject() { Maker<SecretAgent> anAgent = a(SecretAgent, with(assumedIdentities, theSame(listOf( an(Identity, with(name, "jason bourne")), an(Identity, with(name, "james bond")))))); SecretAgent x = make(anAgent); SecretAgent y = make(anAgent); assertThat(x.assumedIdentities, sameInstance(y.assumedIdentities)); } }