jtulach@403
|
1 |
package org.apidesign.effectivelist
|
jtulach@403
|
2 |
|
jtulach@403
|
3 |
import org.junit._
|
jtulach@403
|
4 |
import Assert._
|
jtulach@403
|
5 |
|
jtulach@403
|
6 |
// BEGIN: effectivelist.point
|
jtulach@403
|
7 |
class Point(val x: Int, val y : Int);
|
jtulach@403
|
8 |
// END: effectivelist.point
|
jtulach@403
|
9 |
|
jtulach@403
|
10 |
class ListMixinTest {
|
jtulach@403
|
11 |
// BEGIN: effectivelist.convert
|
jtulach@403
|
12 |
class ListablePoint(x: Int, y: Int) extends Point(x,y) with Listable[ListablePoint] {
|
jtulach@403
|
13 |
def this(r : Point) = this(r.x, r.y)
|
jtulach@403
|
14 |
}
|
jtulach@403
|
15 |
implicit def toList(p : Point) : ListablePoint = new ListablePoint(p)
|
jtulach@403
|
16 |
|
jtulach@403
|
17 |
@Test def useThePlainOldPointInList : Unit = {
|
jtulach@403
|
18 |
val list = new List[ListablePoint]
|
jtulach@403
|
19 |
list.add(new Point(10, 20))
|
jtulach@403
|
20 |
assertEquals("One element", 1, list.size)
|
jtulach@403
|
21 |
assertEquals("X is 10", 10, list.get(0).x)
|
jtulach@403
|
22 |
assertEquals("y is 20", 20, list.get(0).y)
|
jtulach@403
|
23 |
}
|
jtulach@403
|
24 |
// END: effectivelist.convert
|
jtulach@403
|
25 |
|
jtulach@403
|
26 |
}
|