Skip to content

Instantly share code, notes, and snippets.

View kmmraj's full-sized avatar

Mohanraj kmmraj

  • Bengaluru
View GitHub Profile
@kmmraj
kmmraj / HomeActivityUnitTest.java
Last active April 4, 2017 10:08
HomeActivityUnitTest.java
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;
private class HomeActivityOutputSpy implements HomeInteractorInput {
boolean fetchHomeMetaDataIsCalled = false;
HomeRequest homeRequestCopy;
@Override
public void fetchHomeMetaData(HomeRequest request) {
fetchHomeMetaDataIsCalled = true;
homeRequestCopy = request;
}
}
@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
@Test
public void HomeActivity_ShouldNOT_be_Null(){
//Given
HomeActivity activity = Robolectric.setupActivity(HomeActivity.class);
//When
// Then
Assert.assertNotNull(activity);
}
interface HomeInteractorInput {
public void fetchHomeMetaData(HomeRequest request);
}
public class HomeActivity extends AppCompatActivity implements HomeActivityInput {
protected HomeInteractorInput output;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();
HomeConfigurator.INSTANCE.configure(this);
@Test
public void onCreate_Calls_fetchHomeMetaData_withCorrectData(){
//Given
HomeActivityOutputSpy homeActivityOutputSpy = new HomeActivityOutputSpy();
HomeActivity homeActivity = Robolectric.setupActivity(HomeActivity.class);
homeActivity.output = homeActivityOutputSpy;
//When
homeActivity.fetchMetaData();
interface HomeInteractorInput {
public void fetchHomeMetaData(HomeRequest request);
}
public class HomeInteractor implements HomeInteractorInput{
public HomePresenterInput output;
public FlightWorkerInput flightWorkerInput;
private class HomePresenterInputSpy implements HomePresenterInput {
boolean presentHomeMetaDataIsCalled = false;
HomeResponse homeResponseCopy;
@Override
public void presentHomeMetaData(HomeResponse response) {
presentHomeMetaDataIsCalled = true;
homeResponseCopy = response;
}
}
private class FlightWorkerInputSpy implements FlightWorkerInput {
boolean isgetFutureFlightsMethodCalled = false;
boolean isgetPastFlightsMethodCalled = false;
@Override
public ArrayList<FlightModel> getFutureFlights() {
isgetFutureFlightsMethodCalled = true;
ArrayList<FlightModel> flightsList = getFlightModels();
return flightsList;