public void Test1()
        {
            var arguments = new TDSServerArguments {
                Log = Console.Out
            };
            var engine  = new StaticQueryEngine(arguments);
            int timeout = Debugger.IsAttached ? 15 : 15;

            using (var server = TestTdsServer.StartTestServer(engine, 5463, timeout))
            {
                using (SqlConnection connection = new SqlConnection(server.ConnectionString))
                {
                    connection.Open();

                    SqlTransaction transaction = connection.BeginTransaction("Transaction1");

                    SqlCommand command = connection.CreateCommand();
                    command.Transaction = transaction;

                    command.CommandText = "insert into Table (Name) VALUES ('Bob')";
                    command.ExecuteNonQuery();

                    command.CommandText = "insert into Table (Name) VALUES ('Joe')";
                    command.ExecuteNonQuery();

                    transaction.Commit();
                }
            }
        }
Beispiel #2
0
        public static TestTdsServer StartServerWithQueryEngine(QueryEngine engine, bool enableFedAuth = false, bool enableLog = false)
        {
            TDSServerArguments args = new TDSServerArguments()
            {
                Log = enableLog ? Console.Out : null,
            };

            if (enableFedAuth)
            {
                args.FedAuthRequiredPreLoginOption = Microsoft.SqlServer.TDS.PreLogin.TdsPreLoginFedAuthRequiredOption.FedAuthRequired;
            }

            TestTdsServer server = engine == null ? new TestTdsServer(args) : new TestTdsServer(engine, args);

            server._endpoint = new TDSServerEndPoint(server)
            {
                ServerEndPoint = new IPEndPoint(IPAddress.Any, 0)
            };
            server._endpoint.Start();
            int port = server._endpoint.ServerEndPoint.Port;

            server.connectionStringBuilder = new SqlConnectionStringBuilder()
            {
                DataSource = "localhost," + port, ConnectTimeout = 30, Encrypt = false
            };
            server.ConnectionString = server.connectionStringBuilder.ConnectionString;
            return(server);
        }
        public static TestTdsServer StartServerWithQueryEngine(QueryEngine engine, int port = 0, int timeout = 600, bool enableFedAuth = false, bool enableLog = false, [CallerMemberName] string methodName = "")
        {
            TDSServerArguments args = new TDSServerArguments()
            {
                Log = enableLog ? Console.Out : null,
            };

            if (enableFedAuth)
            {
                args.FedAuthRequiredPreLoginOption = Microsoft.SqlServer.TDS.PreLogin.TdsPreLoginFedAuthRequiredOption.FedAuthRequired;
            }

            TestTdsServer server = engine == null ? new TestTdsServer(args) : new TestTdsServer(engine, args);

            server._endpoint = new TDSServerEndPoint(server)
            {
                ServerEndPoint = new IPEndPoint(IPAddress.Any, port)
            };
            server._endpoint.EndpointName = methodName;
            // The server EventLog should be enabled as it logs the exceptions.
            server._endpoint.EventLog = enableLog ? Console.Out : TextWriter.Null;
            server._endpoint.Start();

            server.connectionStringBuilder = new SqlConnectionStringBuilder()
            {
                DataSource = "localhost," + port, ConnectTimeout = timeout, Encrypt = false
            };
            server.ConnectionString = server.connectionStringBuilder.ConnectionString;
            return(server);
        }
        public static TestTdsServer StartTestServer(bool enableFedAuth = false)
        {
            TDSServerArguments args = new TDSServerArguments()
            {
                Log = Console.Out,
            };

            if (enableFedAuth)
            {
                args.FedAuthRequiredPreLoginOption = Microsoft.SqlServer.TDS.PreLogin.TdsPreLoginFedAuthRequiredOption.FedAuthRequired;
            }

            TestTdsServer server = new TestTdsServer(args);

            server._endpoint = new TDSServerEndPoint(server)
            {
                ServerEndPoint = new IPEndPoint(IPAddress.Any, 12345)
            };
            server._endpoint.Start();

            server.connectionStringBuilder = new SqlConnectionStringBuilder()
            {
                DataSource = "localhost,12345", ConnectTimeout = 30, Encrypt = false
            };
            server.ConnectionString = server.connectionStringBuilder.ConnectionString;
            return(server);
        }
Beispiel #5
0
        public override Task StartInternalAsync()
        {
            var arguments = new TDSServerArguments {
                Log = Console.Out
            };

            _engine = new StaticQueryEngine(arguments);
            foreach (var stub in _exestingStubs)
            {
                _engine.AddStub(stub);
            }
            _engine.Name = Settings.Name;

            _server = TestTdsServer.StartTestServer(_engine, port: Settings.Port, enableLog: false);

            return(Task.Run(() => WaitHandle.WaitAll(new WaitHandle[] { Token.WaitHandle })));
        }
 public TestTdsServer(QueryEngine engine, TDSServerArguments args) : base(args)
 {
     this.Engine = engine;
 }
 public TestTdsServer(TDSServerArguments args) : base(args)
 {
 }
Beispiel #8
0
 public StaticQueryEngine(TDSServerArguments arguments) : base(arguments)
 {
     _exisitngStubs = new Dictionary <string, List <SqlStub> >(StringComparer.OrdinalIgnoreCase);
     _missingStubs  = new List <SqlStub>();
     _executions    = new Dictionary <SqlStub, int>();
 }