Skip to content

Instantly share code, notes, and snippets.

View kozmi55's full-sized avatar

kozmi55

  • Instructure
View GitHub Profile
class UserRepository(
private val userService: UserService) {
fun getUsers(page: Int) = userService.getUsers(page)
fun getDetails(userId: Long) : Single<DetailsModel> {
return Single.zip(
userService.getQuestionsByUser(userId),
userService.getAnswersByUser(userId),
userService.getFavoritesByUser(userId),
class UserRepository(
private val userService: UserService,
private val questionService: QuestionService) {
fun getUsers(page: Int) = userService.getUsers(page)
fun getDetails(userId: Long) : Single<DetailsModel> {
return Single.zip(
userService.getQuestionsByUser(userId),
getAnswers(userId),
class UserRepository(private val userService: UserService) {
fun getUsers(page: Int) = userService.getUsers(page)
fun getDetails(userId: Long) : Single<DetailsModel> {
// TODO We will implement this method
return Single.create { emitter ->
val detailsModel = DetailsModel(emptyList(), emptyList(), emptyList())
emitter.onSuccess(detailsModel)
}
@Dao
interface UserDao {
@Query("SELECT * FROM user ORDER BY reputation DESC LIMIT (:arg0 - 1) * 30, 30")
fun getUsers(page: Int) : List<User>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertAll(users: List<User>)
}
@RunWith(AndroidJUnit4::class)
class UserDaoTest {
lateinit var userDao: UserDao
lateinit var database: AppDatabase
@Before
fun setup() {
val context = InstrumentationRegistry.getTargetContext()
database = Room.inMemoryDatabaseBuilder(context, AppDatabase::class.java).build()
class UserRepository(
private val userService: UserService,
private val userDao: UserDao,
private val connectionHelper: ConnectionHelper,
private val preferencesHelper: PreferencesHelper,
private val calendarWrapper: CalendarWrapper) {
private val LAST_UPDATE_KEY = "last_update_page_"
fun getUsers(page: Int, forced: Boolean): Single<UserListModel> {
class UserRepositoryTest {
@Mock
lateinit var mockUserService: UserService
@Mock
lateinit var mockUserDao: UserDao
@Mock
lateinit var mockConnectionHelper: ConnectionHelper
class GetUsers(private val userRepository: UserRepository) {
fun execute(page: Int, forced: Boolean) : Single<List<UserViewModel>> {
val usersList = userRepository.getUsers(page, forced)
return usersList.map { userListModel: UserListModel? ->
val items = userListModel?.items ?: emptyList()
items.map { UserViewModel(it.userId, it.displayName, it.reputation, it.profileImage) }
}
}
}
class UserListPresenter(
private val getUsers: GetUsers) : BasePresenter<UserListView>() {
private val offset = 5
private var page = 1
private var loading = false
fun getUsers(forced: Boolean = false) {
loading = true
class UserListPresenterTest {
@Mock
lateinit var mockGetUsers: GetUsers
@Mock
lateinit var mockView: UserListView
lateinit var userListPresenter: UserListPresenter