Test undisclosed poll state.
This commit is contained in:
parent
8854b81977
commit
0fe4b9f07f
|
@ -25,4 +25,7 @@ data class PollCreationInfo(
|
||||||
@Json(name = "kind") val kind: PollType? = PollType.DISCLOSED_UNSTABLE,
|
@Json(name = "kind") val kind: PollType? = PollType.DISCLOSED_UNSTABLE,
|
||||||
@Json(name = "max_selections") val maxSelections: Int = 1,
|
@Json(name = "max_selections") val maxSelections: Int = 1,
|
||||||
@Json(name = "answers") val answers: List<PollAnswer>? = null
|
@Json(name = "answers") val answers: List<PollAnswer>? = null
|
||||||
)
|
) {
|
||||||
|
|
||||||
|
fun isUndisclosed() = kind in listOf(PollType.UNDISCLOSED_UNSTABLE, PollType.UNDISCLOSED)
|
||||||
|
}
|
||||||
|
|
|
@ -81,7 +81,7 @@ class PollItemFactory @Inject constructor(
|
||||||
): PollState = when {
|
): PollState = when {
|
||||||
!informationData.sendState.isSent() -> PollState.Sending
|
!informationData.sendState.isSent() -> PollState.Sending
|
||||||
pollResponseSummary?.isClosed.orFalse() -> PollState.Ended
|
pollResponseSummary?.isClosed.orFalse() -> PollState.Ended
|
||||||
pollContent.getBestPollCreationInfo()?.kind == PollType.UNDISCLOSED -> PollState.Undisclosed
|
pollContent.getBestPollCreationInfo()?.isUndisclosed().orFalse() -> PollState.Undisclosed
|
||||||
pollResponseSummary?.myVote?.isNotEmpty().orFalse() -> PollState.Voted(pollResponseSummary?.totalVotes ?: 0)
|
pollResponseSummary?.myVote?.isNotEmpty().orFalse() -> PollState.Voted(pollResponseSummary?.totalVotes ?: 0)
|
||||||
else -> PollState.Ready
|
else -> PollState.Ready
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,10 @@ import org.junit.Before
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.matrix.android.sdk.api.session.room.model.message.MessagePollContent
|
import org.matrix.android.sdk.api.session.room.model.message.MessagePollContent
|
||||||
|
import org.matrix.android.sdk.api.session.room.model.message.PollAnswer
|
||||||
|
import org.matrix.android.sdk.api.session.room.model.message.PollCreationInfo
|
||||||
|
import org.matrix.android.sdk.api.session.room.model.message.PollQuestion
|
||||||
|
import org.matrix.android.sdk.api.session.room.model.message.PollType
|
||||||
import org.matrix.android.sdk.api.session.room.send.SendState
|
import org.matrix.android.sdk.api.session.room.send.SendState
|
||||||
|
|
||||||
private val A_MESSAGE_INFORMATION_DATA = MessageInformationData(
|
private val A_MESSAGE_INFORMATION_DATA = MessageInformationData(
|
||||||
|
@ -50,6 +54,30 @@ private val A_POLL_RESPONSE_DATA = PollResponseData(
|
||||||
votes = emptyMap(),
|
votes = emptyMap(),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private val A_POLL_CONTENT = MessagePollContent(
|
||||||
|
unstablePollCreationInfo = PollCreationInfo(
|
||||||
|
question = PollQuestion(
|
||||||
|
unstableQuestion = "What is your favourite coffee?"
|
||||||
|
),
|
||||||
|
kind = PollType.UNDISCLOSED_UNSTABLE,
|
||||||
|
maxSelections = 1,
|
||||||
|
answers = listOf(
|
||||||
|
PollAnswer(
|
||||||
|
id = "5ef5f7b0-c9a1-49cf-a0b3-374729a43e76",
|
||||||
|
unstableAnswer = "Double Espresso"
|
||||||
|
),
|
||||||
|
PollAnswer(
|
||||||
|
id = "ec1a4db0-46d8-4d7a-9bb6-d80724715938",
|
||||||
|
unstableAnswer = "Macchiato"
|
||||||
|
),
|
||||||
|
PollAnswer(
|
||||||
|
id = "3677ca8e-061b-40ab-bffe-b22e4e88fcad",
|
||||||
|
unstableAnswer = "Iced Coffee"
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
class PollItemFactoryTest {
|
class PollItemFactoryTest {
|
||||||
|
|
||||||
private val testDispatcher = UnconfinedTestDispatcher()
|
private val testDispatcher = UnconfinedTestDispatcher()
|
||||||
|
@ -83,7 +111,7 @@ class PollItemFactoryTest {
|
||||||
pollItemFactory.createPollState(
|
pollItemFactory.createPollState(
|
||||||
informationData = sendingPollInformationData,
|
informationData = sendingPollInformationData,
|
||||||
pollResponseSummary = A_POLL_RESPONSE_DATA,
|
pollResponseSummary = A_POLL_RESPONSE_DATA,
|
||||||
pollContent = MessagePollContent()
|
pollContent = A_POLL_CONTENT
|
||||||
) shouldBe PollState.Sending
|
) shouldBe PollState.Sending
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,7 +122,16 @@ class PollItemFactoryTest {
|
||||||
pollItemFactory.createPollState(
|
pollItemFactory.createPollState(
|
||||||
informationData = A_MESSAGE_INFORMATION_DATA,
|
informationData = A_MESSAGE_INFORMATION_DATA,
|
||||||
pollResponseSummary = closedPollSummary,
|
pollResponseSummary = closedPollSummary,
|
||||||
pollContent = MessagePollContent()
|
pollContent = A_POLL_CONTENT
|
||||||
) shouldBe PollState.Ended
|
) shouldBe PollState.Ended
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `given a sent poll when undisclosed poll type is selected then PollState is Undisclosed`() = runTest {
|
||||||
|
pollItemFactory.createPollState(
|
||||||
|
informationData = A_MESSAGE_INFORMATION_DATA,
|
||||||
|
pollResponseSummary = A_POLL_RESPONSE_DATA,
|
||||||
|
pollContent = A_POLL_CONTENT
|
||||||
|
) shouldBe PollState.Undisclosed
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue