import testing.SUnit.{Assert, TestCase, TestConsoleMain, TestSuite}
import xml.{NodeSeq, Null, Text, UnprefixedAttribute}
object Test extends TestConsoleMain {
def suite = new TestSuite(UnprefixedAttributeTest, AttributeWithOptionTest)
object UnprefixedAttributeTest extends TestCase("UnprefixedAttribute") with Assert {
override def runTest {
var x = new UnprefixedAttribute("foo","bar", Null)
// always assertX(expected, actual)
assertEquals(Some(Text("bar")), x.get("foo"));
assertEquals(Text("bar"), x("foo"))
assertEquals(None, x.get("no_foo"))
assertEquals(null, x("no_foo"))
val y = x.remove("foo")
assertEquals(Null, y)
val z = new UnprefixedAttribute("foo", null:NodeSeq, x)
assertEquals(None, z.get("foo"))
var appended = x append x append x append x
var len = 0; while (appended ne Null) {
appended = appended.next
len = len + 1
}
assertEquals("removal of duplicates for unprefixed attributes in append", 1, len)
}
}
object AttributeWithOptionTest extends TestCase("AttributeWithOption") with Assert {
override def runTest {
var x = new UnprefixedAttribute("foo", Some(Text("bar")), Null)
assertEquals(Some(Text("bar")), x.get("foo"));
assertEquals(Text("bar"), x("foo"))
assertEquals(None, x.get("no_foo"))
assertEquals(null, x("no_foo"))
val attr1 = Some(Text("foo value"))
val attr2 = None
val y =
assertEquals(Some(Text("foo value")), y.attributes.get("foo"));
assertEquals(Text("foo value"), y.attributes("foo"))
assertEquals(None, y.attributes.get("bar"))
assertEquals(null, y.attributes("bar"))
val z = new UnprefixedAttribute("foo", None, x)
assertEquals(None, z.get("foo")) // None
}
}
object AttributeOutputTest extends TestCase("AttributeOutput") with Assert {
override def runTest {
assertEquals(.toString, "")
assertEquals( .toString, "")
}
}
}