Skip to content

Commit dc51d64

Browse files
Morgan MoonMorgan Moon
authored andcommitted
Added null checks on callbacks themselves that way each callback doesnt require others to not be null in order to run. Also added test coverage for the case of the signal callback bug
1 parent 9537326 commit dc51d64

File tree

2 files changed

+25
-8
lines changed

2 files changed

+25
-8
lines changed

PubNubUnity/Assets/PubNub/Editor/SignalTest.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,23 @@ public void TestSignalRequestQueryParam ()
2222
TestSignalCommon (true, true);
2323
}
2424

25+
[Test]
26+
public void TestAddListenerSignalCallback ()
27+
{
28+
PNConfiguration pnConfiguration = new PNConfiguration ();
29+
PubNubUnity pnUnity = new PubNubUnity(pnConfiguration, null, null);
30+
bool receivedCallback = false;
31+
Action<PNSignalEventResult> callback = (pnser) => receivedCallback = true;
32+
pnUnity.AddListener(null, null, null, callback, null, null, null, null);
33+
34+
pnUnity.RaiseEvent(new SubscribeEventEventArgs()
35+
{
36+
SignalEventResult = new PNSignalEventResult(null, null, null, 0, 0, null, null)
37+
});
38+
39+
Assert.IsTrue(receivedCallback);
40+
}
41+
2542
public void TestSignalCommon(bool ssl, bool sendQueryParams){
2643
string channel = EditorCommon.GetRandomChannelName();
2744
string message = "Test signal";

PubNubUnity/Assets/PubNub/PubNubUnity/PubNubUnity.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,28 +70,28 @@ public void AddListener(Action<PNStatus> statusCallback, Action<PNMessageResult>
7070
#endif
7171

7272
if(mea!=null){
73-
if(mea.Status != null){
73+
if(mea.Status != null && statusCallback != null){
7474
statusCallback(mea.Status);
7575
}
76-
if(mea.MessageResult != null){
76+
if(mea.MessageResult != null && messageCallback != null){
7777
messageCallback(mea.MessageResult);
7878
}
79-
if(mea.PresenceEventResult != null){
79+
if(mea.PresenceEventResult != null && presenceCallback != null){
8080
presenceCallback(mea.PresenceEventResult);
8181
}
82-
if(mea.SignalEventResult != null){
82+
if(mea.SignalEventResult != null && signalCallback != null){
8383
signalCallback(mea.SignalEventResult);
8484
}
85-
if(mea.UserEventResult != null){
85+
if(mea.UserEventResult != null && userCallback != null){
8686
userCallback(mea.UserEventResult);
8787
}
88-
if(mea.SpaceEventResult != null){
88+
if(mea.SpaceEventResult != null && spaceCallback != null){
8989
spaceCallback(mea.SpaceEventResult);
9090
}
91-
if(mea.MembershipEventResult != null){
91+
if(mea.MembershipEventResult != null && membershipCallback != null){
9292
membershipCallback(mea.MembershipEventResult);
9393
}
94-
if(mea.MessageActionsEventResult != null){
94+
if(mea.MessageActionsEventResult != null && messageActionsCallback != null){
9595
messageActionsCallback(mea.MessageActionsEventResult);
9696
}
9797

0 commit comments

Comments
 (0)