Skip to content

Commit 85835f6

Browse files
authored
Manage tests mc (#250)
* Added managed channel members test and membership tests.
1 parent d4eebfd commit 85835f6

File tree

8 files changed

+105
-45
lines changed

8 files changed

+105
-45
lines changed

src/test/java/com/pubnub/contract/objectV2/members/state/ChannelMembersState.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.pubnub.api.models.consumer.objects_api.member.PNMembers
44

55
class ChannelMembersState {
66
var channelId: String? = null
7-
var memberList: List<PNMembers>? = mutableListOf()
8-
var member: PNMembers? = null
7+
var resultMemberList: List<PNMembers>? = mutableListOf()
8+
var memberToBeAdded: PNMembers? = null
9+
var memberToBeRemoved: PNMembers? = null
910
}

src/test/java/com/pubnub/contract/objectV2/members/steps/GivenSteps.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ class GivenSteps(
1212
@Given("the data for {string} member")
1313
fun the_data_for_member(memberName: String) {
1414
val channelMember: PNMembers = loadMember(memberName)
15-
channelMembersState.member = channelMember
15+
channelMembersState.memberToBeAdded = channelMember
16+
}
17+
18+
@Given("the data for {string} member that we want to remove")
19+
fun the_data_for_member_that_we_want_to_delete(memberName: String){
20+
val channelMember: PNMembers = loadMember(memberName)
21+
channelMembersState.memberToBeRemoved = channelMember
1622
}
1723
}

src/test/java/com/pubnub/contract/objectV2/members/steps/ThenSteps.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package com.pubnub.contract.objectV2.members.steps
33
import com.pubnub.contract.objectV2.members.state.ChannelMembersState
44
import com.pubnub.contract.objectV2.uuidmetadata.step.loadMember
55
import io.cucumber.java.en.Then
6+
import org.hamcrest.CoreMatchers.hasItem
7+
import org.hamcrest.CoreMatchers.not
68
import org.hamcrest.MatcherAssert.assertThat
79
import org.hamcrest.Matchers
810

@@ -15,13 +17,19 @@ class ThenSteps(
1517
val expectedPNMembersOfFirstUUID = loadMember(firstMemberName)
1618
val expectedPNMembersOfSecondUUID = loadMember(secondMemberName)
1719

18-
assertThat(channelMembersState.memberList, Matchers.containsInAnyOrder(expectedPNMembersOfFirstUUID, expectedPNMembersOfSecondUUID))
20+
assertThat(channelMembersState.resultMemberList, Matchers.containsInAnyOrder(expectedPNMembersOfFirstUUID, expectedPNMembersOfSecondUUID))
1921
}
2022

2123
@Then("the response contains list with {string} member")
2224
fun the_response_contains_list_with_members(memberName: String){
2325
val expectedPNMembers = loadMember(memberName)
2426

25-
assertThat(channelMembersState.memberList, Matchers.containsInAnyOrder(expectedPNMembers))
27+
assertThat(channelMembersState.resultMemberList, Matchers.containsInAnyOrder(expectedPNMembers))
28+
}
29+
30+
@Then("the response does not contain list with {string} member")
31+
fun the_response_does_not_contain_list_with_member(memberName: String){
32+
val expectedPNMembers = loadMember(memberName)
33+
assertThat(channelMembersState.resultMemberList, not(hasItem(expectedPNMembers)))
2634
}
2735
}
Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package com.pubnub.contract.objectV2.members.steps
22

33
import com.pubnub.api.endpoints.objects_api.utils.Include
4-
import com.pubnub.api.models.consumer.objects_api.member.PNGetChannelMembersResult
5-
import com.pubnub.api.models.consumer.objects_api.member.PNRemoveChannelMembersResult
6-
import com.pubnub.api.models.consumer.objects_api.member.PNSetChannelMembersResult
7-
import com.pubnub.api.models.consumer.objects_api.member.PNUUID
4+
import com.pubnub.api.models.consumer.objects_api.member.*
85
import com.pubnub.contract.objectV2.members.state.ChannelMembersState
96
import com.pubnub.contract.state.World
107
import io.cucumber.java.en.When
@@ -16,57 +13,72 @@ class WhenSteps(
1613

1714
@When("I get the channel members")
1815
fun I_get_the_channel_members() {
19-
val pnGetChannelMembersResult: PNGetChannelMembersResult? =
16+
val pnGetChannelMembersResult =
2017
world.pubnub.getChannelMembers().channel(channelMembersState.channelId).sync()
21-
channelMembersState.memberList = pnGetChannelMembersResult?.data
18+
channelMembersState.resultMemberList = pnGetChannelMembersResult?.data
2219
world.responseStatus = pnGetChannelMembersResult?.status
2320
}
2421

2522
@When("I get the channel members including custom and UUID custom information")
2623
fun I_get_the_channel_members_including_custom_and_UUID_custom_information() {
27-
val pnGetChannelMembersResult: PNGetChannelMembersResult? = world.pubnub.getChannelMembers()
24+
val pnGetChannelMembersResult = world.pubnub.getChannelMembers()
2825
.channel(channelMembersState.channelId)
2926
.includeCustom(true)
3027
.includeUUID(Include.PNUUIDDetailsLevel.UUID_WITH_CUSTOM)
3128
.sync()
32-
channelMembersState.memberList = pnGetChannelMembersResult?.data
29+
channelMembersState.resultMemberList = pnGetChannelMembersResult?.data
3330
world.responseStatus = pnGetChannelMembersResult?.status
3431
}
3532

3633
@When("I set a channel member")
3734
fun I_set_a_channel_member() {
38-
val pnUuidList = listOf(PNUUID.uuid(channelMembersState.member?.uuid?.id))
39-
val setChannelMembersResult: PNSetChannelMembersResult? = world.pubnub.setChannelMembers()
35+
val pnUuidList = listOf(PNUUID.uuid(channelMembersState.memberToBeAdded?.uuid?.id))
36+
val pnSetChannelMembersResult = world.pubnub.setChannelMembers()
4037
.channel(channelMembersState.channelId)
4138
.uuids(pnUuidList)
4239
.sync()
4340

44-
channelMembersState.memberList = setChannelMembersResult?.data
45-
world.responseStatus = setChannelMembersResult?.status
41+
channelMembersState.resultMemberList = pnSetChannelMembersResult?.data
42+
world.responseStatus = pnSetChannelMembersResult?.status
4643
}
4744

4845
@When("I set a channel member including custom and UUID with custom")
4946
fun I_set_a_channel_member_including_custom_and_UUID_with_custom() {
50-
val pnUuidList = listOf(PNUUID.uuid(channelMembersState.member?.uuid?.id))
51-
val setChannelMembersResult: PNSetChannelMembersResult? = world.pubnub.setChannelMembers()
47+
val pnUuidList = listOf(PNUUID.uuid(channelMembersState.memberToBeAdded?.uuid?.id))
48+
val pnSetChannelMembersResult = world.pubnub.setChannelMembers()
5249
.channel(channelMembersState.channelId)
5350
.uuids(pnUuidList)
5451
.includeCustom(true)
5552
.includeUUID(Include.PNUUIDDetailsLevel.UUID_WITH_CUSTOM)
5653
.sync()
5754

58-
channelMembersState.memberList = setChannelMembersResult?.data
59-
world.responseStatus = setChannelMembersResult?.status
55+
channelMembersState.resultMemberList = pnSetChannelMembersResult?.data
56+
world.responseStatus = pnSetChannelMembersResult?.status
6057
}
6158

6259
@When("I remove a channel member")
6360
fun I_remove_a_channel_member() {
64-
val pnUuidList = listOf(PNUUID.uuid(channelMembersState.member?.uuid?.id))
65-
val pnRemoveChannelMembersResult: PNRemoveChannelMembersResult? = world.pubnub.removeChannelMembers()
61+
val pnUuidList = listOf(PNUUID.uuid(channelMembersState.memberToBeRemoved?.uuid?.id))
62+
val pnRemoveChannelMembersResult = world.pubnub.removeChannelMembers()
6663
.channel(channelMembersState.channelId)
6764
.uuids(pnUuidList)
6865
.sync()
6966

7067
world.responseStatus = pnRemoveChannelMembersResult?.status
7168
}
69+
70+
@When("I manage channel members")
71+
fun I_manage_channel_members() {
72+
val pnUuidListToBeAdded = listOf(PNUUID.uuid(channelMembersState.memberToBeAdded?.uuid?.id))
73+
val pnUuidListToBeDeleted = listOf(PNUUID.uuid(channelMembersState.memberToBeRemoved?.uuid?.id))
74+
val pnManageChannelMembersResult = world.pubnub.manageChannelMembers()
75+
.channel(channelMembersState.channelId)
76+
.set(pnUuidListToBeAdded)
77+
.remove(pnUuidListToBeDeleted)
78+
.sync()
79+
80+
world.responseStatus = pnManageChannelMembersResult?.status
81+
channelMembersState.resultMemberList =
82+
pnManageChannelMembersResult?.data as MutableList<PNMembers>
83+
}
7284
}

src/test/java/com/pubnub/contract/objectV2/membership/state/MembershipState.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@ import com.pubnub.api.models.consumer.objects_api.membership.PNMembership
44

55
class MembershipState {
66
var uuid: String? = null
7-
var membershipList: Collection<PNMembership>? = mutableListOf()
7+
var resultMembershipList: Collection<PNMembership>? = mutableListOf()
8+
var membershipToBeAdded: PNMembership? = null
9+
var membershipToBeRemoved: PNMembership? = null
810
}

src/test/java/com/pubnub/contract/objectV2/membership/steps/GivenSteps.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,14 @@ class GivenSteps(
99
) {
1010

1111
@Given("the data for {string} membership")
12-
fun the_data_for_ChatMembership_membership(channelMembershipName: String){
12+
fun the_data_for_membership(channelMembershipName: String){
1313
val channelMembership = loadChannelMembership(channelMembershipName)
14-
membershipState.membershipList = listOf(channelMembership)
14+
membershipState.membershipToBeAdded = channelMembership
15+
}
16+
17+
@Given("the data for {string} membership that we want to remove")
18+
fun the_data_for_membership_that_we_want_to_remove(channelMembershipName: String){
19+
val channelMembership = loadChannelMembership(channelMembershipName)
20+
membershipState.membershipToBeRemoved = channelMembership
1521
}
1622
}

src/test/java/com/pubnub/contract/objectV2/membership/steps/ThenSteps.kt

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package com.pubnub.contract.objectV2.membership.steps
33
import com.pubnub.contract.objectV2.membership.state.MembershipState
44
import com.pubnub.contract.objectV2.uuidmetadata.step.loadChannelMembership
55
import io.cucumber.java.en.Then
6-
import org.hamcrest.MatcherAssert
6+
import org.hamcrest.CoreMatchers.hasItem
7+
import org.hamcrest.CoreMatchers.not
8+
import org.hamcrest.MatcherAssert.*
79
import org.hamcrest.Matchers
810

911
class ThenSteps(
@@ -18,16 +20,23 @@ class ThenSteps(
1820
val expectedFirstChannelMembership = loadChannelMembership(firstChannelMembershipName)
1921
val expectedSecondChannelMembership = loadChannelMembership(secondChannelMembershipName)
2022

21-
MatcherAssert.assertThat(
22-
membershipState.membershipList,
23+
assertThat(
24+
membershipState.resultMembershipList,
2325
Matchers.containsInAnyOrder(expectedFirstChannelMembership, expectedSecondChannelMembership)
2426
)
2527
}
2628

2729
@Then("the response contains list with {string} membership")
28-
fun the_response_contains_list_with_ChatMembership_membership(channelMembershipName: String){
30+
fun the_response_contains_list_with_membership(channelMembershipName: String) {
2931
val expectedChannelMembership = loadChannelMembership(channelMembershipName)
3032

31-
MatcherAssert.assertThat(membershipState.membershipList, Matchers.containsInAnyOrder(expectedChannelMembership))
33+
assertThat(membershipState.resultMembershipList, Matchers.containsInAnyOrder(expectedChannelMembership))
34+
}
35+
36+
@Then("the response does not contain list with {string} membership")
37+
fun the_response_does_not_contain_list_with_membership(channelMembershipName: String) {
38+
val expectedChannelMembership = loadChannelMembership(channelMembershipName)
39+
40+
assertThat(membershipState.resultMembershipList, not(hasItem(expectedChannelMembership)))
3241
}
3342
}

src/test/java/com/pubnub/contract/objectV2/membership/steps/WhenSteps.kt

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ class WhenSteps(
1919
.uuid(membershipState.uuid)
2020
.sync()
2121

22-
membershipState.membershipList = pnGetMembershipsResult?.data
22+
membershipState.resultMembershipList = pnGetMembershipsResult?.data
2323
world.responseStatus = pnGetMembershipsResult?.status
2424
}
2525

2626
@When("I get the memberships for current user")
2727
fun I_get_the_memberships_for_current_user() {
2828
val pnGetMembershipsResult = world.pubnub.getMemberships().sync()
2929

30-
membershipState.membershipList = pnGetMembershipsResult?.data
30+
membershipState.resultMembershipList = pnGetMembershipsResult?.data
3131
world.responseStatus = pnGetMembershipsResult?.status
3232
}
3333

@@ -39,57 +39,73 @@ class WhenSteps(
3939
.includeChannel(Include.PNChannelDetailsLevel.CHANNEL_WITH_CUSTOM)
4040
.sync()
4141

42-
membershipState.membershipList = pnGetMembershipsResult?.data
42+
membershipState.resultMembershipList = pnGetMembershipsResult?.data
4343
world.responseStatus = pnGetMembershipsResult?.status
4444
}
4545

4646
@When("I set the membership")
4747
fun I_set_the_membership() {
48-
val channelId = membershipState.membershipList?.first()?.channel?.id
48+
val channelId = membershipState.membershipToBeAdded?.channel?.id
4949
val channelMembership = listOf(PNChannelMembership.channel(channelId))
5050
val pnSetMembershipResult: PNSetMembershipResult? = world.pubnub.setMemberships()
5151
.channelMemberships(channelMembership)
5252
.uuid(membershipState.uuid)
5353
.sync()
5454

55-
membershipState.membershipList = pnSetMembershipResult?.data
55+
membershipState.resultMembershipList = pnSetMembershipResult?.data
5656
world.responseStatus = pnSetMembershipResult?.status
5757
}
5858

5959
@When("I set the membership for current user")
60-
fun I_set_the_membership_for_current_user(){
61-
val channelId = membershipState.membershipList?.first()?.channel?.id
60+
fun I_set_the_membership_for_current_user() {
61+
val channelId = membershipState.membershipToBeAdded?.channel?.id
6262
val channelMembership = listOf(PNChannelMembership.channel(channelId))
6363
val pnSetMembershipResult: PNSetMembershipResult? = world.pubnub.setMemberships()
6464
.channelMemberships(channelMembership)
6565
.sync()
6666

67-
membershipState.membershipList = pnSetMembershipResult?.data
67+
membershipState.resultMembershipList = pnSetMembershipResult?.data
6868
world.responseStatus = pnSetMembershipResult?.status
6969
}
7070

7171
@When("I remove the membership")
72-
fun I_remove_the_membership(){
73-
val channelId = membershipState.membershipList?.first()?.channel?.id
72+
fun I_remove_the_membership() {
73+
val channelId = membershipState.membershipToBeRemoved?.channel?.id
7474
val channelMembership = listOf(PNChannelMembership.channel(channelId))
7575
val pnRemoveMembershipResult: PNRemoveMembershipResult? = world.pubnub.removeMemberships()
7676
.channelMemberships(channelMembership)
7777
.uuid(membershipState.uuid)
7878
.sync()
7979

80-
membershipState.membershipList = pnRemoveMembershipResult?.data
80+
membershipState.resultMembershipList = pnRemoveMembershipResult?.data
8181
world.responseStatus = pnRemoveMembershipResult?.status
8282
}
8383

8484
@When("I remove the membership for current user")
85-
fun I_remove_the_membership_for_current_user(){
86-
val channelId = membershipState.membershipList?.first()?.channel?.id
85+
fun I_remove_the_membership_for_current_user() {
86+
val channelId = membershipState.membershipToBeRemoved?.channel?.id
8787
val channelMembership = listOf(PNChannelMembership.channel(channelId))
8888
val pnRemoveMembershipResult: PNRemoveMembershipResult? = world.pubnub.removeMemberships()
8989
.channelMemberships(channelMembership)
9090
.sync()
9191

92-
membershipState.membershipList = pnRemoveMembershipResult?.data
92+
membershipState.resultMembershipList = pnRemoveMembershipResult?.data
9393
world.responseStatus = pnRemoveMembershipResult?.status
9494
}
95+
96+
@When("I manage memberships")
97+
fun I_manage_memberships() {
98+
val channelIdToBeAdded = membershipState.membershipToBeAdded?.channel?.id
99+
val channelMembershipToBeAdded = listOf(PNChannelMembership.channel(channelIdToBeAdded))
100+
val channelIdToBeRemoved = membershipState.membershipToBeRemoved?.channel?.id
101+
val channelMembershipToBeRemoved = listOf(PNChannelMembership.channel(channelIdToBeRemoved))
102+
val pnManageMembershipResult = world.pubnub.manageMemberships()
103+
.set(channelMembershipToBeAdded)
104+
.remove(channelMembershipToBeRemoved)
105+
.uuid(membershipState.uuid)
106+
.sync()
107+
108+
membershipState.resultMembershipList = pnManageMembershipResult?.data
109+
world.responseStatus = pnManageMembershipResult?.status
110+
}
95111
}

0 commit comments

Comments
 (0)