Esempio n. 1
0
        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");
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
            }));
        }
Esempio n. 4
0
        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));
 }