This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
val orderOrElse: Order = orderById?.apply { | |
// do stuff with order | |
} ?: Order() // orElse with default | |
val orderOrElseThrow: Order = orderById?.apply { | |
// do stuff with order | |
} ?: throw RuntimeException("orElseThrow") // orElseThrow | |
val orderId: Long? = orderById?.let { | |
// do stuff with order |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fun doStuffWithOrder(id: Long) { | |
val orderById: Order? = orderRepository.findOrderById(id) | |
orderById?.run { | |
// do stuff with order | |
} | |
orderById.id // Compiler error: Only safe ?. or non-null asserted calls are allowed on a nullable receiver of type Order? | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public void doStuffWithOrder(Long id) { | |
Optional<Order> orderById = orderRepository.findOrderById(id); | |
orderById.ifPresent( order -> { | |
// do stuff with order | |
}); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.springframework.jdbc.core.JdbcTemplate | |
import org.springframework.jdbc.core.RowMapper | |
import org.springframework.stereotype.Repository | |
@Repository | |
class OrderRepository(private val jdbcTemplate: JdbcTemplate) { | |
private val rowMapper: RowMapper<Order> = RowMapper { rs, i -> Order(rs.getLong("id")) } | |
fun findOrderById(id: Long): Order? { | |
val result = jdbcTemplate.query<Order>("select * from orders where id=:id", rowMapper, id) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.springframework.jdbc.core.JdbcTemplate | |
import org.springframework.jdbc.core.RowMapper | |
import org.springframework.stereotype.Repository | |
import java.util.* | |
@Repository | |
class OrderRepository(private val jdbcTemplate: JdbcTemplate) { | |
private val rowMapper: RowMapper<Order> = RowMapper { rs, i -> Order(rs.getLong("id")) } | |
fun findOrderById(id: Long): Optional<Order> { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.springframework.jdbc.core.JdbcTemplate; | |
import org.springframework.jdbc.core.RowMapper; | |
import org.springframework.stereotype.Repository; | |
import java.util.List; | |
import java.util.Optional; | |
@Repository | |
public class OrderRepository { | |
private static final RowMapper<Order> rowMapper = (rs, i) -> new Order(rs.getLong("id")); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@RunWith(JMockit::class) | |
class AddressBookTestKt { | |
@Injectable | |
private lateinit var addressBookRepository: AddressBookRepository | |
@Tested | |
private lateinit var addressBook: AddressBook | |
@Test | |
fun retrieveAddressByIdTest() { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
inline fun expectations(crossinline block: KExpectations.() -> Unit) { | |
object : KExpectations() { | |
init { | |
block() | |
} | |
} | |
} | |
inline fun verifications(crossinline block: KVerifications.() -> Unit) { | |
object : KVerifications() { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
expectations { | |
// Instruct mocks | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
object : Expectations() { | |
init { | |
// Instruct mocks | |
} | |
} |