samples/effectivelist/test/org/apidesign/effectivelist/ListMixinTest.scala
author Jaroslav Tulach <jtulach@netbeans.org>
Sun, 02 Sep 2012 22:00:13 +0200
changeset 403 ebe08056c60c
child 404 dc0d785c5b5d
permissions -rw-r--r--
Identifying code snippets to be used on my blog
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
}