Files
kotlin-fork/libraries/stdlib/test/language/StringExpressionExampleTest.kt
T
2015-10-08 17:48:33 +03:00

47 lines
1.0 KiB
Kotlin

package language
import org.junit.Test as test
import kotlin.test.*
class Product(val name: String, val price: Double) {
}
class Customer(val name: String, val products: List<Product>) {
}
fun customerTemplate(customer: Customer) = """
<html>
<body>
<h1>Hello ${customer.name}</h1>
<ul>
${customer.products.map{ productSnippet(it) }.joinToString("\n")}
</ul>
<p>lets do some kool stuff</p>
</body>
"""
fun productSnippet(product: Product) = "<li>${product.name}. Price : ${product.price}</li>"
// TODO support number formatting methods?
// fun productSnippet(product: Product) = "<li>${product.name}. Price : ${product.price.format('## ###,00')} </li>"
val EXPECTED = """
<html>
<body>
<h1>Hello James</h1>
<ul>
<li>Beer. Price : 1.99</li>
<li>Wine. Price : 5.99</li>
</ul>
<p>lets do some kool stuff</p>
</body>
"""
class StringExpressionExampleTest {
val customer = Customer("James", arrayListOf(Product("Beer", 1.99), Product("Wine", 5.99)))
@test fun testExpressions(): Unit {
assertEquals(EXPECTED, customerTemplate(customer))
}
}