/**
*
*/
package com.google.gwt.chrome.crx.linker.emiter;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import com.google.gwt.core.ext.GeneratorContext;
import com.google.gwt.core.ext.TreeLogger;
import com.google.gwt.core.ext.UnableToCompleteException;
import com.google.gwt.core.ext.typeinfo.JClassType;
import com.google.gwt.core.ext.typeinfo.JPackage;
import com.google.gwt.user.rebind.ClassSourceFileComposerFactory;
/**
* @author zinur
*
*/
public class PageEmiterTest {
@Mock
private TreeLogger logger;
@Mock
private GeneratorContext context;
@Mock
private JClassType userType;
private static final String TYPE_NAME = "com.google.gwt.chrome.BrowserAction";
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
when(userType.getSimpleSourceName()).thenReturn(TYPE_NAME);
JPackage jpackage = mock(JPackage.class);
when(jpackage.getName()).thenReturn(TYPE_NAME);
when(userType.getPackage()).thenReturn(jpackage);
when(userType.getQualifiedSourceName()).thenReturn("SomeOtherType");
}
@Test
public void shouldQualifiedSourceName() throws UnableToCompleteException {
invokeCodeEmition();
verify(userType).getQualifiedSourceName();
ClassSourceFileComposerFactory f = mock(ClassSourceFileComposerFactory.class);
verify(f).setSuperclass(userType.getQualifiedSourceName());
}
/**
* @return
* @throws UnableToCompleteException
*/
protected String invokeCodeEmition() throws UnableToCompleteException {
Emiter emiter = new PageEmiter();
return emiter.emit(logger, context, userType, TYPE_NAME);
}
}