Skip to content

Commit

Permalink
Add dependency injection sample
Browse files Browse the repository at this point in the history
  • Loading branch information
RocketRaccoon committed Feb 21, 2018
1 parent 59ca428 commit fafaa96
Show file tree
Hide file tree
Showing 9 changed files with 130 additions and 0 deletions.
17 changes: 17 additions & 0 deletions src/test/java/injection/ComponentUnderTest.java
@@ -0,0 +1,17 @@
package injection;

public class ComponentUnderTest {

private int paramToTest = 42;
String param;
String elseone;

public ComponentUnderTest(TestDriver testDriver) {
this.param = testDriver.param;
this.elseone = testDriver.elseOne;
}

public int getParamToTest() {
return paramToTest;
}
}
19 changes: 19 additions & 0 deletions src/test/java/injection/ComponentUnderTestProvider.java
@@ -0,0 +1,19 @@
package injection;

import com.google.inject.Inject;
import com.google.inject.Provider;

public class ComponentUnderTestProvider implements Provider<ComponentUnderTest> {

private TestDriver testDriver;

@Inject
public ComponentUnderTestProvider(TestDriver testDriver) {
this.testDriver = testDriver;
}

@Override
public ComponentUnderTest get() {
return new ComponentUnderTest(testDriver);
}
}
20 changes: 20 additions & 0 deletions src/test/java/injection/SimpleTest.java
@@ -0,0 +1,20 @@
package injection;

import com.google.inject.Inject;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;

@Guice(modules = {TestModule.class})
public class SimpleTest {

@Inject
ComponentUnderTest component;

@Test
public void sampleTest() {
System.out.println(component.getParamToTest());
System.out.println(component.param);
System.out.println(component.elseone);
}

}
13 changes: 13 additions & 0 deletions src/test/java/injection/TestConfig.java
@@ -0,0 +1,13 @@
package injection;

import org.aeonbits.owner.Config;

public interface TestConfig extends Config {

@Key("param")
String param();

@Key("elseOne")
String elseOne();

}
12 changes: 12 additions & 0 deletions src/test/java/injection/TestConfigProvider.java
@@ -0,0 +1,12 @@
package injection;

import com.google.inject.Provider;
import org.aeonbits.owner.ConfigFactory;

public class TestConfigProvider implements Provider<TestConfig> {

@Override
public TestConfig get() {
return ConfigFactory.create(TestConfig.class);
}
}
13 changes: 13 additions & 0 deletions src/test/java/injection/TestDriver.java
@@ -0,0 +1,13 @@
package injection;

public class TestDriver {

String param;
String elseOne;

public TestDriver(TestConfig config) {
this.param = config.param();
this.elseOne = config.elseOne();
}

}
20 changes: 20 additions & 0 deletions src/test/java/injection/TestDriverProvider.java
@@ -0,0 +1,20 @@
package injection;

import com.google.inject.Inject;
import com.google.inject.Provider;

public class TestDriverProvider implements Provider<TestDriver> {

private TestConfig testConfig;

@Inject
public TestDriverProvider(TestConfig testConfig) {
this.testConfig = testConfig;
}

@Override
public TestDriver get() {
return new TestDriver(testConfig);
}

}
14 changes: 14 additions & 0 deletions src/test/java/injection/TestModule.java
@@ -0,0 +1,14 @@
package injection;

import com.google.inject.Binder;
import com.google.inject.Module;

public class TestModule implements Module {

@Override
public void configure(Binder binder) {
binder.bind(TestConfig.class).toProvider(TestConfigProvider.class);
binder.bind(TestDriver.class).toProvider(TestDriverProvider.class);
binder.bind(ComponentUnderTest.class).toProvider(ComponentUnderTestProvider.class);
}
}
2 changes: 2 additions & 0 deletions src/test/resources/injection/TestConfig.properties
@@ -0,0 +1,2 @@
param=parararam
elseOne=elseoneone

0 comments on commit fafaa96

Please sign in to comment.