Skip to content

Commit 387f241

Browse files
authored
Cover poll response, poll votes and poll options API calls (#123)
1 parent a82510d commit 387f241

File tree

2 files changed

+162
-0
lines changed

2 files changed

+162
-0
lines changed

stream-feeds-android-client/src/test/kotlin/io/getstream/feeds/android/client/internal/http/FeedsSingleFlightApiTest.kt

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ import io.getstream.feeds.android.network.models.AddCommentResponse
2828
import io.getstream.feeds.android.network.models.AddReactionRequest
2929
import io.getstream.feeds.android.network.models.AddReactionResponse
3030
import io.getstream.feeds.android.network.models.AppResponseFields
31+
import io.getstream.feeds.android.network.models.CastPollVoteRequest
3132
import io.getstream.feeds.android.network.models.CreateDeviceRequest
33+
import io.getstream.feeds.android.network.models.CreatePollOptionRequest
34+
import io.getstream.feeds.android.network.models.CreatePollRequest
3235
import io.getstream.feeds.android.network.models.DeleteActivitiesRequest
3336
import io.getstream.feeds.android.network.models.DeleteActivitiesResponse
3437
import io.getstream.feeds.android.network.models.FileUploadConfig
@@ -37,9 +40,17 @@ import io.getstream.feeds.android.network.models.GetOGResponse
3740
import io.getstream.feeds.android.network.models.ListDevicesResponse
3841
import io.getstream.feeds.android.network.models.OwnCapabilitiesBatchRequest
3942
import io.getstream.feeds.android.network.models.OwnCapabilitiesBatchResponse
43+
import io.getstream.feeds.android.network.models.PollOptionResponse
44+
import io.getstream.feeds.android.network.models.PollResponse
45+
import io.getstream.feeds.android.network.models.PollVotesResponse
4046
import io.getstream.feeds.android.network.models.QueryActivitiesRequest
4147
import io.getstream.feeds.android.network.models.QueryActivitiesResponse
48+
import io.getstream.feeds.android.network.models.QueryPollVotesRequest
49+
import io.getstream.feeds.android.network.models.QueryPollsResponse
4250
import io.getstream.feeds.android.network.models.Response
51+
import io.getstream.feeds.android.network.models.UpdatePollOptionRequest
52+
import io.getstream.feeds.android.network.models.UpdatePollPartialRequest
53+
import io.getstream.feeds.android.network.models.UpdatePollRequest
4354
import io.mockk.coEvery
4455
import io.mockk.coVerify
4556
import io.mockk.mockk
@@ -90,6 +101,14 @@ internal class FeedsSingleFlightApiTest(private val testCase: SingleFlightTestCa
90101
private val testCreateDeviceResponse = Response(duration = "100ms")
91102
private val testAddBookmarkResponse =
92103
AddBookmarkResponse(duration = "100ms", bookmark = TestData.bookmarkResponse())
104+
private val testPollVoteResponse = PollVotesResponse(duration = "100ms")
105+
private val testPollResponse =
106+
PollResponse(duration = "100ms", poll = TestData.pollResponseData())
107+
private val testQueryPollsResponse = QueryPollsResponse(duration = "100ms")
108+
private val testResponse = Response("100ms")
109+
private val testPollOptionResponse =
110+
PollOptionResponse(duration = "100ms", pollOption = TestData.pollOptionResponseData())
111+
93112
private val testAddCommentResponse =
94113
AddCommentResponse(duration = "100ms", comment = TestData.commentResponse())
95114
private val testAddReactionResponse =
@@ -185,6 +204,142 @@ internal class FeedsSingleFlightApiTest(private val testCase: SingleFlightTestCa
185204
apiResult = testAddBookmarkResponse,
186205
)
187206
),
207+
arrayOf(
208+
SingleFlightTestCase(
209+
testName = "castPollVote",
210+
expectedKeyPrefix = "castPollVote-activity123-",
211+
call = { it.castPollVote("activity123", "poll123", CastPollVoteRequest()) },
212+
apiResult = testPollVoteResponse,
213+
)
214+
),
215+
arrayOf(
216+
SingleFlightTestCase(
217+
testName = "deletePollVote",
218+
expectedKeyPrefix = "deletePollVote-activity123-",
219+
call = { it.deletePollVote("activity123", "poll123", "vote123") },
220+
apiResult = testPollVoteResponse,
221+
)
222+
),
223+
arrayOf(
224+
SingleFlightTestCase(
225+
testName = "createPoll",
226+
expectedKeyPrefix = "createPoll-",
227+
call = { it.createPoll(CreatePollRequest(name = "Test Poll")) },
228+
apiResult = testPollResponse,
229+
)
230+
),
231+
arrayOf(
232+
SingleFlightTestCase(
233+
testName = "updatePoll",
234+
expectedKeyPrefix = "updatePoll-",
235+
call = { it.updatePoll(UpdatePollRequest("poll-1", "UpdatedName")) },
236+
apiResult = testPollResponse,
237+
)
238+
),
239+
arrayOf(
240+
SingleFlightTestCase(
241+
testName = "queryPolls",
242+
expectedKeyPrefix = "queryPolls-",
243+
call = { it.queryPolls() },
244+
apiResult = testQueryPollsResponse,
245+
)
246+
),
247+
arrayOf(
248+
SingleFlightTestCase(
249+
testName = "deletePoll",
250+
expectedKeyPrefix = "deletePoll-poll123",
251+
call = { it.deletePoll("poll123") },
252+
apiResult = testResponse,
253+
)
254+
),
255+
arrayOf(
256+
SingleFlightTestCase(
257+
testName = "getPoll",
258+
expectedKeyPrefix = "getPoll-poll123",
259+
call = { it.getPoll("poll123") },
260+
apiResult = testPollResponse,
261+
)
262+
),
263+
arrayOf(
264+
SingleFlightTestCase(
265+
testName = "updatePollPartial",
266+
expectedKeyPrefix = "updatePollPartial-poll123",
267+
call = {
268+
it.updatePollPartial(
269+
"poll123",
270+
UpdatePollPartialRequest(
271+
unset = listOf("description"),
272+
set = mapOf("name" to "Partially Updated Poll"),
273+
),
274+
)
275+
},
276+
apiResult = testPollResponse,
277+
)
278+
),
279+
arrayOf(
280+
SingleFlightTestCase(
281+
testName = "updatePollPartialWithNoBodyRequestNeeded",
282+
expectedKeyPrefix = "updatePollPartial-poll123",
283+
call = { it.updatePollPartial("poll123") },
284+
apiResult = testPollResponse,
285+
)
286+
),
287+
arrayOf(
288+
SingleFlightTestCase(
289+
testName = "createPollOption",
290+
expectedKeyPrefix = "createPollOption-poll123",
291+
call = {
292+
it.createPollOption("poll123", CreatePollOptionRequest("Create Option"))
293+
},
294+
apiResult = testPollOptionResponse,
295+
)
296+
),
297+
arrayOf(
298+
SingleFlightTestCase(
299+
testName = "updatePollOption",
300+
expectedKeyPrefix = "updatePollOption-poll123",
301+
call = {
302+
it.updatePollOption(
303+
"poll123",
304+
UpdatePollOptionRequest(
305+
id = "option456",
306+
text = "Updated option text",
307+
custom = mapOf("updatedBy" to "Ezra"),
308+
),
309+
)
310+
},
311+
apiResult = testPollOptionResponse,
312+
)
313+
),
314+
arrayOf(
315+
SingleFlightTestCase(
316+
testName = "deletePollOption",
317+
expectedKeyPrefix = "deletePollOption-poll123-option456",
318+
call = { it.deletePollOption(pollId = "poll123", optionId = "option456") },
319+
apiResult = testResponse,
320+
)
321+
),
322+
arrayOf(
323+
SingleFlightTestCase(
324+
testName = "getPollOption",
325+
expectedKeyPrefix = "getPollOption-poll123-option456",
326+
call = { it.getPollOption(pollId = "poll123", optionId = "option456") },
327+
apiResult = testPollOptionResponse,
328+
)
329+
),
330+
arrayOf(
331+
SingleFlightTestCase(
332+
testName = "queryPollVotes",
333+
expectedKeyPrefix = "queryPollVotes-poll123",
334+
call = {
335+
it.queryPollVotes(
336+
pollId = "poll123",
337+
queryPollVotesRequest = QueryPollVotesRequest(),
338+
)
339+
},
340+
apiResult = testPollVoteResponse,
341+
)
342+
),
188343
arrayOf(
189344
SingleFlightTestCase(
190345
testName = "addActivityReaction",

stream-feeds-android-client/src/test/kotlin/io/getstream/feeds/android/client/internal/test/TestData.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ import io.getstream.feeds.android.network.models.FollowResponse
5454
import io.getstream.feeds.android.network.models.GetFollowSuggestionsResponse
5555
import io.getstream.feeds.android.network.models.GetOrCreateFeedResponse
5656
import io.getstream.feeds.android.network.models.PinActivityResponse
57+
import io.getstream.feeds.android.network.models.PollOptionResponseData
5758
import io.getstream.feeds.android.network.models.PollResponseData
5859
import io.getstream.feeds.android.network.models.PollVoteResponseData
5960
import io.getstream.feeds.android.network.models.QueryFeedMembersResponse
@@ -571,6 +572,12 @@ internal object TestData {
571572
createdBy = null,
572573
)
573574

575+
fun pollOptionResponseData(
576+
id: String = "option-1",
577+
text: String = "Option 1",
578+
custom: Map<String, Any?> = emptyMap(),
579+
): PollOptionResponseData = PollOptionResponseData(id = id, custom = custom, text = text)
580+
574581
fun feedData(
575582
id: String = "user-1",
576583
groupId: String = "user",

0 commit comments

Comments
 (0)