package com.lyft.scoop.dagger;
import dagger.ObjectGraph;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
public class DaggerLayoutInflaterTest {
private static final String TEST_STRING = "testString";
@Mock
DaggerInjector mockDaggerInjector;
@Mock
ObjectGraph mockObjectGraph;
private DaggerInjector daggerInjector;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
daggerInjector = new DaggerInjector(mockObjectGraph);
}
@Test
public void testInject() {
daggerInjector.inject(TEST_STRING);
verify(mockObjectGraph, times(1)).inject(eq(TEST_STRING));
}
@Test
public void testGet() {
when(mockObjectGraph.get(eq(String.class))).thenReturn(TEST_STRING);
assertEquals(TEST_STRING, daggerInjector.get(String.class));
}
@Test
public void testExtend() {
when(mockObjectGraph.plus(eq(TEST_STRING))).thenReturn(mockObjectGraph);
assertNotNull(daggerInjector.extend(TEST_STRING));
verify(mockObjectGraph, times(1)).plus(eq(TEST_STRING));
}
}