Skip to content

Instantly share code, notes, and snippets.

class GreetingServiceMockTest : KoinTest {
private val greetingService: GreetingService by inject()
@Test
fun testGreetingInTheMorning() {
startKoin { modules(koinModule) }
declareMock<TimeService> {
given(this.getHourOfDay()).willReturn(9)
}
class MainActivity : AppCompatActivity() {
private val greetingService by inject<GreetingService>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val greetings = findViewById<TextView>(R.id.greetingsTextView)
greetings.text = "${greetingService.greetings()}"
class KoinApplication : Application() {
override fun onCreate() {
super.onCreate()
startKoin {
modules(koinModule)
}
}
}
val koinModule = module {
single { MessageData() }
single<TimeService> { TimeServiceImpl() }
single<GreetingService> {
GreetingServiceImpl(get(), get())
}
}
data class MessageData(val welcomeMessage: String)
interface GreetingService {
fun greetings(): String
}
class GreetingServiceImpl(private val messageData: MessageData, private val timeService: TimeService) :
GreetingService {
override fun greetings(): String {
val timeOfDay = when (timeService.getHourOfDay()) {
#!/bin/bash
set -e
echo "----- Build and Publish Snapshot -----"
chmod u+x gradlew
time1=$(date '+%s')
./gradlew --no-daemon --parallel \
#!/bin/bash
set -e
echo "----- Build and Publish Snapshot -----"
chmod u+x gradlew
time1=$(date '+%s')
./gradlew --no-daemon --parallel \
@Singleton
open class PayBillManager {
@Inject
lateinit var db: IPaybillDataProvider
open suspend fun save(bill: SavedBill?) {
if (bill != null) {
db.payBillDao().insert(bill)
}
@Dao
interface PayBillDao {
@Query("SELECT * from saved_bills ORDER BY biller_name")
suspend fun getAll(): List<SavedBill>
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insert(savedBill: SavedBill)
@Query("DELETE from saved_bills where _id = :id")