commit 8fa9cfe59876eb53b289e45dcc9425154d896f6b Author: Jan Galinski <jan.galin...@holisticon.de> AuthorDate: Thu, 9 May 2013 11:56:21 +0200 Commit: Jan Galinski <jan.galin...@holisticon.de> CommitDate: Thu, 9 May 2013 11:56:21 +0200
assure that Constructor injection works diff --git a/examples/trader-needle/src/test/java/org/jbehave/examples/trader/needle/NeedleTraderStepsConstructorInjectionTest.java b/examples/trader-needle/src/test/java/org/jbehave/examples/trader/needle/NeedleTraderStepsConstructorInjectionTest.java new file mode 100644 index 0000000..dcf8cfd --- /dev/null +++ b/examples/trader-needle/src/test/java/org/jbehave/examples/trader/needle/NeedleTraderStepsConstructorInjectionTest.java @@ -0,0 +1,44 @@ +package org.jbehave.examples.trader.needle; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; + +import org.jbehave.examples.trader.model.Trader; +import org.jbehave.examples.trader.service.TradingService; +import org.junit.Rule; +import org.junit.Test; + +import de.akquinet.jbosscc.needle.annotation.InjectIntoMany; +import de.akquinet.jbosscc.needle.annotation.ObjectUnderTest; +import de.akquinet.jbosscc.needle.junit.NeedleRule; + +public class NeedleTraderStepsConstructorInjectionTest { + + private static final String BAR = "bar"; + private static final String FOO = "foo"; + + @Rule + public final NeedleRule needleRule = new NeedleRule(); + + /** + * Constructor Injection on needleTraderSteps works. But needle creates a mock + * of {@link TradingService} by default. By using {@link InjectIntoMany}, a + * concrete instance is bound. + */ + @InjectIntoMany + private final TradingService tradingService = new TradingService(); + + @ObjectUnderTest + private NeedleTraderSteps needleTraderSteps; + + @Test + public void shouldCreateNewInstanceByConstructorInjection() { + assertNotNull(needleTraderSteps.getService()); + final Trader newTrader = needleTraderSteps.getService().newTrader(FOO, BAR); + assertNotNull(newTrader); + assertThat(newTrader.getName(), is(FOO)); + assertThat(newTrader.getRank(), is(BAR)); + } + +}