Пример #1
0
        private async Task <SessionCreatedParameters> CreateSession()
        {
            ConnectionDetails details = new ConnectionDetails()
            {
                UserName     = "******",
                Password     = "******",
                DatabaseName = "msdb",
                ServerName   = "serverName"
            };

            SessionCreatedParameters sessionResult = null;

            serviceHostMock.AddEventHandling(CreateSessionCompleteNotification.Type, (et, p) => sessionResult = p);
            CreateSessionResponse result = default(CreateSessionResponse);
            var contextMock = RequestContextMocks.Create <CreateSessionResponse>(r => result = r).AddErrorHandling(null);

            connectionServiceMock.Setup(c => c.Connect(It.IsAny <ConnectParams>()))
            .Returns((ConnectParams connectParams) => Task.FromResult(GetCompleteParamsForConnection(connectParams.OwnerUri, details)));

            ConnectionInfo connectionInfo       = new ConnectionInfo(null, null, null);
            string         fakeConnectionString = "Data Source=server;Initial Catalog=database;Integrated Security=False;User Id=user";

            connectionInfo.AddConnection("Default", new SqlConnection(fakeConnectionString));
            connectionServiceMock.Setup((c => c.TryFindConnection(It.IsAny <string>(), out connectionInfo))).
            OutCallback((string t, out ConnectionInfo v) => v = connectionInfo)
            .Returns(true);

            connectionServiceMock.Setup(c => c.Disconnect(It.IsAny <DisconnectParams>())).Returns(true);
            await service.HandleCreateSessionRequest(details, contextMock.Object);

            await service.CreateSessionTask;

            return(sessionResult);
        }
Пример #2
0
        private async Task <SessionCreatedParameters> CreateSession()
        {
            SessionCreatedParameters sessionResult = null;

            serviceHostMock.AddEventHandling(CreateSessionCompleteNotification.Type, (et, p) => sessionResult = p);
            CreateSessionResponse result = default(CreateSessionResponse);
            var contextMock = RequestContextMocks.Create <CreateSessionResponse>(r => result = r).AddErrorHandling(null);

            connectionServiceMock.Setup(c => c.Connect(It.IsAny <ConnectParams>()))
            .Returns((ConnectParams connectParams) => Task.FromResult(GetCompleteParamsForConnection(connectParams.OwnerUri, details)));

            ConnectionInfo connectionInfo = new ConnectionInfo(null, null, details);

            connectionInfo.AddConnection("Default", new SqlConnection(fakeConnectionString));
            connectionServiceMock.Setup((c => c.TryFindConnection(It.IsAny <string>(), out connectionInfo))).
            OutCallback((string t, out ConnectionInfo v) => v = connectionInfo)
            .Returns(true);

            connectionServiceMock.Setup(c => c.Disconnect(It.IsAny <DisconnectParams>())).Returns(true);
            await service.HandleCreateSessionRequest(details, contextMock.Object);

            await service.CreateSessionTask;

            return(sessionResult);
        }
Пример #3
0
        private async Task CreateSessionRequestAndVerifyServerNodeHelper(ConnectionDetails details)
        {
            serviceHostMock.AddEventHandling(ConnectionCompleteNotification.Type, null);

            // Stub out the connection to avoid a 30second timeout while attempting to connect.
            // The tests don't need any connection context anyhow so this doesn't impact the scenario
            mockConnectionOpener.Setup(b => b.OpenSqlConnection(It.IsAny <ConnectionInfo>(), It.IsAny <string>()))
            .Throws <Exception>();
            connectionServiceMock.Setup(c => c.Connect(It.IsAny <ConnectParams>()))
            .Returns((ConnectParams connectParams) => Task.FromResult(GetCompleteParamsForConnection(connectParams.OwnerUri, details)));
            ConnectionInfo connectionInfo = new ConnectionInfo(null, null, details);

            connectionInfo.AddConnection("Default", new SqlConnection(fakeConnectionString));
            connectionServiceMock.Setup((c => c.TryFindConnection(It.IsAny <string>(), out connectionInfo))).
            OutCallback((string t, out ConnectionInfo v) => v = connectionInfo)
            .Returns(true);

            // when creating a new session
            // then expect the create session request to return false
            await RunAndVerify <CreateSessionResponse, SessionCreatedParameters>(
                test : (requestContext) =>
            {
                return(CallCreateSession(details, requestContext));
            },
                verify : (actual =>
            {
                Assert.True(actual.Success);
                Assert.NotNull(actual.SessionId);
                VerifyServerNode(actual.RootNode, details);
            }));

            // And expect no error notification to be sent
            serviceHostMock.Verify(x => x.SendEvent(ConnectionCompleteNotification.Type,
                                                    It.IsAny <ConnectionCompleteParams>()), Times.Never());
        }
Пример #4
0
        private ConnectionService SetupAndRegisterTestConnectionService()
        {
            ConnectionService connService    = TestObjects.GetTestConnectionService();
            ConnectionInfo    connectionInfo = new ConnectionInfo(TestObjects.GetTestSqlConnectionFactory(),
                                                                  defaultOwnerUri, defaultConnectionDetails);

            connectionInfo.AddConnection("Default", new SqlConnection());

            connService.OwnerToConnectionMap.Add(defaultOwnerUri, connectionInfo);
            ServiceProvider.RegisterSingleService(connService);
            return(connService);
        }