Last active
April 4, 2017 10:08
-
-
Save kmmraj/379279f1e3ad6ba96b58d85b642808f0 to your computer and use it in GitHub Desktop.
HomeActivityUnitTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.mycompany.flightstatuslistview.homeScreen; | |
import com.mycompany.flightstatuslistview.BuildConfig; | |
import org.junit.After; | |
import org.junit.Assert; | |
import org.junit.Before; | |
import org.junit.Test; | |
import org.junit.runner.RunWith; | |
import org.mockito.Mockito; | |
import org.robolectric.Robolectric; | |
import org.robolectric.RobolectricGradleTestRunner; | |
import org.robolectric.annotation.Config; | |
import org.robolectric.util.ActivityController; | |
@RunWith(RobolectricGradleTestRunner.class) | |
@Config(constants = BuildConfig.class, manifest = "app/src/main/AndroidManifest.xml", sdk = 21) | |
public class HomeActivityUnitTest { | |
@Before | |
public void setUp(){} | |
@After | |
public void tearDown(){} | |
@Test | |
public void HomeActivity_ShouldNOT_be_Null(){ | |
//Given | |
HomeActivity activity = Robolectric.setupActivity(HomeActivity.class); | |
//When | |
// Then | |
Assert.assertNotNull(activity); | |
} | |
@Test | |
public void onCreate_shouldCall_fetchHomeMetaData(){ | |
//Given | |
HomeActivityOutputSpy homeActivityOutputSpy = new HomeActivityOutputSpy(); | |
HomeActivity homeActivity = Robolectric.setupActivity(HomeActivity.class); | |
// It must have called the onCreate earlier, | |
// we are injecting the mock and calling the fetchMetaData to test our condition | |
homeActivity.output = homeActivityOutputSpy; | |
//When | |
homeActivity.fetchMetaData(); | |
//Then | |
Assert.assertTrue(homeActivityOutputSpy.fetchHomeMetaDataIsCalled); | |
} | |
@Test | |
public void onCreate_Calls_fetchHomeMetaData_withCorrectData(){ | |
//Given | |
HomeActivityOutputSpy homeActivityOutputSpy = new HomeActivityOutputSpy(); | |
HomeActivity homeActivity = Robolectric.setupActivity(HomeActivity.class); | |
homeActivity.output = homeActivityOutputSpy; | |
//When | |
homeActivity.fetchMetaData(); | |
//Then | |
Assert.assertNotNull(homeActivity); | |
Assert.assertTrue(homeActivityOutputSpy.homeRequestCopy.isFutureTrips); | |
} | |
private class HomeActivityOutputSpy implements HomeInteractorInput { | |
boolean fetchHomeMetaDataIsCalled = false; | |
HomeRequest homeRequestCopy; | |
@Override | |
public void fetchHomeMetaData(HomeRequest request) { | |
fetchHomeMetaDataIsCalled = true; | |
homeRequestCopy = request; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment