/**
*
*/
package com.google.gwt.chrome.crx.linker.emiter;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.mock;
import java.io.OutputStream;
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;
/**
* @author zinur
*
*/
public class ToolStripEmiterTest {
@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);
}
@Test
public void shouldTryCreateResource() throws UnableToCompleteException {
String path = userType.getSimpleSourceName() + ".html";
OutputStream stream = mock(OutputStream.class);
when(context.tryCreateResource(logger, path)).thenReturn(stream);
JPackage jpackage = mock(JPackage.class);
when(jpackage.getName()).thenReturn(TYPE_NAME);
when(userType.getPackage()).thenReturn(jpackage);
invokeCodeEmition();
verify(context).tryCreateResource(logger, path);
verify(context).commitResource(logger, stream);
}
/**
* @return
* @throws UnableToCompleteException
*/
protected String invokeCodeEmition() throws UnableToCompleteException {
Emiter emiter = new ToolStripEmiter();
return emiter.emit(logger, context, userType, TYPE_NAME);
}
}