Skip to content

Instantly share code, notes, and snippets.

@v3rm0n
Created May 16, 2018 12:26
Show Gist options
  • Save v3rm0n/5fb220475fd578597e120fab5e20d226 to your computer and use it in GitHub Desktop.
Save v3rm0n/5fb220475fd578597e120fab5e20d226 to your computer and use it in GitHub Desktop.
class OrderBuilder {
var id: Long = Random().nextLong()
var userId = 1L
var from = 100.btc
var to = 10.ltc
var rate = 0.5
var status = NEW
private fun build() = Order(id, userId, from, to, rate, status)
companion object {
fun anOrder(block: OrderBuilder.() -> Unit) = OrderBuilder().apply(block).build()
val anOrder = anOrder {}
}
}
//Usage
import com.getchange.test.OrderBuilder.Companion.anOrder
val order = anOrder
val sentOrder = anOrder {status = SENT}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment