package org.exist.fluent;
import static org.junit.Assert.*;
import org.junit.Test;
public class ItemTest extends DatabaseTestCase {
@Test public void equals1() {
Item item1 = db.query().single("3"), item2 = db.query().single("3");
assertTrue(item1.equals(item2));
assertEquals(item1.hashCode(), item2.hashCode());
}
@Test public void equals2() {
Item item1 = db.query().single("2"), item2 = db.query().single("3");
assertFalse(item1.equals(item2));
// can't assert anything about their hashcodes
}
@Test public void equals3() {
Item item1 = db.query().single("2"), item2 = db.query().single("'foo'");
assertFalse(item1.equals(item2));
// can't assert anything about their hashcodes
}
@Test public void equals4() {
XMLDocument doc = db.createFolder("/top").documents().build(Name.create("test"))
.elem("root")
.elem("text1").text("foo").end("text1")
.elem("text2").text("foo").end("text2")
.end("root").commit();
Item item1 = doc.query().single("xs:string(//text1/text())");
Item item2 = doc.query().single("xs:string(//text2/text())");
assertTrue(item1.equals(item2));
assertEquals(item1.hashCode(), item2.hashCode());
}
@Test public void convertToSequence() {
XMLDocument doc = db.createFolder("/top").documents().build(Name.create("test"))
.elem("a")
.elem("b")
.elem("c").end("c")
.end("b")
.elem("d")
.elem("c").end("c")
.end("d")
.elem("c").end("c")
.end("a").commit();
assertEquals(3, doc.query().all("//c").size());
Item res = doc.query().single("//b");
assertEquals(1, doc.query().all("$_1//c", res).size());
}
@Test public void toItemList() {
Item item = db.query().single("3");
ItemList list = item.toItemList();
assertEquals(1, list.size());
assertEquals(item, list.get(0));
}
@Test public void comparableValue() {
Item item1 = db.query().single("3"), item2 = db.query().single("4");
assertTrue(item1.comparableValue().compareTo(item2.comparableValue()) < 0);
}
}