Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. @RunWith(AndroidJUnit4.class)
  2. public class MyActivityTest {
  3.  
  4. @Rule public ActivityTestRule<MyActivity> activityTestRule = new ActivityTestRule<>(MyActivity.class, false, false);
  5.  
  6. private MyApp myApp;
  7.  
  8. @Before public void setup() {
  9. myApp = (MyApp) InstrumentationRegistry.getTargetContext().getApplicationContext();
  10. }
  11.  
  12. @Test public void mockInjection() throws Exception {
  13. // Create test object graph & inject.
  14. DaggerMyActivityTest_TestAppComponent.builder()
  15. .build()
  16. .inject(myApp);
  17.  
  18. activityTestRule.launchActivity(new Intent(myApp, MyActivity.class));
  19. MyActivity myActivity = activityTestRule.getActivity();
  20.  
  21. // Check things got injected correctly.
  22. Assert.assertEquals("test-singleton-value", myActivity.singletonString);
  23. Assert.assertEquals("test-per-activity-value", myActivity.perActivityString);
  24. }
  25.  
  26. @Singleton @Component(modules = { TestAppModule.class, AndroidInjectionModule.class })
  27. public interface TestAppComponent {
  28.  
  29. void inject(MyApp myApp);
  30. }
  31.  
  32. @Module
  33. public static class TestAppModule {
  34. @Provides @IntoMap @ActivityKey(MyActivity.class)
  35. AndroidInjector.Factory<? extends Activity> factory() {
  36. return new AndroidInjector.Factory<MyActivity>() {
  37. @Override
  38. public AndroidInjector<MyActivity> create(MyActivity instance) {
  39. return new AndroidInjector<MyActivity>() {
  40. @Override
  41. public void inject(MyActivity instance) {
  42. instance.singletonString = "test-singleton-value";
  43. instance.perActivityString = "test-per-activity-value";
  44. }
  45. };
  46. }
  47. };
  48. }
  49. }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement