internal async Task HandleCloseSessionRequest(CloseSessionParams closeSessionParams, RequestContext <CloseSessionResponse> context) { Logger.Write(LogLevel.Verbose, "HandleCloseSessionRequest"); Func <Task <CloseSessionResponse> > closeSession = () => { Validate.IsNotNull(nameof(closeSessionParams), closeSessionParams); Validate.IsNotNull(nameof(context), context); return(Task.Factory.StartNew(() => { string uri = closeSessionParams.SessionId; ObjectExplorerSession session = null; bool success = false; if (!sessionMap.TryGetValue(uri, out session)) { Logger.Write(LogLevel.Verbose, $"Cannot close object explorer session. Couldn't find session for uri. {uri} "); } if (session != null) { // refresh the nodes for given node path CloseSession(uri); success = true; } var response = new CloseSessionResponse() { Success = success, SessionId = uri }; return response; })); }; await HandleRequestAsync(closeSession, context, "HandleCloseSessionRequest"); }
private async Task <CloseSessionResponse> CallCloseSession(CloseSessionParams closeSessionParams, RequestContext <CloseSessionResponse> context) { SessionCreatedParameters result = null; serviceHostMock.AddEventHandling(CreateSessionCompleteNotification.Type, (et, p) => result = p); await service.HandleCloseSessionRequest(closeSessionParams, context); return(null); }
public async Task CloseSessionGivenInvalidSessionShouldReturnEmptyList() { CloseSessionParams closeSessionParamsparams = new CloseSessionParams() { SessionId = "invalid session is", }; // when expanding // then expect the nodes are server children await RunAndVerify <CloseSessionResponse, CloseSessionResponse>( test : (requestContext) => CallCloseSession(closeSessionParamsparams, requestContext), verify : (actual => { Assert.Equal(actual.SessionId, closeSessionParamsparams.SessionId); Assert.False(actual.Success); })); }
public async Task CloseSessionGivenValidSessionShouldCloseTheSessionAndDisconnect() { var session = await CreateSession(); CloseSessionParams closeSessionParamsparams = new CloseSessionParams() { SessionId = session.SessionId, }; // when expanding // then expect the nodes are server children await RunAndVerify <CloseSessionResponse, CloseSessionResponse>( test : (requestContext) => CallCloseSession(closeSessionParamsparams, requestContext), verify : (actual => { Assert.Equal(actual.SessionId, closeSessionParamsparams.SessionId); Assert.True(actual.Success); Assert.False(service.SessionIds.Contains(session.SessionId)); })); connectionServiceMock.Verify(c => c.Disconnect(It.IsAny <DisconnectParams>())); }
public async Task <CloseSessionResponse> RequestObjectExplorerCloseSession(CloseSessionParams closeSessionParams, int timeoutMilliseconds = 5000) { return(await Driver.SendRequest(CloseSessionRequest.Type, closeSessionParams)); }