mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-23 12:42:56 -04:00
#1307 autoformat post merge
This commit is contained in:
parent
cc5f062067
commit
86877e4cc1
@ -10,7 +10,6 @@ import androidx.fragment.app.FragmentActivity
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
import org.kiwix.kiwixmobile.base.BaseActivity
|
||||
|
||||
fun Activity.startActionMode(
|
||||
menuId: Int,
|
||||
@ -51,7 +50,8 @@ inline fun <reified T : Activity> Activity.start() {
|
||||
startActivity(Intent(this, T::class.java))
|
||||
}
|
||||
|
||||
inline fun <reified T : ViewModel> FragmentActivity.viewModel(viewModelFactory: ViewModelProvider.Factory) =
|
||||
inline fun <reified T : ViewModel> FragmentActivity.viewModel(
|
||||
viewModelFactory: ViewModelProvider.Factory
|
||||
) =
|
||||
ViewModelProviders.of(this, viewModelFactory)
|
||||
.get(T::class.java)
|
||||
|
||||
.get(T::class.java)
|
||||
|
@ -15,16 +15,16 @@ import kotlinx.android.synthetic.main.activity_language.toolbar
|
||||
import org.kiwix.kiwixmobile.R
|
||||
import org.kiwix.kiwixmobile.base.BaseActivity
|
||||
import org.kiwix.kiwixmobile.extensions.viewModel
|
||||
import org.kiwix.kiwixmobile.language.viewmodel.Action.Select
|
||||
import org.kiwix.kiwixmobile.language.viewmodel.State.Content
|
||||
import org.kiwix.kiwixmobile.language.viewmodel.State.Loading
|
||||
import org.kiwix.kiwixmobile.language.viewmodel.State.Saving
|
||||
import org.kiwix.kiwixmobile.language.adapter.LanguageAdapter
|
||||
import org.kiwix.kiwixmobile.language.adapter.LanguageDelegate.HeaderDelegate
|
||||
import org.kiwix.kiwixmobile.language.adapter.LanguageDelegate.LanguageItemDelegate
|
||||
import org.kiwix.kiwixmobile.language.viewmodel.Action
|
||||
import org.kiwix.kiwixmobile.language.viewmodel.Action.Select
|
||||
import org.kiwix.kiwixmobile.language.viewmodel.LanguageViewModel
|
||||
import org.kiwix.kiwixmobile.language.viewmodel.State
|
||||
import org.kiwix.kiwixmobile.language.viewmodel.State.Content
|
||||
import org.kiwix.kiwixmobile.language.viewmodel.State.Loading
|
||||
import org.kiwix.kiwixmobile.language.viewmodel.State.Saving
|
||||
import org.kiwix.kiwixmobile.zim_manager.SimpleTextListener
|
||||
import javax.inject.Inject
|
||||
|
||||
@ -38,8 +38,8 @@ class LanguageActivity : BaseActivity() {
|
||||
|
||||
private val languageAdapter =
|
||||
LanguageAdapter(
|
||||
LanguageItemDelegate { languageViewModel.actions.offer(Select(it)) },
|
||||
HeaderDelegate()
|
||||
LanguageItemDelegate { languageViewModel.actions.offer(Select(it)) },
|
||||
HeaderDelegate()
|
||||
)
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
@ -57,16 +57,14 @@ class LanguageActivity : BaseActivity() {
|
||||
layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, false)
|
||||
setHasFixedSize(true)
|
||||
}
|
||||
languageViewModel.state.observe(this, Observer {
|
||||
render(it)
|
||||
})
|
||||
languageViewModel.state.observe(this, Observer(::render))
|
||||
compositeDisposable.add(
|
||||
languageViewModel.effects.subscribe(
|
||||
{
|
||||
it.invokeWith(this)
|
||||
},
|
||||
Throwable::printStackTrace
|
||||
)
|
||||
languageViewModel.effects.subscribe(
|
||||
{
|
||||
it.invokeWith(this)
|
||||
},
|
||||
Throwable::printStackTrace
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@ -106,5 +104,4 @@ class LanguageActivity : BaseActivity() {
|
||||
}
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,22 +9,21 @@ import org.kiwix.kiwixmobile.language.adapter.LanguageListViewHolder.HeaderViewH
|
||||
import org.kiwix.kiwixmobile.language.adapter.LanguageListViewHolder.LanguageViewHolder
|
||||
import org.kiwix.kiwixmobile.zim_manager.library_view.adapter.base.AbsDelegateAdapter
|
||||
|
||||
sealed class LanguageDelegate<I : LanguageListItem, VH : LanguageListViewHolder<I>> :
|
||||
AbsDelegateAdapter<I, LanguageListItem, VH> {
|
||||
sealed class LanguageDelegate<I : LanguageListItem, out VH : LanguageListViewHolder<I>> :
|
||||
AbsDelegateAdapter<I, LanguageListItem, VH> {
|
||||
|
||||
class HeaderDelegate : LanguageDelegate<HeaderItem, HeaderViewHolder>() {
|
||||
override val itemClass = HeaderItem::class.java
|
||||
|
||||
override fun createViewHolder(parent: ViewGroup) =
|
||||
HeaderViewHolder(parent.inflate(R.layout.header_date, false))
|
||||
|
||||
}
|
||||
|
||||
class LanguageItemDelegate(private val clickAction: (LanguageItem) -> Unit) : LanguageDelegate<LanguageItem, LanguageViewHolder>() {
|
||||
class LanguageItemDelegate(private val clickAction: (LanguageItem) -> Unit) :
|
||||
LanguageDelegate<LanguageItem, LanguageViewHolder>() {
|
||||
override val itemClass = LanguageItem::class.java
|
||||
|
||||
override fun createViewHolder(parent: ViewGroup) =
|
||||
LanguageViewHolder(parent.inflate(R.layout.item_language, false), clickAction)
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,6 @@ sealed class LanguageListItem {
|
||||
const val SELECTED = Long.MAX_VALUE
|
||||
const val OTHER = Long.MIN_VALUE
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
data class LanguageItem(
|
||||
|
@ -12,13 +12,13 @@ import org.kiwix.kiwixmobile.language.adapter.LanguageListItem.HeaderItem
|
||||
import org.kiwix.kiwixmobile.language.adapter.LanguageListItem.LanguageItem
|
||||
import org.kiwix.kiwixmobile.zim_manager.library_view.adapter.base.BaseViewHolder
|
||||
|
||||
sealed class LanguageListViewHolder<T : LanguageListItem>(override val containerView: View) :
|
||||
BaseViewHolder<T>(containerView) {
|
||||
sealed class LanguageListViewHolder<in T : LanguageListItem>(override val containerView: View) :
|
||||
BaseViewHolder<T>(containerView) {
|
||||
class HeaderViewHolder(view: View) : LanguageListViewHolder<HeaderItem>(view) {
|
||||
override fun bind(item: HeaderItem) {
|
||||
header_date.setText(
|
||||
if (item.id == HeaderItem.SELECTED) R.string.your_languages
|
||||
else R.string.other_languages
|
||||
if (item.id == HeaderItem.SELECTED) R.string.your_languages
|
||||
else R.string.other_languages
|
||||
)
|
||||
}
|
||||
}
|
||||
@ -32,11 +32,10 @@ sealed class LanguageListViewHolder<T : LanguageListItem>(override val container
|
||||
item_language_name.text = language.language
|
||||
item_language_localized_name.text = language.languageLocalized
|
||||
item_language_books_count.text = containerView.resources.getQuantityString(
|
||||
R.plurals.books_count, language.occurencesOfLanguage, language.occurencesOfLanguage
|
||||
R.plurals.books_count, language.occurencesOfLanguage, language.occurencesOfLanguage
|
||||
)
|
||||
item_language_checkbox.isChecked = language.active
|
||||
item_language_clickable_area.setOnClickListener { clickAction(item) }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -28,16 +28,16 @@ class LanguageViewModel @Inject constructor(
|
||||
|
||||
init {
|
||||
compositeDisposable.addAll(
|
||||
actions.map { reduce(it, state.value!!) }
|
||||
.distinctUntilChanged()
|
||||
.subscribe(state::postValue, Throwable::printStackTrace),
|
||||
languageDao.languages().filter { it.isNotEmpty() }
|
||||
.subscribe(
|
||||
{
|
||||
actions.offer(UpdateLanguages(it))
|
||||
},
|
||||
Throwable::printStackTrace
|
||||
)
|
||||
actions.map { reduce(it, state.value!!) }
|
||||
.distinctUntilChanged()
|
||||
.subscribe(state::postValue, Throwable::printStackTrace),
|
||||
languageDao.languages().filter { it.isNotEmpty() }
|
||||
.subscribe(
|
||||
{
|
||||
actions.offer(UpdateLanguages(it))
|
||||
},
|
||||
Throwable::printStackTrace
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@ -71,9 +71,9 @@ class LanguageViewModel @Inject constructor(
|
||||
|
||||
private fun saveAll(currentState: Content): State {
|
||||
effects.offer(
|
||||
SaveLanguagesAndFinish(
|
||||
currentState.items, languageDao
|
||||
)
|
||||
SaveLanguagesAndFinish(
|
||||
currentState.items, languageDao
|
||||
)
|
||||
)
|
||||
return Saving
|
||||
}
|
||||
@ -87,5 +87,4 @@ class LanguageViewModel @Inject constructor(
|
||||
filter: String,
|
||||
currentState: Content
|
||||
) = currentState.updateFilter(filter)
|
||||
|
||||
}
|
||||
|
@ -31,9 +31,9 @@ data class SaveLanguagesAndFinish(
|
||||
|
||||
override fun invokeWith(activity: Activity) {
|
||||
Flowable.fromCallable { languageDao.insert(languages) }
|
||||
.subscribeOn(Schedulers.io())
|
||||
.subscribe({
|
||||
activity.finish()
|
||||
}, Throwable::printStackTrace)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.subscribe({
|
||||
activity.finish()
|
||||
}, Throwable::printStackTrace)
|
||||
}
|
||||
}
|
||||
|
@ -12,12 +12,12 @@ sealed class State {
|
||||
val items: List<Language>,
|
||||
val filter: String = "",
|
||||
val viewItems: List<LanguageListItem> = createViewList(
|
||||
items, filter
|
||||
items, filter
|
||||
)
|
||||
) : State() {
|
||||
fun select(languageItem: LanguageItem) = Content(
|
||||
items.map { if (it.id == languageItem.id) it.copy(active = !it.active) else it },
|
||||
filter
|
||||
items.map { if (it.id == languageItem.id) it.copy(active = !it.active) else it },
|
||||
filter
|
||||
)
|
||||
|
||||
fun updateFilter(filter: String) = Content(items, filter)
|
||||
@ -27,7 +27,7 @@ sealed class State {
|
||||
items: List<Language>,
|
||||
filter: String
|
||||
) = activeItems(
|
||||
items, filter
|
||||
items, filter
|
||||
) + otherItems(items, filter)
|
||||
|
||||
private fun activeItems(
|
||||
@ -35,7 +35,7 @@ sealed class State {
|
||||
filter: String
|
||||
) =
|
||||
createLanguageSection(
|
||||
items, filter, { it.active }, HeaderItem.SELECTED
|
||||
items, filter, Language::active, HeaderItem.SELECTED
|
||||
)
|
||||
|
||||
private fun otherItems(
|
||||
@ -43,7 +43,7 @@ sealed class State {
|
||||
filter: String
|
||||
) =
|
||||
createLanguageSection(
|
||||
items, filter, { !it.active }, HeaderItem.OTHER
|
||||
items, filter, { !it.active }, HeaderItem.OTHER
|
||||
)
|
||||
|
||||
private fun createLanguageSection(
|
||||
@ -52,12 +52,10 @@ sealed class State {
|
||||
filterCondition: (Language) -> Boolean,
|
||||
headerId: Long
|
||||
) = items.filter(filterCondition)
|
||||
.filter { filter.isEmpty() or it.matches(filter) }
|
||||
.takeIf { it.isNotEmpty() }
|
||||
?.let { listOf(HeaderItem(headerId)) + it.map { language -> LanguageItem(language) } }
|
||||
?: emptyList()
|
||||
|
||||
.filter { filter.isEmpty() or it.matches(filter) }
|
||||
.takeIf { it.isNotEmpty() }
|
||||
?.let { listOf(HeaderItem(headerId)) + it.map { language -> LanguageItem(language) } }
|
||||
?: emptyList()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -131,9 +131,9 @@ class LibraryFragment : BaseFragment() {
|
||||
}
|
||||
NOT_CONNECTED -> {
|
||||
if (libraryAdapter.itemCount > 0) {
|
||||
context.toast(R.string.no_network_connection)
|
||||
context.toast(string.no_network_connection)
|
||||
} else {
|
||||
libraryErrorText.setText(R.string.no_network_connection)
|
||||
libraryErrorText.setText(string.no_network_connection)
|
||||
libraryErrorText.visibility = VISIBLE
|
||||
}
|
||||
}
|
||||
@ -144,8 +144,8 @@ class LibraryFragment : BaseFragment() {
|
||||
libraryAdapter.items = it!!
|
||||
if (it.isEmpty()) {
|
||||
libraryErrorText.setText(
|
||||
if (isNotConnected) R.string.no_network_connection
|
||||
else R.string.no_items_msg
|
||||
if (isNotConnected) string.no_network_connection
|
||||
else string.no_items_msg
|
||||
)
|
||||
libraryErrorText.visibility = VISIBLE
|
||||
TestingUtils.unbindResource(LibraryFragment::class.java)
|
||||
@ -156,7 +156,7 @@ class LibraryFragment : BaseFragment() {
|
||||
|
||||
private fun refreshFragment() {
|
||||
if (isNotConnected) {
|
||||
context.toast(R.string.no_network_connection)
|
||||
context.toast(string.no_network_connection)
|
||||
} else {
|
||||
zimManageViewModel.requestDownloadLibrary.onNext(Unit)
|
||||
}
|
||||
@ -170,8 +170,8 @@ class LibraryFragment : BaseFragment() {
|
||||
sharedPreferenceUtil.putPrefStorage(storageDevice.name)
|
||||
sharedPreferenceUtil.putPrefStorageTitle(
|
||||
getString(
|
||||
if (storageDevice.isInternal) R.string.internal_storage
|
||||
else R.string.external_storage
|
||||
if (storageDevice.isInternal) string.internal_storage
|
||||
else string.external_storage
|
||||
)
|
||||
)
|
||||
}
|
||||
@ -180,19 +180,19 @@ class LibraryFragment : BaseFragment() {
|
||||
when {
|
||||
notEnoughSpaceAvailable(item) -> {
|
||||
context.toast(
|
||||
getString(R.string.download_no_space) +
|
||||
"\n" + getString(R.string.space_available) + " " +
|
||||
getString(string.download_no_space) +
|
||||
"\n" + getString(string.space_available) + " " +
|
||||
LibraryUtils.bytesToHuman(spaceAvailable)
|
||||
)
|
||||
libraryList.snack(
|
||||
R.string.download_change_storage,
|
||||
R.string.open,
|
||||
string.download_change_storage,
|
||||
string.open,
|
||||
::showStorageSelectDialog
|
||||
)
|
||||
return
|
||||
}
|
||||
isNotConnected -> {
|
||||
context.toast(R.string.no_network_connection)
|
||||
context.toast(string.no_network_connection)
|
||||
return
|
||||
}
|
||||
noWifiWithWifiOnlyPreferenceSet -> {
|
||||
|
@ -18,7 +18,6 @@
|
||||
package org.kiwix.kiwixmobile.zim_manager.library_view.adapter
|
||||
|
||||
import android.view.ViewGroup
|
||||
import org.kiwix.kiwixmobile.R
|
||||
import org.kiwix.kiwixmobile.R.layout
|
||||
import org.kiwix.kiwixmobile.extensions.inflate
|
||||
import org.kiwix.kiwixmobile.utils.BookUtils
|
||||
@ -39,7 +38,7 @@ sealed class LibraryDelegate<I : LibraryListItem, out VH : LibraryViewHolder<I>>
|
||||
|
||||
override fun createViewHolder(parent: ViewGroup) =
|
||||
LibraryBookViewHolder(
|
||||
parent.inflate(R.layout.library_item, false),
|
||||
parent.inflate(layout.library_item, false),
|
||||
bookUtils,
|
||||
clickAction
|
||||
)
|
||||
|
@ -27,7 +27,7 @@ class AdapterDelegateManager<T> {
|
||||
for (index in 0..delegates.size()) {
|
||||
val valueAt = delegates.valueAt(index)
|
||||
if (valueAt?.isFor(item) == true) {
|
||||
return index;
|
||||
return index
|
||||
}
|
||||
}
|
||||
throw RuntimeException("No delegate registered for $item")
|
||||
|
@ -88,8 +88,8 @@ fun language(
|
||||
languageCode: String = "",
|
||||
languageCodeISO2: String = ""
|
||||
) = Language(
|
||||
id, isActive, occurencesOfLanguage, language, languageLocalized, languageCode,
|
||||
languageCodeISO2
|
||||
id, isActive, occurencesOfLanguage, language, languageLocalized, languageCode,
|
||||
languageCodeISO2
|
||||
)
|
||||
|
||||
fun languageItem(language: Language = language()) =
|
||||
|
@ -48,7 +48,7 @@ class LanguageDelegateTest {
|
||||
mockkStatic("org.kiwix.kiwixmobile.extensions.ViewGroupExtensionsKt")
|
||||
every { parent.inflate(R.layout.header_date, false) } returns mockk(relaxed = true)
|
||||
assertThat(HeaderDelegate().createViewHolder(parent))
|
||||
.isInstanceOf(HeaderViewHolder::class.java)
|
||||
.isInstanceOf(HeaderViewHolder::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@ class LanguageDelegateTest {
|
||||
inner class LanguageItemDelegateTests {
|
||||
@Test
|
||||
fun `class is lanuguage item`() {
|
||||
assertThat(LanguageItemDelegate({}).itemClass).isEqualTo(LanguageItem::class.java)
|
||||
assertThat(LanguageItemDelegate {}.itemClass).isEqualTo(LanguageItem::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -66,7 +66,7 @@ class LanguageDelegateTest {
|
||||
every { parent.inflate(R.layout.item_language, false) } returns mockk(relaxed = true)
|
||||
val clickAction = mockk<(LanguageItem) -> Unit>()
|
||||
assertThat(LanguageItemDelegate(clickAction).createViewHolder(parent))
|
||||
.isInstanceOf(LanguageViewHolder::class.java)
|
||||
.isInstanceOf(LanguageViewHolder::class.java)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -69,33 +69,33 @@ class LanguageViewModelTest {
|
||||
@Test
|
||||
fun `initial state is Loading`() {
|
||||
languageViewModel.state.test()
|
||||
.assertValueHistory(Loading)
|
||||
.assertValueHistory(Loading)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `an empty languages emission does not send update action`() {
|
||||
languageViewModel.actions.test()
|
||||
.also {
|
||||
languages.offer(listOf())
|
||||
}
|
||||
.assertValues()
|
||||
.also {
|
||||
languages.offer(listOf())
|
||||
}
|
||||
.assertValues()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `a languages emission sends update action`() {
|
||||
val expectedList = listOf(language())
|
||||
languageViewModel.actions.test()
|
||||
.also {
|
||||
languages.offer(expectedList)
|
||||
}
|
||||
.assertValues(UpdateLanguages(expectedList))
|
||||
.also {
|
||||
languages.offer(expectedList)
|
||||
}
|
||||
.assertValues(UpdateLanguages(expectedList))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `UpdateLanguages Action changes state to Content when Loading`() {
|
||||
languageViewModel.actions.offer(UpdateLanguages(listOf()))
|
||||
languageViewModel.state.test()
|
||||
.assertValueHistory(Content(listOf()))
|
||||
.assertValueHistory(Content(listOf()))
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -103,7 +103,7 @@ class LanguageViewModelTest {
|
||||
languageViewModel.actions.offer(UpdateLanguages(listOf()))
|
||||
languageViewModel.actions.offer(UpdateLanguages(listOf()))
|
||||
languageViewModel.state.test()
|
||||
.assertValueHistory(Content(listOf()))
|
||||
.assertValueHistory(Content(listOf()))
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -111,14 +111,14 @@ class LanguageViewModelTest {
|
||||
languageViewModel.actions.offer(UpdateLanguages(listOf()))
|
||||
languageViewModel.actions.offer(Filter("filter"))
|
||||
languageViewModel.state.test()
|
||||
.assertValueHistory(Content(listOf(), filter = "filter"))
|
||||
.assertValueHistory(Content(listOf(), filter = "filter"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `Filter Action has no effect on other states`() {
|
||||
languageViewModel.actions.offer(Filter(""))
|
||||
languageViewModel.state.test()
|
||||
.assertValueHistory(Loading)
|
||||
.assertValueHistory(Loading)
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -126,32 +126,32 @@ class LanguageViewModelTest {
|
||||
languageViewModel.actions.offer(UpdateLanguages(listOf(language())))
|
||||
languageViewModel.actions.offer(Select(languageItem()))
|
||||
languageViewModel.state.test()
|
||||
.assertValueHistory(Content(listOf(language(isActive = true))))
|
||||
.assertValueHistory(Content(listOf(language(isActive = true))))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `Select Action has no effect on other states`() {
|
||||
languageViewModel.actions.offer(Select(languageItem()))
|
||||
languageViewModel.state.test()
|
||||
.assertValueHistory(Loading)
|
||||
.assertValueHistory(Loading)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `SaveAll changes Content to Saving with SideEffect SaveLanguagesAndFinish`() {
|
||||
languageViewModel.actions.offer(UpdateLanguages(listOf()))
|
||||
languageViewModel.effects.test()
|
||||
.also {
|
||||
languageViewModel.actions.offer(SaveAll)
|
||||
}
|
||||
.assertValues(SaveLanguagesAndFinish(listOf(), newLanguagesDao))
|
||||
.also {
|
||||
languageViewModel.actions.offer(SaveAll)
|
||||
}
|
||||
.assertValues(SaveLanguagesAndFinish(listOf(), newLanguagesDao))
|
||||
languageViewModel.state.test()
|
||||
.assertValueHistory(Saving)
|
||||
.assertValueHistory(Saving)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `SaveAll has no effect on other states`() {
|
||||
languageViewModel.actions.offer(SaveAll)
|
||||
languageViewModel.state.test()
|
||||
.assertValueHistory(Loading)
|
||||
.assertValueHistory(Loading)
|
||||
}
|
||||
}
|
||||
|
@ -33,25 +33,25 @@ class StateTest {
|
||||
fun `creates language list items with headers for active and inactive languages`() {
|
||||
val content = Content(listOf(language(), language(isActive = true)))
|
||||
assertThat(content.viewItems).isEqualTo(
|
||||
listOf(
|
||||
HeaderItem(Long.MAX_VALUE),
|
||||
LanguageItem(language(isActive = true)),
|
||||
HeaderItem(Long.MIN_VALUE),
|
||||
LanguageItem(language())
|
||||
)
|
||||
listOf(
|
||||
HeaderItem(Long.MAX_VALUE),
|
||||
LanguageItem(language(isActive = true)),
|
||||
HeaderItem(Long.MIN_VALUE),
|
||||
LanguageItem(language())
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `filters out based on filter`() {
|
||||
val content = Content(
|
||||
listOf(language(language = "matchesFilter"), language(isActive = true))
|
||||
listOf(language(language = "matchesFilter"), language(isActive = true))
|
||||
).updateFilter("matches")
|
||||
assertThat(content.viewItems).isEqualTo(
|
||||
listOf(
|
||||
HeaderItem(Long.MIN_VALUE),
|
||||
LanguageItem(language(language = "matchesFilter"))
|
||||
)
|
||||
listOf(
|
||||
HeaderItem(Long.MIN_VALUE),
|
||||
LanguageItem(language(language = "matchesFilter"))
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ class LanguageTest {
|
||||
@Nested
|
||||
inner class Equals {
|
||||
@Test
|
||||
@Suppress("UnusedEquals", "ReplaceCallWithBinaryOperator") //cannot == Unit
|
||||
fun `throws exception when object is not language item`() {
|
||||
assertThrows(ClassCastException::class.java) { language().equals(Unit) }
|
||||
}
|
||||
@ -46,9 +47,9 @@ class LanguageTest {
|
||||
@Test
|
||||
fun `is equal when language and active are equal`() {
|
||||
assertThat(
|
||||
language(language = "lang", isActive = true) == language(
|
||||
language = "lang", isActive = true
|
||||
)
|
||||
language(language = "lang", isActive = true) == language(
|
||||
language = "lang", isActive = true
|
||||
)
|
||||
).isTrue()
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user