@@ -24,6 +24,7 @@ public class UniversalRpcNetworkBehaviour : NetworkBehaviour
24
24
public string Received = string . Empty ;
25
25
public Tuple < int , bool , float , string > ReceivedParams = null ;
26
26
public ulong ReceivedFrom = ulong . MaxValue ;
27
+ public int ReceivedCount ;
27
28
28
29
public void OnRpcReceived ( )
29
30
{
@@ -32,6 +33,7 @@ public void OnRpcReceived()
32
33
33
34
var currentMethod = sf . GetMethod ( ) ;
34
35
Received = currentMethod . Name ;
36
+ ReceivedCount ++ ;
35
37
}
36
38
public void OnRpcReceivedWithParams ( int a , bool b , float f , string s )
37
39
{
@@ -40,6 +42,7 @@ public void OnRpcReceivedWithParams(int a, bool b, float f, string s)
40
42
41
43
var currentMethod = sf . GetMethod ( ) ;
42
44
Received = currentMethod . Name ;
45
+ ReceivedCount ++ ;
43
46
ReceivedParams = new Tuple < int , bool , float , string > ( a , b , f , s ) ;
44
47
}
45
48
@@ -496,6 +499,7 @@ protected void Clear()
496
499
foreach ( var obj in Object . FindObjectsByType < UniversalRpcNetworkBehaviour > ( FindObjectsSortMode . None ) )
497
500
{
498
501
obj . Received = string . Empty ;
502
+ obj . ReceivedCount = 0 ;
499
503
obj . ReceivedParams = null ;
500
504
obj . ReceivedFrom = ulong . MaxValue ;
501
505
}
@@ -528,10 +532,11 @@ protected UniversalRpcNetworkBehaviour GetPlayerObject(ulong ownerClientId, ulon
528
532
return m_PlayerNetworkObjects [ onClient ] [ ownerClientId ] . GetComponent < UniversalRpcNetworkBehaviour > ( ) ;
529
533
}
530
534
531
- protected void VerifyLocalReceived ( ulong objectOwner , ulong sender , string name , bool verifyReceivedFrom )
535
+ protected void VerifyLocalReceived ( ulong objectOwner , ulong sender , string name , bool verifyReceivedFrom , int expectedReceived = 1 )
532
536
{
533
537
var obj = GetPlayerObject ( objectOwner , sender ) ;
534
538
Assert . AreEqual ( name , obj . Received ) ;
539
+ Assert . That ( obj . ReceivedCount , Is . EqualTo ( expectedReceived ) ) ;
535
540
Assert . IsNull ( obj . ReceivedParams ) ;
536
541
if ( verifyReceivedFrom )
537
542
{
@@ -543,6 +548,7 @@ protected void VerifyLocalReceivedWithParams(ulong objectOwner, ulong sender, st
543
548
{
544
549
var obj = GetPlayerObject ( objectOwner , sender ) ;
545
550
Assert . AreEqual ( name , obj . Received ) ;
551
+ Assert . That ( obj . ReceivedCount , Is . EqualTo ( 1 ) ) ;
546
552
Assert . IsNotNull ( obj . ReceivedParams ) ;
547
553
Assert . AreEqual ( i , obj . ReceivedParams . Item1 ) ;
548
554
Assert . AreEqual ( b , obj . ReceivedParams . Item2 ) ;
@@ -556,17 +562,18 @@ protected void VerifyNotReceived(ulong objectOwner, ulong[] receivedBy)
556
562
{
557
563
UniversalRpcNetworkBehaviour playerObject = GetPlayerObject ( objectOwner , client ) ;
558
564
Assert . AreEqual ( string . Empty , playerObject . Received ) ;
565
+ Assert . That ( playerObject . ReceivedCount , Is . EqualTo ( 0 ) ) ;
559
566
Assert . IsNull ( playerObject . ReceivedParams ) ;
560
567
}
561
568
}
562
569
563
- protected void VerifyRemoteReceived ( ulong objectOwner , ulong sender , string message , ulong [ ] receivedBy , bool verifyReceivedFrom , bool waitForMessages = true )
570
+ protected void VerifyRemoteReceived ( ulong objectOwner , ulong sender , string message , ulong [ ] receivedBy , bool verifyReceivedFrom , bool waitForMessages = true , int expectedReceived = 1 )
564
571
{
565
572
foreach ( var client in receivedBy )
566
573
{
567
574
if ( client == sender )
568
575
{
569
- VerifyLocalReceived ( objectOwner , sender , message , verifyReceivedFrom ) ;
576
+ VerifyLocalReceived ( objectOwner , sender , message , verifyReceivedFrom , expectedReceived ) ;
570
577
571
578
break ;
572
579
}
@@ -628,6 +635,7 @@ protected void VerifyRemoteReceived(ulong objectOwner, ulong sender, string mess
628
635
{
629
636
UniversalRpcNetworkBehaviour playerObject = GetPlayerObject ( objectOwner , client ) ;
630
637
Assert . AreEqual ( message , playerObject . Received ) ;
638
+ Assert . That ( playerObject . ReceivedCount , Is . EqualTo ( expectedReceived ) ) ;
631
639
Assert . IsNull ( playerObject . ReceivedParams ) ;
632
640
if ( verifyReceivedFrom )
633
641
{
@@ -701,6 +709,7 @@ protected void VerifyRemoteReceivedWithParams(ulong objectOwner, ulong sender, s
701
709
{
702
710
UniversalRpcNetworkBehaviour playerObject = GetPlayerObject ( objectOwner , client ) ;
703
711
Assert . AreEqual ( message , playerObject . Received ) ;
712
+ Assert . That ( playerObject . ReceivedCount , Is . EqualTo ( 1 ) ) ;
704
713
705
714
Assert . IsNotNull ( playerObject . ReceivedParams ) ;
706
715
Assert . AreEqual ( i , playerObject . ReceivedParams . Item1 ) ;
@@ -1636,17 +1645,20 @@ public void TestMutualRecursion()
1636
1645
1637
1646
VerifyNotReceived ( NetworkManager . ServerClientId , s_ClientIds ) ;
1638
1647
1639
- for ( var i = 0 ; i < 10 ; ++ i )
1648
+ var clientListExpected = 1 ;
1649
+ var serverListExpected = 2 ;
1650
+ for ( var i = 1 ; i <= 10 ; ++ i )
1640
1651
{
1641
1652
WaitForMessageReceivedWithTimeTravel < RpcMessage > ( clientList ) ;
1642
- VerifyRemoteReceived ( NetworkManager . ServerClientId , NetworkManager . ServerClientId , nameof ( UniversalRpcNetworkBehaviour . MutualRecursionClientRpc ) , clientIdArray , false , false ) ;
1653
+ VerifyRemoteReceived ( NetworkManager . ServerClientId , NetworkManager . ServerClientId , nameof ( UniversalRpcNetworkBehaviour . MutualRecursionClientRpc ) , clientIdArray , false , false , clientListExpected ) ;
1643
1654
VerifyNotReceived ( NetworkManager . ServerClientId , serverIdArray ) ;
1655
+ clientListExpected *= 2 ;
1644
1656
1645
1657
Clear ( ) ;
1646
-
1647
1658
WaitForMessageReceivedWithTimeTravel < RpcMessage > ( serverList ) ;
1648
- VerifyRemoteReceived ( NetworkManager . ServerClientId , NetworkManager . ServerClientId , nameof ( UniversalRpcNetworkBehaviour . MutualRecursionServerRpc ) , serverIdArray , false , false ) ;
1659
+ VerifyRemoteReceived ( NetworkManager . ServerClientId , NetworkManager . ServerClientId , nameof ( UniversalRpcNetworkBehaviour . MutualRecursionServerRpc ) , serverIdArray , false , false , serverListExpected ) ;
1649
1660
VerifyNotReceived ( NetworkManager . ServerClientId , clientIdArray ) ;
1661
+ serverListExpected *= 2 ;
1650
1662
1651
1663
Clear ( ) ;
1652
1664
}
0 commit comments