mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-02-02 12:16:55 +01:00
Makes tests compile
This commit is contained in:
parent
e9737dff75
commit
84645c17c8
@ -6,7 +6,6 @@ import android.support.test.runner.AndroidJUnit4
|
|||||||
import com.zhuinden.monarchy.Monarchy
|
import com.zhuinden.monarchy.Monarchy
|
||||||
import im.vector.matrix.android.InstrumentedTest
|
import im.vector.matrix.android.InstrumentedTest
|
||||||
import im.vector.matrix.android.OkReplayRuleChainNoActivity
|
import im.vector.matrix.android.OkReplayRuleChainNoActivity
|
||||||
import im.vector.matrix.android.api.MatrixOptions
|
|
||||||
import im.vector.matrix.android.api.auth.Authenticator
|
import im.vector.matrix.android.api.auth.Authenticator
|
||||||
import im.vector.matrix.android.internal.auth.AuthModule
|
import im.vector.matrix.android.internal.auth.AuthModule
|
||||||
import im.vector.matrix.android.internal.di.MatrixModule
|
import im.vector.matrix.android.internal.di.MatrixModule
|
||||||
@ -26,7 +25,7 @@ internal class AuthenticatorTest : InstrumentedTest, KoinTest {
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
Monarchy.init(context())
|
Monarchy.init(context())
|
||||||
val matrixModule = MatrixModule(MatrixOptions(context())).definition
|
val matrixModule = MatrixModule(context()).definition
|
||||||
val networkModule = NetworkModule().definition
|
val networkModule = NetworkModule().definition
|
||||||
val authModule = AuthModule().definition
|
val authModule = AuthModule().definition
|
||||||
loadKoinModules(listOf(matrixModule, networkModule, authModule))
|
loadKoinModules(listOf(matrixModule, networkModule, authModule))
|
||||||
|
@ -4,11 +4,7 @@ import com.zhuinden.monarchy.Monarchy
|
|||||||
import im.vector.matrix.android.InstrumentedTest
|
import im.vector.matrix.android.InstrumentedTest
|
||||||
import im.vector.matrix.android.api.session.events.model.Event
|
import im.vector.matrix.android.api.session.events.model.Event
|
||||||
import im.vector.matrix.android.api.session.events.model.EventType
|
import im.vector.matrix.android.api.session.events.model.EventType
|
||||||
import im.vector.matrix.android.internal.database.helper.add
|
import im.vector.matrix.android.internal.database.helper.*
|
||||||
import im.vector.matrix.android.internal.database.helper.addAll
|
|
||||||
import im.vector.matrix.android.internal.database.helper.isUnlinked
|
|
||||||
import im.vector.matrix.android.internal.database.helper.lastStateIndex
|
|
||||||
import im.vector.matrix.android.internal.database.helper.merge
|
|
||||||
import im.vector.matrix.android.internal.database.model.ChunkEntity
|
import im.vector.matrix.android.internal.database.model.ChunkEntity
|
||||||
import im.vector.matrix.android.internal.session.room.timeline.PaginationDirection
|
import im.vector.matrix.android.internal.session.room.timeline.PaginationDirection
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
@ -39,7 +35,7 @@ internal class ChunkEntityTest : InstrumentedTest {
|
|||||||
monarchy.runTransactionSync { realm ->
|
monarchy.runTransactionSync { realm ->
|
||||||
val chunk: ChunkEntity = realm.createObject()
|
val chunk: ChunkEntity = realm.createObject()
|
||||||
val fakeEvent = createFakeEvent(false)
|
val fakeEvent = createFakeEvent(false)
|
||||||
chunk.add(fakeEvent, PaginationDirection.FORWARDS)
|
chunk.add("roomId", fakeEvent, PaginationDirection.FORWARDS)
|
||||||
chunk.events.size shouldEqual 1
|
chunk.events.size shouldEqual 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -49,8 +45,8 @@ internal class ChunkEntityTest : InstrumentedTest {
|
|||||||
monarchy.runTransactionSync { realm ->
|
monarchy.runTransactionSync { realm ->
|
||||||
val chunk: ChunkEntity = realm.createObject()
|
val chunk: ChunkEntity = realm.createObject()
|
||||||
val fakeEvent = createFakeEvent(false)
|
val fakeEvent = createFakeEvent(false)
|
||||||
chunk.add(fakeEvent, PaginationDirection.FORWARDS)
|
chunk.add("roomId", fakeEvent, PaginationDirection.FORWARDS)
|
||||||
chunk.add(fakeEvent, PaginationDirection.FORWARDS)
|
chunk.add("roomId", fakeEvent, PaginationDirection.FORWARDS)
|
||||||
chunk.events.size shouldEqual 1
|
chunk.events.size shouldEqual 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -60,7 +56,7 @@ internal class ChunkEntityTest : InstrumentedTest {
|
|||||||
monarchy.runTransactionSync { realm ->
|
monarchy.runTransactionSync { realm ->
|
||||||
val chunk: ChunkEntity = realm.createObject()
|
val chunk: ChunkEntity = realm.createObject()
|
||||||
val fakeEvent = createFakeEvent(true)
|
val fakeEvent = createFakeEvent(true)
|
||||||
chunk.add(fakeEvent, PaginationDirection.FORWARDS)
|
chunk.add("roomId", fakeEvent, PaginationDirection.FORWARDS)
|
||||||
chunk.lastStateIndex(PaginationDirection.FORWARDS) shouldEqual 1
|
chunk.lastStateIndex(PaginationDirection.FORWARDS) shouldEqual 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -70,7 +66,7 @@ internal class ChunkEntityTest : InstrumentedTest {
|
|||||||
monarchy.runTransactionSync { realm ->
|
monarchy.runTransactionSync { realm ->
|
||||||
val chunk: ChunkEntity = realm.createObject()
|
val chunk: ChunkEntity = realm.createObject()
|
||||||
val fakeEvent = createFakeEvent(false)
|
val fakeEvent = createFakeEvent(false)
|
||||||
chunk.add(fakeEvent, PaginationDirection.FORWARDS)
|
chunk.add("roomId", fakeEvent, PaginationDirection.FORWARDS)
|
||||||
chunk.lastStateIndex(PaginationDirection.FORWARDS) shouldEqual 0
|
chunk.lastStateIndex(PaginationDirection.FORWARDS) shouldEqual 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -81,7 +77,7 @@ internal class ChunkEntityTest : InstrumentedTest {
|
|||||||
val chunk: ChunkEntity = realm.createObject()
|
val chunk: ChunkEntity = realm.createObject()
|
||||||
val fakeEvents = createFakeListOfEvents(30)
|
val fakeEvents = createFakeListOfEvents(30)
|
||||||
val numberOfStateEvents = fakeEvents.filter { it.isStateEvent() }.size
|
val numberOfStateEvents = fakeEvents.filter { it.isStateEvent() }.size
|
||||||
chunk.addAll(fakeEvents, PaginationDirection.FORWARDS)
|
chunk.addAll("roomId", fakeEvents, PaginationDirection.FORWARDS)
|
||||||
chunk.lastStateIndex(PaginationDirection.FORWARDS) shouldEqual numberOfStateEvents
|
chunk.lastStateIndex(PaginationDirection.FORWARDS) shouldEqual numberOfStateEvents
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -94,7 +90,7 @@ internal class ChunkEntityTest : InstrumentedTest {
|
|||||||
val numberOfStateEvents = fakeEvents.filter { it.isStateEvent() }.size
|
val numberOfStateEvents = fakeEvents.filter { it.isStateEvent() }.size
|
||||||
val lastIsState = fakeEvents.last().isStateEvent()
|
val lastIsState = fakeEvents.last().isStateEvent()
|
||||||
val expectedStateIndex = if (lastIsState) -numberOfStateEvents + 1 else -numberOfStateEvents
|
val expectedStateIndex = if (lastIsState) -numberOfStateEvents + 1 else -numberOfStateEvents
|
||||||
chunk.addAll(fakeEvents, PaginationDirection.BACKWARDS)
|
chunk.addAll("roomId", fakeEvents, PaginationDirection.BACKWARDS)
|
||||||
chunk.lastStateIndex(PaginationDirection.BACKWARDS) shouldEqual expectedStateIndex
|
chunk.lastStateIndex(PaginationDirection.BACKWARDS) shouldEqual expectedStateIndex
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -104,20 +100,37 @@ internal class ChunkEntityTest : InstrumentedTest {
|
|||||||
monarchy.runTransactionSync { realm ->
|
monarchy.runTransactionSync { realm ->
|
||||||
val chunk1: ChunkEntity = realm.createObject()
|
val chunk1: ChunkEntity = realm.createObject()
|
||||||
val chunk2: ChunkEntity = realm.createObject()
|
val chunk2: ChunkEntity = realm.createObject()
|
||||||
chunk1.addAll(createFakeListOfEvents(30), PaginationDirection.BACKWARDS)
|
chunk1.addAll("roomId", createFakeListOfEvents(30), PaginationDirection.BACKWARDS)
|
||||||
chunk2.addAll(createFakeListOfEvents(30), PaginationDirection.BACKWARDS)
|
chunk2.addAll("roomId", createFakeListOfEvents(30), PaginationDirection.BACKWARDS)
|
||||||
chunk1.merge(chunk2, PaginationDirection.BACKWARDS)
|
chunk1.merge(chunk2, PaginationDirection.BACKWARDS)
|
||||||
chunk1.events.size shouldEqual 60
|
chunk1.events.size shouldEqual 60
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun merge_shouldAddOnlyDifferentEvents_whenMergingBackward() {
|
||||||
|
monarchy.runTransactionSync { realm ->
|
||||||
|
val chunk1: ChunkEntity = realm.createObject()
|
||||||
|
val chunk2: ChunkEntity = realm.createObject()
|
||||||
|
val eventsForChunk1 = createFakeListOfEvents(30)
|
||||||
|
val eventsForChunk2 = eventsForChunk1 + createFakeListOfEvents(10)
|
||||||
|
chunk1.isLast = true
|
||||||
|
chunk2.isLast = false
|
||||||
|
chunk1.addAll("roomId", eventsForChunk1, PaginationDirection.FORWARDS)
|
||||||
|
chunk2.addAll("roomId", eventsForChunk2, PaginationDirection.BACKWARDS)
|
||||||
|
chunk1.merge(chunk2, PaginationDirection.BACKWARDS)
|
||||||
|
chunk1.events.size shouldEqual 40
|
||||||
|
chunk1.isLast.shouldBeTrue()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun merge_shouldEventsBeLinked_whenMergingLinkedWithUnlinked() {
|
fun merge_shouldEventsBeLinked_whenMergingLinkedWithUnlinked() {
|
||||||
monarchy.runTransactionSync { realm ->
|
monarchy.runTransactionSync { realm ->
|
||||||
val chunk1: ChunkEntity = realm.createObject()
|
val chunk1: ChunkEntity = realm.createObject()
|
||||||
val chunk2: ChunkEntity = realm.createObject()
|
val chunk2: ChunkEntity = realm.createObject()
|
||||||
chunk1.addAll(createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
chunk1.addAll("roomId", createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
||||||
chunk2.addAll(createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = false)
|
chunk2.addAll("roomId", createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = false)
|
||||||
chunk1.merge(chunk2, PaginationDirection.BACKWARDS)
|
chunk1.merge(chunk2, PaginationDirection.BACKWARDS)
|
||||||
chunk1.isUnlinked().shouldBeFalse()
|
chunk1.isUnlinked().shouldBeFalse()
|
||||||
}
|
}
|
||||||
@ -128,8 +141,8 @@ internal class ChunkEntityTest : InstrumentedTest {
|
|||||||
monarchy.runTransactionSync { realm ->
|
monarchy.runTransactionSync { realm ->
|
||||||
val chunk1: ChunkEntity = realm.createObject()
|
val chunk1: ChunkEntity = realm.createObject()
|
||||||
val chunk2: ChunkEntity = realm.createObject()
|
val chunk2: ChunkEntity = realm.createObject()
|
||||||
chunk1.addAll(createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
chunk1.addAll("roomId", createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
||||||
chunk2.addAll(createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
chunk2.addAll("roomId", createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
||||||
chunk1.merge(chunk2, PaginationDirection.BACKWARDS)
|
chunk1.merge(chunk2, PaginationDirection.BACKWARDS)
|
||||||
chunk1.isUnlinked().shouldBeTrue()
|
chunk1.isUnlinked().shouldBeTrue()
|
||||||
}
|
}
|
||||||
@ -142,8 +155,8 @@ internal class ChunkEntityTest : InstrumentedTest {
|
|||||||
val chunk2: ChunkEntity = realm.createObject()
|
val chunk2: ChunkEntity = realm.createObject()
|
||||||
val prevToken = "prev_token"
|
val prevToken = "prev_token"
|
||||||
chunk1.prevToken = prevToken
|
chunk1.prevToken = prevToken
|
||||||
chunk1.addAll(createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
chunk1.addAll("roomId", createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
||||||
chunk2.addAll(createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
chunk2.addAll("roomId", createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
||||||
chunk1.merge(chunk2, PaginationDirection.FORWARDS)
|
chunk1.merge(chunk2, PaginationDirection.FORWARDS)
|
||||||
chunk1.prevToken shouldEqual prevToken
|
chunk1.prevToken shouldEqual prevToken
|
||||||
}
|
}
|
||||||
@ -156,8 +169,8 @@ internal class ChunkEntityTest : InstrumentedTest {
|
|||||||
val chunk2: ChunkEntity = realm.createObject()
|
val chunk2: ChunkEntity = realm.createObject()
|
||||||
val nextToken = "next_token"
|
val nextToken = "next_token"
|
||||||
chunk1.nextToken = nextToken
|
chunk1.nextToken = nextToken
|
||||||
chunk1.addAll(createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
chunk1.addAll("roomId", createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
||||||
chunk2.addAll(createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
chunk2.addAll("roomId", createFakeListOfEvents(30), PaginationDirection.BACKWARDS, isUnlinked = true)
|
||||||
chunk1.merge(chunk2, PaginationDirection.BACKWARDS)
|
chunk1.merge(chunk2, PaginationDirection.BACKWARDS)
|
||||||
chunk1.nextToken shouldEqual nextToken
|
chunk1.nextToken shouldEqual nextToken
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ object RoomDataHelper {
|
|||||||
prevToken = Random.nextLong(System.currentTimeMillis()).toString()
|
prevToken = Random.nextLong(System.currentTimeMillis()).toString()
|
||||||
isLast = true
|
isLast = true
|
||||||
}
|
}
|
||||||
chunkEntity.addAll(eventList, PaginationDirection.FORWARDS)
|
chunkEntity.addAll("roomId", eventList, PaginationDirection.FORWARDS)
|
||||||
roomEntity.addOrUpdate(chunkEntity)
|
roomEntity.addOrUpdate(chunkEntity)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,10 +6,11 @@ import com.zhuinden.monarchy.Monarchy
|
|||||||
import im.vector.matrix.android.InstrumentedTest
|
import im.vector.matrix.android.InstrumentedTest
|
||||||
import im.vector.matrix.android.LiveDataTestObserver
|
import im.vector.matrix.android.LiveDataTestObserver
|
||||||
import im.vector.matrix.android.api.thread.MainThreadExecutor
|
import im.vector.matrix.android.api.thread.MainThreadExecutor
|
||||||
import im.vector.matrix.android.internal.task.TaskExecutor
|
import im.vector.matrix.android.internal.session.room.members.RoomMemberExtractor
|
||||||
import im.vector.matrix.android.internal.session.room.timeline.DefaultTimelineHolder
|
import im.vector.matrix.android.internal.session.room.timeline.DefaultTimelineHolder
|
||||||
import im.vector.matrix.android.internal.session.room.timeline.TimelineBoundaryCallback
|
import im.vector.matrix.android.internal.session.room.timeline.TimelineBoundaryCallback
|
||||||
import im.vector.matrix.android.internal.session.room.timeline.TokenChunkEventPersistor
|
import im.vector.matrix.android.internal.session.room.timeline.TokenChunkEventPersistor
|
||||||
|
import im.vector.matrix.android.internal.task.TaskExecutor
|
||||||
import im.vector.matrix.android.internal.util.PagingRequestHelper
|
import im.vector.matrix.android.internal.util.PagingRequestHelper
|
||||||
import im.vector.matrix.android.testCoroutineDispatchers
|
import im.vector.matrix.android.testCoroutineDispatchers
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
@ -43,7 +44,7 @@ internal class TimelineHolderTest : InstrumentedTest {
|
|||||||
val boundaryCallback = TimelineBoundaryCallback(roomId, taskExecutor, paginationTask, monarchy, PagingRequestHelper(MainThreadExecutor()))
|
val boundaryCallback = TimelineBoundaryCallback(roomId, taskExecutor, paginationTask, monarchy, PagingRequestHelper(MainThreadExecutor()))
|
||||||
|
|
||||||
RoomDataHelper.fakeInitialSync(monarchy, roomId)
|
RoomDataHelper.fakeInitialSync(monarchy, roomId)
|
||||||
val timelineHolder = DefaultTimelineHolder(roomId, monarchy, taskExecutor, boundaryCallback, getContextOfEventTask)
|
val timelineHolder = DefaultTimelineHolder(roomId, monarchy, taskExecutor, boundaryCallback, getContextOfEventTask, RoomMemberExtractor(monarchy, roomId))
|
||||||
val timelineObserver = LiveDataTestObserver.test(timelineHolder.timeline())
|
val timelineObserver = LiveDataTestObserver.test(timelineHolder.timeline())
|
||||||
timelineObserver.awaitNextValue().assertHasValue()
|
timelineObserver.awaitNextValue().assertHasValue()
|
||||||
var pagedList = timelineObserver.value()
|
var pagedList = timelineObserver.value()
|
||||||
|
@ -12,6 +12,7 @@ import im.vector.matrix.android.internal.di.MatrixModule
|
|||||||
import im.vector.matrix.android.internal.di.NetworkModule
|
import im.vector.matrix.android.internal.di.NetworkModule
|
||||||
import im.vector.matrix.android.internal.util.BackgroundDetectionObserver
|
import im.vector.matrix.android.internal.util.BackgroundDetectionObserver
|
||||||
import org.koin.standalone.inject
|
import org.koin.standalone.inject
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
|
|
||||||
|
|
||||||
class Matrix private constructor(context: Context) : MatrixKoinComponent {
|
class Matrix private constructor(context: Context) : MatrixKoinComponent {
|
||||||
@ -40,9 +41,12 @@ class Matrix private constructor(context: Context) : MatrixKoinComponent {
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private lateinit var instance: Matrix
|
private lateinit var instance: Matrix
|
||||||
|
private val isInit = AtomicBoolean(false)
|
||||||
|
|
||||||
internal fun initialize(context: Context) {
|
internal fun initialize(context: Context) {
|
||||||
instance = Matrix(context.applicationContext)
|
if (isInit.compareAndSet(false, true)) {
|
||||||
|
instance = Matrix(context.applicationContext)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getInstance(): Matrix {
|
fun getInstance(): Matrix {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user