@@ -23,7 +23,7 @@ public class StartTrustCheckCommandHandlerTests
2323 private readonly IHubByteSyncPush _mockHubByteSyncPush ;
2424
2525 private readonly StartTrustCheckCommandHandler _startTrustCheckCommandHandler ;
26-
26+
2727 public StartTrustCheckCommandHandlerTests ( )
2828 {
2929 _mockCloudSessionsRepository = A . Fake < ICloudSessionsRepository > ( ) ;
@@ -32,7 +32,7 @@ public StartTrustCheckCommandHandlerTests()
3232 _mockHubByteSyncPush = A . Fake < IHubByteSyncPush > ( ) ;
3333
3434 _startTrustCheckCommandHandler = new StartTrustCheckCommandHandler (
35- _mockCloudSessionsRepository ,
35+ _mockCloudSessionsRepository ,
3636 _mockInvokeClientsService ,
3737 _mockLogger ) ;
3838 }
@@ -57,13 +57,14 @@ public async Task Handle_SessionExists_WithMembers_ReturnsSuccessResult()
5757 } ;
5858
5959 var cloudSession = new CloudSessionData ( sessionId , new EncryptedSessionSettings ( ) , new Client { ClientInstanceId = "member1" } ) ;
60- cloudSession . SessionMembers . Add ( new SessionMemberData
61- {
60+ cloudSession . ProtocolVersion = ProtocolVersion . CURRENT ;
61+ cloudSession . SessionMembers . Add ( new SessionMemberData
62+ {
6263 ClientInstanceId = member1 ,
6364 PublicKeyInfo = new PublicKeyInfo { ProtocolVersion = ProtocolVersion . CURRENT }
6465 } ) ;
65- cloudSession . SessionMembers . Add ( new SessionMemberData
66- {
66+ cloudSession . SessionMembers . Add ( new SessionMemberData
67+ {
6768 ClientInstanceId = member2 ,
6869 PublicKeyInfo = new PublicKeyInfo { ProtocolVersion = ProtocolVersion . CURRENT }
6970 } ) ;
@@ -75,7 +76,7 @@ public async Task Handle_SessionExists_WithMembers_ReturnsSuccessResult()
7576 . Returns ( _mockHubByteSyncPush ) ;
7677 A . CallTo ( ( ) => _mockInvokeClientsService . Client ( member2 ) )
7778 . Returns ( _mockHubByteSyncPush ) ;
78-
79+
7980 A . CallTo ( ( ) => _mockHubByteSyncPush . AskPublicKeyCheckData ( sessionId , joinerClient . ClientInstanceId , publicKeyInfo ) )
8081 . Returns ( Task . CompletedTask ) ;
8182
@@ -149,8 +150,9 @@ public async Task Handle_SessionExistsButNoValidMembers_ReturnsEmptySuccessResul
149150 } ;
150151
151152 var cloudSession = new CloudSessionData ( sessionId , new EncryptedSessionSettings ( ) , new Client { ClientInstanceId = "creator" } ) ;
152- cloudSession . SessionMembers . Add ( new SessionMemberData
153- {
153+ cloudSession . ProtocolVersion = ProtocolVersion . CURRENT ;
154+ cloudSession . SessionMembers . Add ( new SessionMemberData
155+ {
154156 ClientInstanceId = "otherMember" ,
155157 PublicKeyInfo = new PublicKeyInfo { ProtocolVersion = ProtocolVersion . CURRENT }
156158 } ) ;
@@ -173,7 +175,7 @@ public async Task Handle_SessionExistsButNoValidMembers_ReturnsEmptySuccessResul
173175 }
174176
175177 [ Test ]
176- public async Task Handle_WhenMemberHasIncompatibleProtocolVersion_ReturnsProtocolVersionIncompatible ( )
178+ public async Task Handle_WhenMemberHasDifferentProtocolVersion_ReturnsSuccess ( )
177179 {
178180 var sessionId = "testSession" ;
179181 var joinerClient = new Client { ClientId = "joinerClient" , ClientInstanceId = "joinerClientInstance" } ;
@@ -189,49 +191,58 @@ public async Task Handle_WhenMemberHasIncompatibleProtocolVersion_ReturnsProtoco
189191 } ;
190192
191193 var cloudSession = new CloudSessionData ( sessionId , new EncryptedSessionSettings ( ) , new Client { ClientInstanceId = "creator" } ) ;
192- cloudSession . SessionMembers . Add ( new SessionMemberData
193- {
194+ cloudSession . ProtocolVersion = ProtocolVersion . CURRENT ;
195+ cloudSession . SessionMembers . Add ( new SessionMemberData
196+ {
194197 ClientInstanceId = member1 ,
195198 PublicKeyInfo = new PublicKeyInfo { ProtocolVersion = 0 }
196199 } ) ;
197200
198201 A . CallTo ( ( ) => _mockCloudSessionsRepository . Get ( sessionId ) )
199202 . Returns ( cloudSession ) ;
200203
204+ A . CallTo ( ( ) => _mockInvokeClientsService . Client ( member1 ) )
205+ . Returns ( _mockHubByteSyncPush ) ;
206+ A . CallTo ( ( ) => _mockHubByteSyncPush . AskPublicKeyCheckData ( sessionId , joinerClient . ClientInstanceId , publicKeyInfo ) )
207+ . Returns ( Task . CompletedTask ) ;
208+
201209 var request = new StartTrustCheckRequest ( parameters , joinerClient ) ;
202210
203211 var result = await _startTrustCheckCommandHandler . Handle ( request , CancellationToken . None ) ;
204212
205213 result . Should ( ) . NotBeNull ( ) ;
206- result . IsOK . Should ( ) . BeFalse ( ) ;
207- result . IsProtocolVersionIncompatible . Should ( ) . BeTrue ( ) ;
208- result . MembersInstanceIds . Should ( ) . BeEmpty ( ) ;
214+ result . IsOK . Should ( ) . BeTrue ( ) ;
215+ result . IsProtocolVersionIncompatible . Should ( ) . BeFalse ( ) ;
216+ result . MembersInstanceIds . Should ( ) . ContainSingle ( ) . Which . Should ( ) . Be ( member1 ) ;
209217
210218 A . CallTo ( ( ) => _mockCloudSessionsRepository . Get ( sessionId ) ) . MustHaveHappenedOnceExactly ( ) ;
211- A . CallTo ( ( ) => _mockInvokeClientsService . Client ( A < string > . Ignored ) ) . MustNotHaveHappened ( ) ;
219+ A . CallTo ( ( ) => _mockInvokeClientsService . Client ( member1 ) ) . MustHaveHappenedOnceExactly ( ) ;
220+ A . CallTo ( ( ) => _mockHubByteSyncPush . AskPublicKeyCheckData ( sessionId , joinerClient . ClientInstanceId , publicKeyInfo ) )
221+ . MustHaveHappenedOnceExactly ( ) ;
212222 }
213223
214224 [ Test ]
215- public async Task Handle_WhenJoinerHasIncompatibleProtocolVersion_ReturnsProtocolVersionIncompatible ( )
225+ public async Task Handle_WhenJoinerProtocolVersionDoesNotMatchSessionProtocolVersion_ReturnsProtocolVersionIncompatible ( )
216226 {
217227 var sessionId = "testSession" ;
218228 var joinerClient = new Client { ClientId = "joinerClient" , ClientInstanceId = "joinerClientInstance" } ;
219229 var member1 = "memberInstance1" ;
220230
221- var publicKeyInfo = new PublicKeyInfo { ProtocolVersion = 0 } ;
231+ var publicKeyInfo = new PublicKeyInfo { ProtocolVersion = ProtocolVersion . CURRENT } ;
222232 var parameters = new TrustCheckParameters
223233 {
224234 SessionId = sessionId ,
225235 MembersInstanceIdsToCheck = new List < string > { member1 } ,
226236 PublicKeyInfo = publicKeyInfo ,
227- ProtocolVersion = 0
237+ ProtocolVersion = ProtocolVersion . CURRENT
228238 } ;
229239
230240 var cloudSession = new CloudSessionData ( sessionId , new EncryptedSessionSettings ( ) , new Client { ClientInstanceId = "creator" } ) ;
231- cloudSession . SessionMembers . Add ( new SessionMemberData
232- {
241+ cloudSession . ProtocolVersion = 0 ;
242+ cloudSession . SessionMembers . Add ( new SessionMemberData
243+ {
233244 ClientInstanceId = member1 ,
234- PublicKeyInfo = new PublicKeyInfo { ProtocolVersion = ProtocolVersion . CURRENT }
245+ PublicKeyInfo = new PublicKeyInfo { ProtocolVersion = 0 }
235246 } ) ;
236247
237248 A . CallTo ( ( ) => _mockCloudSessionsRepository . Get ( sessionId ) )
@@ -267,8 +278,9 @@ public async Task Handle_WhenJoinerAndMemberHaveCompatibleVersions_ReturnsSucces
267278 } ;
268279
269280 var cloudSession = new CloudSessionData ( sessionId , new EncryptedSessionSettings ( ) , new Client { ClientInstanceId = "creator" } ) ;
270- cloudSession . SessionMembers . Add ( new SessionMemberData
271- {
281+ cloudSession . ProtocolVersion = ProtocolVersion . CURRENT ;
282+ cloudSession . SessionMembers . Add ( new SessionMemberData
283+ {
272284 ClientInstanceId = member1 ,
273285 PublicKeyInfo = new PublicKeyInfo { ProtocolVersion = ProtocolVersion . CURRENT }
274286 } ) ;
0 commit comments