package com.pivotallabs.injected;
import android.content.Context;
import android.widget.TextView;
import com.google.inject.Inject;
import com.pivotallabs.R;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import roboguice.RoboGuice;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.*;
@RunWith(InjectedTestRunner.class)
public class InjectedActivityTest {
@Inject
Context context;
InjectedActivity injectedActivity;
@Inject
Counter fieldCounter;
@Inject
FakeDateProvider fakeDateProvider;
@Before
public void setUp() {
injectedActivity = new InjectedActivity();
fakeDateProvider.setDate("December 8, 2010");
}
@Test
public void shouldAssignStringToTextView() throws Exception {
injectedActivity.onCreate(null);
TextView injectedTextView = (TextView) injectedActivity.findViewById(R.id.injected_text_view);
assertThat(injectedTextView.getText().toString(),
equalTo("Roboguice Activity tested with Robolectric - December 8, 2010"));
}
@Test
public void shouldInjectSingletons() throws Exception {
Counter instance = RoboGuice.getInjector(injectedActivity).getInstance(Counter.class);
assertEquals(0, instance.count);
instance.count++;
Counter instanceAgain = RoboGuice.getInjector(injectedActivity).getInstance(Counter.class);
assertEquals(1, instanceAgain.count);
assertSame(fieldCounter, instance);
}
@Test
public void shouldBeAbleToInjectAContext() throws Exception {
assertNotNull(context);
}
}