@@ -1723,6 +1723,50 @@ public IEnumerator TestMembersAndMemberships() {
17231723 yield return new WaitForSeconds ( PlayModeCommon . WaitTimeBetweenCalls4 ) ;
17241724 Assert . True ( tresult , "GetMemberships didn't return" ) ;
17251725
1726+ string filterMemberships = string . Format ( "space.name == '{0}'" , spacename ) ;
1727+
1728+ //Get Space Memberships with filter
1729+ tresult = false ;
1730+ pubnub . GetMemberships ( ) . UserID ( userid ) . Include ( inclMem ) . Limit ( limit ) . Filter ( filterMemberships ) . Count ( count ) . Async ( ( result , status ) => {
1731+ Assert . True ( status . Error . Equals ( false ) ) ;
1732+ Assert . True ( status . StatusCode . Equals ( 0 ) , status . StatusCode . ToString ( ) ) ;
1733+
1734+ bool bFound = false ;
1735+ Debug . Log ( "Looking for " + spaceid ) ;
1736+ Debug . Log ( "result.Next:" + result . Next ) ;
1737+ Debug . Log ( "result.Prev:" + result . Prev ) ;
1738+ Debug . Log ( "result.TotalCount:" + result . TotalCount ) ;
1739+ Assert . True ( result . TotalCount > 0 ) ;
1740+
1741+ foreach ( PNMemberships mem in result . Data ) {
1742+
1743+ Debug . Log ( "Found mem " + mem . Space . ID ) ;
1744+ if ( mem . Space . ID . Equals ( spaceid ) ) {
1745+ Assert . AreEqual ( spacename , mem . Space . Name ) ;
1746+ Assert . AreEqual ( spacedesc , mem . Space . Description ) ;
1747+ Assert . AreEqual ( spaceid , mem . Space . ID ) ;
1748+ Assert . AreEqual ( mem . Space . Updated , mem . Space . Created ) ;
1749+ Assert . True ( ! string . IsNullOrEmpty ( mem . Space . ETag ) , mem . Space . ETag ) ;
1750+ foreach ( KeyValuePair < string , object > kvp in mem . Space . Custom ) {
1751+ Debug . Log ( kvp . Key + kvp . Value ) ;
1752+ }
1753+ Assert . True ( "scv1" == mem . Space . Custom [ "spacecustomkey1" ] . ToString ( ) ) ;
1754+ Assert . True ( "scv2" == mem . Space . Custom [ "spacecustomkey2" ] . ToString ( ) ) ;
1755+ Assert . True ( "mcvup21" == mem . Custom [ "memberscustomkeyup21" ] . ToString ( ) ) ;
1756+ Assert . True ( "mcvup22" == mem . Custom [ "memberscustomkeyup22" ] . ToString ( ) ) ;
1757+
1758+ bFound = true ;
1759+ break ;
1760+ }
1761+
1762+ }
1763+
1764+ tresult = bFound ;
1765+ } ) ;
1766+
1767+ yield return new WaitForSeconds ( PlayModeCommon . WaitTimeBetweenCalls4 ) ;
1768+ Assert . True ( tresult , "GetMembershipsFilter didn't return" ) ;
1769+
17261770 //Remove Space Memberships
17271771 PNMembersRemove inputRm = new PNMembersRemove ( ) ;
17281772 inputRm . ID = userid ;
@@ -1853,6 +1897,47 @@ public IEnumerator TestMembersAndMemberships() {
18531897 } ) ;
18541898 yield return new WaitForSeconds ( PlayModeCommon . WaitTimeBetweenCalls4 ) ;
18551899 Assert . True ( tresult , "ManageMemberships Update didn't return" ) ;
1900+
1901+ string filterMembers = string . Format ( "user.name == '{0}'" , name ) ;
1902+
1903+ //Get members with Filter
1904+ tresult = false ;
1905+ pubnub . GetMembers ( ) . SpaceID ( spaceid2 ) . Include ( inclSm ) . Limit ( limit ) . Count ( count ) . Filter ( filterMembers ) . Async ( ( result , status ) => {
1906+ Assert . True ( status . Error . Equals ( false ) ) ;
1907+ Assert . True ( status . StatusCode . Equals ( 0 ) , status . StatusCode . ToString ( ) ) ;
1908+ bool bFound = false ;
1909+ Debug . Log ( "Looking for " + userid2 ) ;
1910+ Debug . Log ( "result.Next:" + result . Next ) ;
1911+ Debug . Log ( "result.Prev:" + result . Prev ) ;
1912+ Debug . Log ( "result.TotalCount:" + result . TotalCount ) ;
1913+ Assert . True ( result . TotalCount > 0 ) ;
1914+
1915+ foreach ( PNMembers mem in result . Data ) {
1916+
1917+ Debug . Log ( "Found mem " + mem . User . ID ) ;
1918+ if ( mem . User . ID . Equals ( userid2 ) ) {
1919+ Assert . AreEqual ( name2 , mem . User . Name ) ;
1920+ Assert . AreEqual ( email2 , mem . User . Email ) ;
1921+ Assert . AreEqual ( externalID2 , mem . User . ExternalID ) ;
1922+ Assert . AreEqual ( profileURL2 , mem . User . ProfileURL ) ;
1923+ Assert . AreEqual ( userid2 , mem . User . ID ) ;
1924+ Assert . AreEqual ( mem . User . Updated , mem . User . Created ) ;
1925+ Assert . True ( ! string . IsNullOrEmpty ( mem . User . ETag ) , mem . User . ETag ) ;
1926+ Assert . True ( "ucv21" == mem . User . Custom [ "usercustomkey21" ] . ToString ( ) ) ;
1927+ Assert . True ( "ucv22" == mem . User . Custom [ "usercustomkey22" ] . ToString ( ) ) ;
1928+ Assert . True ( "memcvup21" == mem . Custom [ "mememberscustomkeyup21" ] . ToString ( ) ) ;
1929+ Assert . True ( "memcvup22" == mem . Custom [ "mememberscustomkeyup22" ] . ToString ( ) ) ;
1930+
1931+ bFound = true ;
1932+ break ;
1933+ }
1934+
1935+ }
1936+ tresult = bFound ;
1937+ } ) ;
1938+
1939+ yield return new WaitForSeconds ( PlayModeCommon . WaitTimeBetweenCalls ) ;
1940+ Assert . True ( tresult , "GetMembersFilter didn't return" ) ;
18561941
18571942 //Get members
18581943 tresult = false ;
@@ -2289,6 +2374,8 @@ public IEnumerator TestUserCRUD() {
22892374 string externalID = string . Format ( "externalID {0}" , ran ) ;
22902375 string profileURL = string . Format ( "profileURL {0}" , ran ) ;
22912376
2377+ string filter = string . Format ( "name like '{0}*'" , name ) ;
2378+
22922379 PNUserSpaceInclude [ ] include = new PNUserSpaceInclude [ ] { PNUserSpaceInclude . PNUserSpaceCustom } ;
22932380
22942381 PubNub pubnub = new PubNub ( pnConfiguration ) ;
@@ -2355,7 +2442,6 @@ public IEnumerator TestUserCRUD() {
23552442 } ) ;
23562443 yield return new WaitForSeconds ( PlayModeCommon . WaitTimeBetweenCalls ) ;
23572444 Assert . True ( tresult , "UpdateUser didn't return" ) ;
2358-
23592445
23602446 pubnub . GetUsers ( ) . Async ( ( result , status ) => {
23612447 Assert . True ( status . Error . Equals ( false ) ) ;
@@ -2383,6 +2469,32 @@ public IEnumerator TestUserCRUD() {
23832469 yield return new WaitForSeconds ( PlayModeCommon . WaitTimeBetweenCalls ) ;
23842470 Assert . True ( tresult , "GetUsers didn't return" ) ;
23852471
2472+ pubnub . GetUsers ( ) . Filter ( filter ) . Async ( ( result , status ) => {
2473+ Assert . True ( status . Error . Equals ( false ) ) ;
2474+ Assert . True ( status . StatusCode . Equals ( 0 ) , status . StatusCode . ToString ( ) ) ;
2475+ Debug . Log ( "result.Next:" + result . Next ) ;
2476+ Debug . Log ( "result.Prev:" + result . Prev ) ;
2477+ Debug . Log ( "result.TotalCount:" + result . TotalCount ) ;
2478+ //Assert.True(result.TotalCount>0);
2479+
2480+ if ( result . Data != null ) {
2481+ foreach ( PNUserResult pnUserResult in result . Data ) {
2482+ if ( pnUserResult . ID . Equals ( id ) ) {
2483+ Assert . AreEqual ( name2 , pnUserResult . Name ) ;
2484+ Assert . AreEqual ( email2 , pnUserResult . Email ) ;
2485+ Assert . AreEqual ( externalID2 , pnUserResult . ExternalID ) ;
2486+ Assert . AreEqual ( profileURL2 , pnUserResult . ProfileURL ) ;
2487+ Assert . AreNotEqual ( pnUserResult . Updated , pnUserResult . Created ) ;
2488+ Assert . True ( ! string . IsNullOrEmpty ( pnUserResult . ETag ) , pnUserResult . ETag ) ;
2489+ Assert . True ( pnUserResult . Custom == null ) ;
2490+ tresult = true ;
2491+ }
2492+ }
2493+ }
2494+ } ) ;
2495+ yield return new WaitForSeconds ( PlayModeCommon . WaitTimeBetweenCalls ) ;
2496+ Assert . True ( tresult , "GetUsersFilter didn't return" ) ;
2497+
23862498 tresult = false ;
23872499
23882500 pubnub . DeleteUser ( ) . ID ( id ) . Async ( ( result , status ) => {
@@ -2407,6 +2519,8 @@ public IEnumerator TestSpaceCRUD() {
24072519 string name = string . Format ( "name {0}" , ran ) ;
24082520 string description = string . Format ( "description {0}" , ran ) ;
24092521
2522+ string filter = string . Format ( "name like '{0}*'" , name ) ;
2523+
24102524 PNUserSpaceInclude [ ] include = new PNUserSpaceInclude [ ] { PNUserSpaceInclude . PNUserSpaceCustom } ;
24112525
24122526 PubNub pubnub = new PubNub ( pnConfiguration ) ;
@@ -2489,6 +2603,30 @@ public IEnumerator TestSpaceCRUD() {
24892603 yield return new WaitForSeconds ( PlayModeCommon . WaitTimeBetweenCalls ) ;
24902604 Assert . True ( tresult , "GetSpaces didn't return" ) ;
24912605
2606+ pubnub . GetSpaces ( ) . Filter ( filter ) . Async ( ( result , status ) => {
2607+ Assert . True ( status . Error . Equals ( false ) ) ;
2608+ Assert . True ( status . StatusCode . Equals ( 0 ) , status . StatusCode . ToString ( ) ) ;
2609+ Debug . Log ( "result.Next:" + result . Next ) ;
2610+ Debug . Log ( "result.Prev:" + result . Prev ) ;
2611+ Debug . Log ( "result.TotalCount:" + result . TotalCount ) ;
2612+ //Assert.True(result.TotalCount>0);
2613+
2614+ if ( result . Data != null ) {
2615+ foreach ( PNSpaceResult pnSpaceResult in result . Data ) {
2616+ if ( pnSpaceResult . ID . Equals ( id ) ) {
2617+ Assert . AreEqual ( name2 , pnSpaceResult . Name ) ;
2618+ Assert . AreEqual ( description2 , pnSpaceResult . Description ) ;
2619+ Assert . AreNotEqual ( pnSpaceResult . Updated , pnSpaceResult . Created ) ;
2620+ Assert . True ( ! string . IsNullOrEmpty ( pnSpaceResult . ETag ) , pnSpaceResult . ETag ) ;
2621+ Assert . True ( pnSpaceResult . Custom == null ) ;
2622+ tresult = true ;
2623+ }
2624+ }
2625+ }
2626+ } ) ;
2627+ yield return new WaitForSeconds ( PlayModeCommon . WaitTimeBetweenCalls ) ;
2628+ Assert . True ( tresult , "GetSpacesFilter didn't return" ) ;
2629+
24922630 tresult = false ;
24932631
24942632 pubnub . DeleteSpace ( ) . ID ( id ) . Async ( ( result , status ) => {
0 commit comments