jtulach@403: package org.apidesign.effectivelist jtulach@403: jtulach@403: import org.junit._ jtulach@403: import Assert._ jtulach@403: jtulach@403: // BEGIN: effectivelist.point jtulach@403: class Point(val x: Int, val y : Int); jtulach@403: // END: effectivelist.point jtulach@403: jtulach@403: class ListMixinTest { jtulach@403: // BEGIN: effectivelist.convert jtulach@404: class ListablePoint(x: Int, y: Int) jtulach@404: extends Point(x,y) with Listable[ListablePoint] { jtulach@403: def this(r : Point) = this(r.x, r.y) jtulach@403: } jtulach@403: implicit def toList(p : Point) : ListablePoint = new ListablePoint(p) jtulach@403: jtulach@403: @Test def useThePlainOldPointInList : Unit = { jtulach@403: val list = new List[ListablePoint] jtulach@403: list.add(new Point(10, 20)) jtulach@403: assertEquals("One element", 1, list.size) jtulach@403: assertEquals("X is 10", 10, list.get(0).x) jtulach@403: assertEquals("y is 20", 20, list.get(0).y) jtulach@403: } jtulach@403: // END: effectivelist.convert jtulach@403: jtulach@403: }