// Path: core/src/main/java/com/github/fluentxml4j/internal/query/FluentQuery.java
// public class FluentQuery
// {
// 	public QueryFromNode from(Node node)
// 	{
// 		return new FromNodeImpl(node, new FluentXPathContext());
// 	}
// }
// 
// Path: core/src/main/java/com/github/fluentxml4j/query/QueryFromNode.java
// public interface QueryFromNode
// {
// 	QueryFromNode withNamespaceMapping(String prefix, String namespaceURI);
// 
// 	QueryFromNode withNamespaceMappings(String... namespaceMappings);
// 
// 	QueryFromNode withNamespaceContext(NamespaceContext namespaceContext);
// 
// 	QueryFromNode withXPath(XPathConfigurer xPathConfigurer);
// 
// 	Optional<Integer> selectInteger(String xPathQuery);
// 
// 	Optional<Boolean> selectBoolean(String xPathQuery);
// 
// 	Optional<String> selectString(String xPathQuery);
// 
// 	Optional<Element> selectElement(String xPathQuery);
// 
// 	Optional<Node> selectNode(String xPathQuery);
// 
// 	SelectMultipleFromNode<Element> selectElements(String xPathQuery);
// 
// 	SelectMultipleFromNode<String> selectStrings(String xPathQuery);
// 
// 	SelectMultipleFromNode<Integer> selectIntegers(String xPathQuery);
// 
// 	SelectMultipleFromNode<Boolean> selectBooleans(String xPathQuery);
// 
// 	SelectMultipleFromNode<Node> selectNodes(String xPathQuery);
// }
// 
// Path: core/src/main/java/com/github/fluentxml4j/FluentXml.java
// public static FromNode from(File in)
// {
// 	return () -> fluentXmlParser.get().parse(in);
// }


import com.github.fluentxml4j.internal.query.FluentQuery;
import com.github.fluentxml4j.query.QueryFromNode;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.w3c.dom.Document;
import static com.github.fluentxml4j.FluentXml.from;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.when;
package com.github.fluentxml4j;



@RunWith(MockitoJUnitRunner.class)
public class FluentXmlQueryTest
{
	@Rule
	public FluentXmlInjectionRule fluentXmlInjectionRule = new FluentXmlInjectionRule();

	@Mock
	private FluentQuery fluentQuery;

	@Mock
	private Document document;

	@Mock
	private QueryFromNode fromNode;

	@Before
	public void setUp()
	{
		fluentXmlInjectionRule.setFluentXPath(this.fluentQuery);
		when(fluentQuery.from(document)).thenReturn(fromNode);
	}

	@Test
	public void serializeDocument()
	{
		QueryFromNode fromNodeReturned = from(document);

// Path: core/src/main/java/com/github/fluentxml4j/internal/query/FluentQuery.java
// public class FluentQuery
// {
// 	public QueryFromNode from(Node node)
// 	{
// 		return new FromNodeImpl(node, new FluentXPathContext());
// 	}
// }
// 
// Path: core/src/main/java/com/github/fluentxml4j/query/QueryFromNode.java
// public interface QueryFromNode
// {
// 	QueryFromNode withNamespaceMapping(String prefix, String namespaceURI);
// 
// 	QueryFromNode withNamespaceMappings(String... namespaceMappings);
// 
// 	QueryFromNode withNamespaceContext(NamespaceContext namespaceContext);
// 
// 	QueryFromNode withXPath(XPathConfigurer xPathConfigurer);
// 
// 	Optional<Integer> selectInteger(String xPathQuery);
// 
// 	Optional<Boolean> selectBoolean(String xPathQuery);
// 
// 	Optional<String> selectString(String xPathQuery);
// 
// 	Optional<Element> selectElement(String xPathQuery);
// 
// 	Optional<Node> selectNode(String xPathQuery);
// 
// 	SelectMultipleFromNode<Element> selectElements(String xPathQuery);
// 
// 	SelectMultipleFromNode<String> selectStrings(String xPathQuery);
// 
// 	SelectMultipleFromNode<Integer> selectIntegers(String xPathQuery);
// 
// 	SelectMultipleFromNode<Boolean> selectBooleans(String xPathQuery);
// 
// 	SelectMultipleFromNode<Node> selectNodes(String xPathQuery);
// }
// 
// Path: core/src/main/java/com/github/fluentxml4j/FluentXml.java
// public static FromNode from(File in)
// {
// 	return () -> fluentXmlParser.get().parse(in);
// }


// Path: core/src/test/java/com/github/fluentxml4j/FluentXmlQueryTest.java
import com.github.fluentxml4j.internal.query.FluentQuery;
import com.github.fluentxml4j.query.QueryFromNode;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.w3c.dom.Document;
import static com.github.fluentxml4j.FluentXml.from;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.when;

package com.github.fluentxml4j;



@RunWith(MockitoJUnitRunner.class)
public class FluentXmlQueryTest
{
	@Rule
	public FluentXmlInjectionRule fluentXmlInjectionRule = new FluentXmlInjectionRule();

	@Mock
	private FluentQuery fluentQuery;

	@Mock
	private Document document;

	@Mock
	private QueryFromNode fromNode;

	@Before
	public void setUp()
	{
		fluentXmlInjectionRule.setFluentXPath(this.fluentQuery);
		when(fluentQuery.from(document)).thenReturn(fromNode);
	}

	@Test
	public void serializeDocument()
	{
		QueryFromNode fromNodeReturned = from(document);

		assertThat(fromNodeReturned, is(this.fromNode));