Skip to content

Тестовое задание для устройства на работу в компанию СтарЛайн, 2022 год

Notifications You must be signed in to change notification settings

SuperVitalSPB/testStarLine

Repository files navigation

starline_test

тестовое задание при приеме на работу, на должность android developer

//Дано:
sealed class Key()
data class OfflineKey(val value: String): Key()
data class OnlineKey(val value: String): Key()
data class Value(val value: String)
interface Gateway {
// По умолчанию - false
val connected: Observable
// Переводит значение connected в true.
fun connect(): Completable
@Throws(IOException::class)
fun get(key: Key): Single
}
interface Interactor {
fun load(keys: List) : Single<Map<Key, Value>>
}
/*

  1. Имплементировать Gateway и Interactor.
    Gateway умеет возвращать значения содержащиеся во входном объекте Key.
    Для объектов типа OnlineKey возвращает значение только если есть соединение.
    Признак наличия соединения содержится в поле connected.
    Interactor умеет загружать все значения через метод Gateway.get
    В случае ошибки получения данных устанавливает соединение через метод
    Gateway.connect() и продолжает загрузку.
  2. Написать тест для interactor.load
    Пример работы теста:
    in:
    listOf(OfflineKey("1"), OnlineKey("2"), OfflineKey("3"))
    out:
    OfflineKey("1"), Value("1")
    OnlineKey("2"), Value("2")
    OfflineKey("3"), Value("3")
    Вопросы по заданию можно задавать на [email protected]
    */

About

Тестовое задание для устройства на работу в компанию СтарЛайн, 2022 год

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages