Skip to content

Commit cf5667c

Browse files
committed
Refactor
1 parent bb93d62 commit cf5667c

File tree

3 files changed

+11
-39
lines changed

3 files changed

+11
-39
lines changed

cucumber-guice/src/main/java/io/cucumber/guice/GuiceFactory.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import java.util.Collection;
1111
import java.util.HashSet;
1212

13+
import static io.cucumber.guice.InjectorSourceFactory.createDefaultScenarioModuleInjectorSource;
14+
import static io.cucumber.guice.InjectorSourceFactory.instantiateUserSpecifiedInjectorSource;
1315
import static io.cucumber.guice.InjectorSourceFactory.loadInjectorSourceFromProperties;
1416
import static java.lang.String.format;
1517

@@ -31,7 +33,7 @@ public GuiceFactory() {
3133
this.injectorSourceFromProperty = loadInjectorSourceFromProperties(CucumberProperties.create());
3234
// Eager init to allow for static binding prior to before all hooks
3335
if (this.injectorSourceFromProperty != null) {
34-
injector = createInjector(this.injectorSourceFromProperty);
36+
injector = instantiateUserSpecifiedInjectorSource(this.injectorSourceFromProperty).getInjector();
3537
}
3638
}
3739

@@ -46,7 +48,7 @@ public boolean addClass(final Class<?> stepClass) {
4648
withInjectorSource = stepClass;
4749
// Eager init to allow for static binding prior to before all
4850
// hooks
49-
injector = createInjector(withInjectorSource);
51+
injector = instantiateUserSpecifiedInjectorSource(withInjectorSource).getInjector();
5052
}
5153
}
5254
stepClasses.add(stepClass);
@@ -79,7 +81,7 @@ public void start() {
7981
// Last minute init. Neither properties not annotations provided an
8082
// injector source.
8183
if (injector == null) {
82-
injector = createInjector(null);
84+
injector = createDefaultScenarioModuleInjectorSource().getInjector();
8385
}
8486
scenarioScope = injector.getInstance(ScenarioScope.class);
8587
scenarioScope.enterScope();
@@ -96,9 +98,4 @@ public <T> T getInstance(Class<T> clazz) {
9698
return injector.getInstance(clazz);
9799
}
98100

99-
private static Injector createInjector(Class<?> injectorSourceClass) {
100-
InjectorSourceFactory injectorSourceFactory = new InjectorSourceFactory(injectorSourceClass);
101-
InjectorSource injectorSource = injectorSourceFactory.create();
102-
return injectorSource.getInjector();
103-
}
104101
}

cucumber-guice/src/main/java/io/cucumber/guice/InjectorSourceFactory.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,12 @@
1212
final class InjectorSourceFactory {
1313
private static final Logger log = LoggerFactory.getLogger(GuiceFactory.class);
1414
static final String GUICE_INJECTOR_SOURCE_KEY = "guice.injector-source";
15-
private final Class<?> injectorSourceClass;
1615

17-
InjectorSourceFactory(Class<?> injectorSourceClass) {
18-
this.injectorSourceClass = injectorSourceClass;
19-
}
20-
21-
InjectorSource create() {
22-
if (injectorSourceClass == null) {
23-
return createDefaultScenarioModuleInjectorSource();
24-
} else {
25-
return instantiateUserSpecifiedInjectorSource(injectorSourceClass);
26-
}
27-
}
28-
29-
private InjectorSource createDefaultScenarioModuleInjectorSource() {
16+
static InjectorSource createDefaultScenarioModuleInjectorSource() {
3017
return () -> Guice.createInjector(Stage.PRODUCTION, CucumberModules.createScenarioModule());
3118
}
3219

33-
private InjectorSource instantiateUserSpecifiedInjectorSource(Class<?> injectorSourceClass) {
20+
static InjectorSource instantiateUserSpecifiedInjectorSource(Class<?> injectorSourceClass) {
3421
try {
3522
return (InjectorSource) injectorSourceClass.getConstructor().newInstance();
3623
} catch (Exception e) {

cucumber-guice/src/test/java/io/cucumber/guice/InjectorSourceFactoryTest.java

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.util.Map;
99

1010
import static io.cucumber.guice.InjectorSourceFactory.GUICE_INJECTOR_SOURCE_KEY;
11-
import static org.hamcrest.CoreMatchers.instanceOf;
11+
import static io.cucumber.guice.InjectorSourceFactory.instantiateUserSpecifiedInjectorSource;
1212
import static org.hamcrest.MatcherAssert.assertThat;
1313
import static org.hamcrest.core.Is.is;
1414
import static org.hamcrest.core.Is.isA;
@@ -18,12 +18,6 @@
1818

1919
class InjectorSourceFactoryTest {
2020

21-
@Test
22-
void createsDefaultInjectorSourceWhenGuiceModulePropertyIsNotSet() {
23-
InjectorSourceFactory injectorSourceFactory = new InjectorSourceFactory(null);
24-
assertThat(injectorSourceFactory.create(), is(instanceOf(InjectorSource.class)));
25-
}
26-
2721
@Test
2822
void instantiatesInjectorSourceByFullyQualifiedName() {
2923
Map<String, String> properties = new HashMap<>();
@@ -49,9 +43,7 @@ void failsToLoadNonExistantClass() {
4943

5044
@Test
5145
void failsToInstantiateClassNotImplementingInjectorSource() {
52-
InjectorSourceFactory injectorSourceFactory = new InjectorSourceFactory(String.class);
53-
54-
Executable testMethod = injectorSourceFactory::create;
46+
Executable testMethod = () -> instantiateUserSpecifiedInjectorSource(String.class);
5547
InjectorSourceInstantiationFailed actualThrown = assertThrows(InjectorSourceInstantiationFailed.class,
5648
testMethod);
5749
assertAll(
@@ -63,9 +55,7 @@ void failsToInstantiateClassNotImplementingInjectorSource() {
6355

6456
@Test
6557
void failsToInstantiateClassWithPrivateConstructor() {
66-
InjectorSourceFactory injectorSourceFactory = new InjectorSourceFactory(PrivateConstructor.class);
67-
68-
Executable testMethod = injectorSourceFactory::create;
58+
Executable testMethod = () -> instantiateUserSpecifiedInjectorSource(PrivateConstructor.class);
6959
InjectorSourceInstantiationFailed actualThrown = assertThrows(InjectorSourceInstantiationFailed.class,
7060
testMethod);
7161
assertAll(
@@ -77,9 +67,7 @@ void failsToInstantiateClassWithPrivateConstructor() {
7767

7868
@Test
7969
void failsToInstantiateClassWithNoDefaultConstructor() {
80-
InjectorSourceFactory injectorSourceFactory = new InjectorSourceFactory(NoDefaultConstructor.class);
81-
82-
Executable testMethod = injectorSourceFactory::create;
70+
Executable testMethod = () -> instantiateUserSpecifiedInjectorSource(NoDefaultConstructor.class);
8371
InjectorSourceInstantiationFailed actualThrown = assertThrows(InjectorSourceInstantiationFailed.class,
8472
testMethod);
8573
assertAll(

0 commit comments

Comments
 (0)