/*******************************************************************************
* Copyright (c) 2012 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.cdi.seam.text.ext.test;
import java.util.ArrayList;
import org.eclipse.core.resources.IFile;
import org.eclipse.osgi.util.NLS;
import org.jboss.tools.cdi.core.test.tck.TCKTest;
import org.jboss.tools.cdi.seam.text.ext.CDISeamExtMessages;
import org.jboss.tools.cdi.seam.text.ext.hyperlink.CDISeamResourceLoadingHyperlink;
import org.jboss.tools.cdi.seam.text.ext.hyperlink.CDISeamResourceLoadingHyperlinkDetector;
import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil;
import org.jboss.tools.common.util.FileUtil;
import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil.TestHyperlink;
import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil.TestRegion;
public class CDISeamResourceLoadingHyperlinkDetectorTest extends TCKTest{
private static final String INJECT_STRING = "@Inject";
private static final String BEANS_XML_STRING = "beansXml;";
private static final String PROPERTIES1_STRING = "properties1;";
private static final String PROPERTIES2_STRING = "properties2;";
private static final String PROPERTIES3_STRING = "properties3;";
private static final String PROPERTIES4_STRING = "properties4;";
public void testCDISeamResourceLoadingHyperlinkDetector_Solder30() throws Exception {
checkFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/openon/ResourceLoader30.java");
}
public void testCDISeamResourceLoadingHyperlinkDetector_Solder31() throws Exception {
checkFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/openon/ResourceLoader31.java");
}
private void checkFile(String fileName) throws Exception{
IFile file = tckProject.getFile(fileName);
String text = FileUtil.readStream(file);
ArrayList<TestRegion> regionList = new ArrayList<TestRegion>();
int injectPosition = text.indexOf(INJECT_STRING);
int length = text.indexOf(BEANS_XML_STRING, injectPosition)+BEANS_XML_STRING.length()-injectPosition;
regionList.add(new TestRegion(injectPosition, length,
new TestHyperlink[]{new TestHyperlink(CDISeamResourceLoadingHyperlink.class, NLS.bind(CDISeamExtMessages.CDI_SEAM_RESOURCE_LOADING_HYPERLINK,
"WEB-INF/beans.xml",
"WebContent/WEB-INF/beans.xml"))}));
injectPosition = text.indexOf(INJECT_STRING,injectPosition+1);
length = text.indexOf(PROPERTIES1_STRING, injectPosition)+PROPERTIES1_STRING.length()-injectPosition;
regionList.add(new TestRegion(injectPosition, length,
new TestHyperlink[]{new TestHyperlink(CDISeamResourceLoadingHyperlink.class, NLS.bind(CDISeamExtMessages.CDI_SEAM_RESOURCE_LOADING_HYPERLINK,
"org/jboss/jsr299/tck/tests/jbt/openon/test.properties",
"JavaSource/org/jboss/jsr299/tck/tests/jbt/openon/test.properties"))}));
injectPosition = text.indexOf(INJECT_STRING,injectPosition+1);
length = text.indexOf(PROPERTIES2_STRING, injectPosition)+PROPERTIES2_STRING.length()-injectPosition;
regionList.add(new TestRegion(injectPosition, length,
new TestHyperlink[]{new TestHyperlink(CDISeamResourceLoadingHyperlink.class, NLS.bind(CDISeamExtMessages.CDI_SEAM_RESOURCE_LOADING_HYPERLINK,
"org/jboss/jsr299/tck/tests/jbt/openon/test",
"JavaSource/org/jboss/jsr299/tck/tests/jbt/openon/test.properties"))}));
injectPosition = text.indexOf(INJECT_STRING,injectPosition+1);
length = text.indexOf(PROPERTIES3_STRING, injectPosition)+PROPERTIES3_STRING.length()-injectPosition;
regionList.add(new TestRegion(injectPosition, length,
new TestHyperlink[]{new TestHyperlink(CDISeamResourceLoadingHyperlink.class, NLS.bind(CDISeamExtMessages.CDI_SEAM_RESOURCE_LOADING_HYPERLINK,
"org.jboss.jsr299.tck.tests.jbt.openon.test.properties",
"JavaSource/org/jboss/jsr299/tck/tests/jbt/openon/test.properties"))}));
injectPosition = text.indexOf(INJECT_STRING,injectPosition+1);
length = text.indexOf(PROPERTIES4_STRING, injectPosition)+PROPERTIES4_STRING.length()-injectPosition;
regionList.add(new TestRegion(injectPosition, length,
new TestHyperlink[]{new TestHyperlink(CDISeamResourceLoadingHyperlink.class, NLS.bind(CDISeamExtMessages.CDI_SEAM_RESOURCE_LOADING_HYPERLINK,
"org.jboss.jsr299.tck.tests.jbt.openon.test",
"JavaSource/org/jboss/jsr299/tck/tests/jbt/openon/test.properties"))}));
CDIHyperlinkTestUtil.checkRegions(tckProject, fileName, regionList, new CDISeamResourceLoadingHyperlinkDetector());
}
}