/** * */ package com.google.gwt.chrome.crx.linker.emiter; import static org.mockito.Mockito.mock; 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.chrome.crx.client.ExtensionScript; import com.google.gwt.chrome.crx.linker.artifact.ExtensionScriptArtifact; 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; /** * @author zinur * */ public class ExtentionsScriptEmiterTest { @Mock private TreeLogger logger; @Mock private GeneratorContext context; @Mock private JClassType userType; /** * Type name */ private static final String TYPE_NAME = "com.google.gwt.chrome.BrowserAction"; /** * @throws java.lang.Exception */ @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); } @Test public void shouldTryGetCommitArtifact() throws UnableToCompleteException { ExtensionScript.ManifestInfo ext = mock(ExtensionScript.ManifestInfo.class); when(ext.path()).thenReturn("google/com/"); when(ext.script()).thenReturn("jquery"); when(userType.getAnnotation(ExtensionScript.ManifestInfo.class)).thenReturn(ext); context.commitArtifact(logger, new ExtensionScriptArtifact(ext.path(), ext.script())); invokeCodeEmition(); } @Test(expected = UnableToCompleteException.class) public void shouldThrowUnableToCompleteExceptionIfNoExtentions() throws UnableToCompleteException { when(userType.getAnnotation(ExtensionScript.ManifestInfo.class)).thenReturn(null); invokeCodeEmition(); } /** * @return * @throws UnableToCompleteException */ protected String invokeCodeEmition() throws UnableToCompleteException { Emiter emiter = new ExtentionsScriptEmiter(); return emiter.emit(logger, context, userType, TYPE_NAME); } }