package eu.dnetlib.dlms.view;
import static org.junit.Assert.*;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.io.UnsupportedEncodingException;
import javax.annotation.Resource;
import javax.xml.parsers.ParserConfigurationException;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration

public class ParserTest {
	@Resource
	private QueryManager queryManager;

	
	@Test
	public void testParser() throws ParserConfigurationException, SAXException, IOException, UnsupportedEncodingException
	{
		String theString="ePubsView = View EntryPoint = ePubs {Visit composedBy{Node AggregationObjects {"+
	"Visit relation {Node aggregates {Visit relation {Node ResearchData}Visit relation  {Node ePrints } } } } } }";
		InputStream is=null;
		is= new ByteArrayInputStream(theString.getBytes("UTF-8"));
		assertTrue(is!=null);
		Scanner s= new Scanner(is);
		Parser p= new Parser(s);
		p.Parse();
		ParserView v= p.getParserView();
		assertTrue(v.isCorrectStructView(queryManager));
		StringBuffer bb=v.getXML();
		ParserXMLView pp= new ParserXMLView();
		InputSource myInputSource= new InputSource(new StringReader(bb.toString())); 
		pp.Parse(myInputSource);
		v= pp.getResult();
		v.debug();
	}

}
