samples/effectivelist/test/org/apidesign/effectivelist/ListMixinTest.scala
changeset 403 ebe08056c60c
child 404 dc0d785c5b5d
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/samples/effectivelist/test/org/apidesign/effectivelist/ListMixinTest.scala	Sun Sep 02 22:00:13 2012 +0200
     1.3 @@ -0,0 +1,26 @@
     1.4 +package org.apidesign.effectivelist
     1.5 +
     1.6 +import org.junit._
     1.7 +import Assert._
     1.8 +
     1.9 +// BEGIN: effectivelist.point
    1.10 +class Point(val x: Int, val y : Int);
    1.11 +// END: effectivelist.point
    1.12 +
    1.13 +class ListMixinTest {
    1.14 +  // BEGIN: effectivelist.convert
    1.15 +  class ListablePoint(x: Int, y: Int) extends Point(x,y) with Listable[ListablePoint] {
    1.16 +    def this(r : Point) = this(r.x, r.y)
    1.17 +  }
    1.18 +  implicit def toList(p : Point) : ListablePoint = new ListablePoint(p)
    1.19 +
    1.20 +  @Test def useThePlainOldPointInList : Unit = {
    1.21 +    val list = new List[ListablePoint]
    1.22 +    list.add(new Point(10, 20))
    1.23 +    assertEquals("One element", 1, list.size)
    1.24 +    assertEquals("X is 10", 10, list.get(0).x)
    1.25 +    assertEquals("y is 20", 20, list.get(0).y)
    1.26 +  }
    1.27 +  // END: effectivelist.convert
    1.28 +
    1.29 +}