package com.lyft.scoop.dagger;
import com.lyft.scoop.Scoop;
import com.lyft.scoop.Screen;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.when;
public class DaggerScreenScoopFactoryTest {
@Mock
DaggerInjector mockDaggerInjector;
private DaggerScreenScoopFactory daggerScreenScooper;
private Scoop.Builder scoopBuilder;
private Scoop scoop;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
daggerScreenScooper = new DaggerScreenScoopFactory();
scoop = new Scoop.Builder("root").service(DaggerInjector.SERVICE_NAME, mockDaggerInjector).build();
scoopBuilder = new Scoop.Builder("child");
}
@Test
public void testAddModule() {
when(mockDaggerInjector.extend(any(TestModule.class))).thenReturn(mockDaggerInjector);
assertNotNull(daggerScreenScooper.addServices(scoopBuilder, new TestScreen(), scoop));
}
@Test
public void testNoModule() {
assertNotNull(daggerScreenScooper.addServices(scoopBuilder, new TestNoModuleScreen(), scoop));
}
@DaggerModule(TestModule.class)
private static class TestScreen extends Screen {
}
static class TestNoModuleScreen extends Screen {
}
static class TestModule {
}
}