// Path: core/src/main/java/com/github/fluentxml4j/internal/parse/FluentXmlParser.java
// public class FluentXmlParser
// {
// 	public ParseNode parse(InputStream in)
// 	{
// 		InputSource inputSource = new InputSource(in);
// 		return parse(inputSource);
// 	}
// 
// 	public ParseNode parse(Reader rd)
// 	{
// 		InputSource inputSource = new InputSource(rd);
// 		return parse(inputSource);
// 	}
// 
// 	public ParseNode parse(File in)
// 	{
// 		InputSource inputSource = new InputSource(in.getAbsolutePath());
// 		return parse(inputSource);
// 	}
// 
// 	public ParseNode parse(URL in)
// 	{
// 		InputSource inputSource = new InputSource(in.toExternalForm());
// 		return parse(inputSource);
// 	}
// 
// 	public ParseNode parse(InputSource inputSource)
// 	{
// 		return new ParseNode()
// 		{
// 			public ParseWithDocumentBuilderNode withDocumentBuilder(DocumentBuilderConfigurer documentBuilderConfigurer)
// 			{
// 				return () -> {
// 					try
// 					{
// 						DocumentBuilder documentBuilder = documentBuilderConfigurer.getDocumentBuilder();
// 						return documentBuilder.parse(inputSource);
// 					}
// 					catch (SAXException | IOException ex)
// 					{
// 						throw new FluentXmlProcessingException(ex);
// 					}
// 				};
// 			}
// 
// 			@Override
// 			public Document document()
// 			{
// 				return withDocumentBuilder(new DocumentBuilderConfigurerAdapter()).document();
// 			}
// 
// 			@Override
// 			@Deprecated
// 			public Document asDocument()
// 			{
// 				return document();
// 			}
// 		};
// 	}
// 
// 	public FromNode from(InputSource in)
// 	{
// 		return () -> FluentXmlParser.this.parse(in);
// 	}
// 
// 	public FromNode from(InputStream in)
// 	{
// 		return () -> FluentXmlParser.this.parse(in);
// 	}
// 
// 	public FromNode from(Reader in)
// 	{
// 		return () -> FluentXmlParser.this.parse(in);
// 	}
// 
// 	public FromNode from(File file)
// 	{
// 		return () -> FluentXmlParser.this.parse(file);
// 	}
// 
// 	public FromNode from(URL url)
// 	{
// 		return () -> FluentXmlParser.this.parse(url);
// 	}
// }
// 
// Path: core/src/main/java/com/github/fluentxml4j/parse/ParseNode.java
// public interface ParseNode
// {
// 	ParseWithDocumentBuilderNode withDocumentBuilder(DocumentBuilderConfigurer documentBuilderConfigurer);
// 
// 	Document document();
// 
// 	/**
// 	 * @deprecated Use {@link #document()} instead.
// 	 * @return The document parsed.
// 	 */
// 	@Deprecated
// 	Document asDocument();
// }
// 
// Path: core/src/main/java/com/github/fluentxml4j/FluentXml.java
// public static FromNode from(File in)
// {
// 	return () -> fluentXmlParser.get().parse(in);
// }
// 
// Path: core/src/main/java/com/github/fluentxml4j/FluentXml.java
// public static ParseNode parse(File in)
// {
// 	return fluentXmlParser.get().parse(in);
// }


import com.github.fluentxml4j.internal.parse.FluentXmlParser;
import com.github.fluentxml4j.parse.ParseNode;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import java.io.File;
import java.io.InputStream;
import java.io.Reader;
import java.net.URL;
import static com.github.fluentxml4j.FluentXml.from;
import static com.github.fluentxml4j.FluentXml.parse;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.when;
	@Mock
	private Reader reader;

	@Mock
	private InputSource inputSource;

	@Mock
	private Document document;

	private URL url;

	@Mock
	private File file;

	@Before
	public void setUp() throws Exception
	{
		this.url = new URL("http://www.example.com");
		fluentXmlInjectionRule.setFluentXmlParser(fluentXmlParser);
		when(fluentXmlParser.parse(url)).thenReturn(parseNode);
		when(fluentXmlParser.parse(file)).thenReturn(parseNode);
		when(fluentXmlParser.parse(inputStream)).thenReturn(parseNode);
		when(fluentXmlParser.parse(reader)).thenReturn(parseNode);
		when(fluentXmlParser.parse(inputSource)).thenReturn(parseNode);
		when(parseNode.document()).thenReturn(document);
	}

	@Test
	public void parseFromInputStream()
	{
// Path: core/src/main/java/com/github/fluentxml4j/internal/parse/FluentXmlParser.java
// public class FluentXmlParser
// {
// 	public ParseNode parse(InputStream in)
// 	{
// 		InputSource inputSource = new InputSource(in);
// 		return parse(inputSource);
// 	}
// 
// 	public ParseNode parse(Reader rd)
// 	{
// 		InputSource inputSource = new InputSource(rd);
// 		return parse(inputSource);
// 	}
// 
// 	public ParseNode parse(File in)
// 	{
// 		InputSource inputSource = new InputSource(in.getAbsolutePath());
// 		return parse(inputSource);
// 	}
// 
// 	public ParseNode parse(URL in)
// 	{
// 		InputSource inputSource = new InputSource(in.toExternalForm());
// 		return parse(inputSource);
// 	}
// 
// 	public ParseNode parse(InputSource inputSource)
// 	{
// 		return new ParseNode()
// 		{
// 			public ParseWithDocumentBuilderNode withDocumentBuilder(DocumentBuilderConfigurer documentBuilderConfigurer)
// 			{
// 				return () -> {
// 					try
// 					{
// 						DocumentBuilder documentBuilder = documentBuilderConfigurer.getDocumentBuilder();
// 						return documentBuilder.parse(inputSource);
// 					}
// 					catch (SAXException | IOException ex)
// 					{
// 						throw new FluentXmlProcessingException(ex);
// 					}
// 				};
// 			}
// 
// 			@Override
// 			public Document document()
// 			{
// 				return withDocumentBuilder(new DocumentBuilderConfigurerAdapter()).document();
// 			}
// 
// 			@Override
// 			@Deprecated
// 			public Document asDocument()
// 			{
// 				return document();
// 			}
// 		};
// 	}
// 
// 	public FromNode from(InputSource in)
// 	{
// 		return () -> FluentXmlParser.this.parse(in);
// 	}
// 
// 	public FromNode from(InputStream in)
// 	{
// 		return () -> FluentXmlParser.this.parse(in);
// 	}
// 
// 	public FromNode from(Reader in)
// 	{
// 		return () -> FluentXmlParser.this.parse(in);
// 	}
// 
// 	public FromNode from(File file)
// 	{
// 		return () -> FluentXmlParser.this.parse(file);
// 	}
// 
// 	public FromNode from(URL url)
// 	{
// 		return () -> FluentXmlParser.this.parse(url);
// 	}
// }
// 
// Path: core/src/main/java/com/github/fluentxml4j/parse/ParseNode.java
// public interface ParseNode
// {
// 	ParseWithDocumentBuilderNode withDocumentBuilder(DocumentBuilderConfigurer documentBuilderConfigurer);
// 
// 	Document document();
// 
// 	/**
// 	 * @deprecated Use {@link #document()} instead.
// 	 * @return The document parsed.
// 	 */
// 	@Deprecated
// 	Document asDocument();
// }
// 
// Path: core/src/main/java/com/github/fluentxml4j/FluentXml.java
// public static FromNode from(File in)
// {
// 	return () -> fluentXmlParser.get().parse(in);
// }
// 
// Path: core/src/main/java/com/github/fluentxml4j/FluentXml.java
// public static ParseNode parse(File in)
// {
// 	return fluentXmlParser.get().parse(in);
// }


// Path: core/src/test/java/com/github/fluentxml4j/FluentXmlParseTest.java
import com.github.fluentxml4j.internal.parse.FluentXmlParser;
import com.github.fluentxml4j.parse.ParseNode;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import java.io.File;
import java.io.InputStream;
import java.io.Reader;
import java.net.URL;
import static com.github.fluentxml4j.FluentXml.from;
import static com.github.fluentxml4j.FluentXml.parse;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.when;

	@Mock
	private Reader reader;

	@Mock
	private InputSource inputSource;

	@Mock
	private Document document;

	private URL url;

	@Mock
	private File file;

	@Before
	public void setUp() throws Exception
	{
		this.url = new URL("http://www.example.com");
		fluentXmlInjectionRule.setFluentXmlParser(fluentXmlParser);
		when(fluentXmlParser.parse(url)).thenReturn(parseNode);
		when(fluentXmlParser.parse(file)).thenReturn(parseNode);
		when(fluentXmlParser.parse(inputStream)).thenReturn(parseNode);
		when(fluentXmlParser.parse(reader)).thenReturn(parseNode);
		when(fluentXmlParser.parse(inputSource)).thenReturn(parseNode);
		when(parseNode.document()).thenReturn(document);
	}

	@Test
	public void parseFromInputStream()
	{
		ParseNode parseNodeReturned = parse(reader);