public void SqlServerDataSourceTests_ArithAbort()
        {
            const string sql = @"DECLARE @Option bit  = 0;
IF ( (64 & @@OPTIONS) = 64 ) SET @Option = 1;
SELECT @Option AS [Option];";

            var dataSource = SqlServerDataSource.CreateFromConfig("SqlServerTestDatabase").WithSettings(new SqlServerDataSourceSettings()
            {
                ArithAbort = true
            });;
            var settingOnA = dataSource.Sql(sql).ToBoolean().Execute();
            var settingOnB = dataSource.GetEffectiveSettings();

            Assert.IsTrue(settingOnA, "ARITHABORT should have been turned on.");
            Assert.IsTrue(settingOnB.ArithAbort, "ARITHABORT should have been turned on in effective settings.");

            dataSource = dataSource.WithSettings(new SqlServerDataSourceSettings()
            {
                ArithAbort = false
            });;
            var settingOffA = dataSource.Sql(sql).ToBoolean().Execute();
            var settingOffB = dataSource.GetEffectiveSettings();

            Assert.IsFalse(settingOffA, "ARITHABORT should have been turned off.");
            Assert.IsFalse(settingOffB.ArithAbort, "ARITHABORT should have been turned off in effective settings.");
        }
        public async Task SqlServerDataSourceTests_XactAbortAsync()
        {
            const string sql = @"DECLARE @Option bit  = 0;
IF ( (16384 & @@OPTIONS) = 16384 ) SET @Option = 1;
SELECT @Option AS [Option];";


            var dataSource = SqlServerDataSource.CreateFromConfig("SqlServerTestDatabase").WithSettings(new SqlServerDataSourceSettings()
            {
                XactAbort = true
            });;
            var settingOnA = await dataSource.Sql(sql).ToBoolean().ExecuteAsync();

            var settingOnB = await dataSource.GetEffectiveSettingsAsync();

            Assert.IsTrue(settingOnA, "XACT_ABORT should have been turned on.");
            Assert.IsTrue(settingOnB.XactAbort, "XACT_ABORT should have been turned on in effective settings.");

            dataSource = dataSource.WithSettings(new SqlServerDataSourceSettings()
            {
                XactAbort = false
            });;
            var settingOffA = await dataSource.Sql(sql).ToBoolean().ExecuteAsync();

            var settingOffB = await dataSource.GetEffectiveSettingsAsync();

            Assert.IsFalse(settingOffA, "XACT_ABORT should have been turned off.");
            Assert.IsFalse(settingOffB.XactAbort, "XACT_ABORT should have been turned off in effective settings.");
        }
 static DapperReadmeVsChain()
 {
     //This would be handled by your Dependency Injection framework
     s_ConnectionString = ConfigurationManager.ConnectionStrings["CodeFirstModels"].ConnectionString;
     s_DataSource = SqlServerDataSource.CreateFromConfig("CodeFirstModels");
     s_DataSource.DatabaseMetadata.Preload();
 }
        public void TestMethod1()
        {
            var dataSource = SqlServerDataSource.CreateFromConfig("SqlServerTestDatabase");

            dataSource.Sql("DELETE FROM Vehicle").Execute();
            dataSource.Sql("DELETE FROM Owner").Execute();

            var ownerKey   = dataSource.Insert("Owner", new { DriversLicense = "B8572496", FirstName = "Elvis", LastName = "Presley" }).ToInt32().Execute();
            var vehicleKey = dataSource.Insert("Vehicle", new { VehicleID = "65476XC54E", Make = "Cadillac", Model = "Fleetwood Series 60", Year = 1955 }).ToInt32().Execute();

            dataSource.Update("Vehicle", new { VehicleKey = vehicleKey, OwnerKey = ownerKey }).Execute();

            var vin = dataSource.From("Vehicle", new { OwnerKey = ownerKey }).ToStringList("VehicleID").Execute();

            var owner = dataSource.GetByKey("Owner", ownerKey).ToObject <Owner>().Execute();
            var cars  = dataSource.From("Vehicle", owner).ToCollection <Vehicle>().Execute();

            //make it clear what we want to filter on
            cars = dataSource.From("Vehicle", new { OwnerKey = owner.OwnerKey }).ToCollection <Vehicle>().Execute();

            //or make the WHERE clause explicit
            cars = dataSource.From("Vehicle", "OwnerKey = @OwnerKey", owner).ToCollection <Vehicle>().Execute();


            dataSource.Delete("Vehicle", new { VehicleKey = vehicleKey }).Execute();
            dataSource.Delete("Owner", new { OwnerKey = ownerKey }).Execute();
        }
        public void SqlServerDataSourceTests_SqlDependency()
        {
            var dataSource = SqlServerDataSource.CreateFromConfig("SqlServerTestDatabase");

            dataSource.StartSqlDependency();
            dataSource.TestConnection();
            dataSource.StopSqlDependency();
        }
Exemple #6
0
 static TestBase()
 {
     s_DataSource       = SqlServerDataSource.CreateFromConfig("SqlServerTestDatabase");
     s_StrictDataSource = s_DataSource.WithSettings(new SqlServerDataSourceSettings()
     {
         StrictMode = true
     });
 }
 public void SqlServerDataSourceTests_CreateFromConfig_Fail()
 {
     try
     {
         var dataSource = SqlServerDataSource.CreateFromConfig("FAKE");
         Assert.Fail("Error expected");
     }
     catch (InvalidOperationException) { }
 }
 public ComparisonTests()
 {
     m_DataSource                = SqlServerDataSource.CreateFromConfig("CodeFirstModels");
     m_DapperRepo                = new EmployeeRepositoryDapper(ConfigurationManager.ConnectionStrings["CodeFirstModels"].ConnectionString);
     m_ChainRepo                 = new EmployeeRepositoryChain(SqlServerDataSource.CreateFromConfig("CodeFirstModels"));
     m_ChainCompiledRepo         = new EmployeeRepositoryChainCompiled(SqlServerDataSource.CreateFromConfig("CodeFirstModels"));
     m_EFIntermediateRepo        = new EmployeeRepositoryEF_Intermediate();
     m_EFIntermediateNoTrackRepo = new EmployeeRepositoryEF_Intermediate_NoTrack();
     m_EFNoviceRepo              = new EmployeeRepositoryEF_Novice();
 }
        public async Task SqlServerDataSourceTests_CancelTest_Async()
        {
            var sql        = "WAITFOR DELAY '00:00:03'";
            var dataSource = SqlServerDataSource.CreateFromConfig("SqlServerTestDatabase");
            var cts        = new CancellationTokenSource(TimeSpan.FromSeconds(1));

            try
            {
                await dataSource.Sql(sql).ExecuteAsync(cts.Token);

                Assert.Fail("Expected OperationCanceledException exception");
            }
            catch (OperationCanceledException) { }
        }
        public void SqlServerDataSourceTests_CommandTimeout()
        {
            var sql        = "WAITFOR DELAY '00:00:03'";
            var dataSource = SqlServerDataSource.CreateFromConfig("SqlServerTestDatabase").WithSettings(new SqlServerDataSourceSettings()
            {
                DefaultCommandTimeout = TimeSpan.FromSeconds(1)
            });

            try
            {
                dataSource.Sql(sql).Execute();
                Assert.Fail("Expected SqlException exception");
            }
            catch (SqlException) { }
        }
        public void SqlServerDataSourceTests_OnError()
        {
            int count      = 0;
            var dataSource = SqlServerDataSource.CreateFromConfig("SqlServerTestDatabase");

            dataSource.ExecutionError += (s, e) => count++;
            try
            {
                dataSource.Sql("THIS ISN'T VALID SQL").Execute();
                Assert.Fail("excected a sql exception");
            }
            catch (SqlException)
            {
                Assert.AreEqual(1, count, "Expected one error event notification");
            }
        }
Exemple #12
0
        public async Task SqlServerDataSourceTests_WithChangeNotification_Fired_Async()
        {
            int eventCount = 0;
            var dataSource = SqlServerDataSource.CreateFromConfig("SqlServerTestDatabase");

            dataSource.StartSqlDependency();

            //Insert a matching row
            var customerCount1 = await dataSource.From("Sales.Customer", new { State = "CA" }).ToInt32List("CustomerKey").WithChangeNotification((s, e) => eventCount++).ExecuteAsync();

            await dataSource.Insert("Sales.Customer", new Customer()
            {
                FullName = "Tod Test" + DateTime.Now.Ticks, State = "CA"
            }).ExecuteAsync();

            await Task.Delay(500); //give the event time to fire

            Assert.AreEqual(1, eventCount);

            //Insert another matching row
            var customerCount2 = await dataSource.From("Sales.Customer", new { State = "CA" }).ToInt32List("CustomerKey").WithChangeNotification((s, e) => eventCount++).ExecuteAsync();

            await dataSource.Insert("Sales.Customer", new Customer()
            {
                FullName = "Frank Test" + DateTime.Now.Ticks, State = "CA"
            }).ExecuteAsync();

            await Task.Delay(500); //give the event time to fire

            Assert.AreEqual(2, eventCount);

            //Insert a non-matching row
            var customerCount3 = await dataSource.From("Sales.Customer", new { State = "CA" }).ToInt32List("CustomerKey").WithChangeNotification((s, e) => eventCount++).ExecuteAsync();

            await dataSource.Insert("Sales.Customer", new Customer()
            {
                FullName = "Wrong State Test" + DateTime.Now.Ticks, State = "TX"
            }).ExecuteAsync();

            await Task.Delay(500); //give the event time to fire

            Assert.AreEqual(2, eventCount);

            dataSource.StopSqlDependency();
        }
Exemple #13
0
        public static void AssemblyInit(TestContext context)
        {
            s_DataSource                = SqlServerDataSource.CreateFromConfig("CodeFirstModels");
            s_DapperRepo                = new EmployeeRepositoryDapper(ConfigurationManager.ConnectionStrings["CodeFirstModels"].ConnectionString);
            s_ChainRepo                 = new EmployeeRepositoryChain(SqlServerDataSource.CreateFromConfig("CodeFirstModels"));
            s_ChainCompiledRepo         = new EmployeeRepositoryChainCompiled(SqlServerDataSource.CreateFromConfig("CodeFirstModels"));
            s_EFIntermediateRepo        = new EmployeeRepositoryEF_Intermediate();
            s_EFIntermediateNoTrackRepo = new EmployeeRepositoryEF_Intermediate_NoTrack();
            s_EFNoviceRepo              = new EmployeeRepositoryEF_Novice();

            if (Warmup)
            {
                CrudTestCore(s_DapperRepo);
                CrudTestCore(s_ChainRepo);
                CrudTestCore(s_ChainCompiledRepo);
                CrudTestCore(s_EFIntermediateRepo);
                CrudTestCore(s_EFIntermediateNoTrackRepo);
                CrudTestCore(s_EFNoviceRepo);
            }
        }
        public async Task SqlServerDataSourceTests_GetEffectiveSettingsAsync()
        {
            var dataSource = SqlServerDataSource.CreateFromConfig("SqlServerTestDatabase");
            var settings   = await dataSource.GetEffectiveSettingsAsync();

            Debug.WriteLine($"AnsiNullDefaultOff = {settings.AnsiNullDefaultOff}");
            Debug.WriteLine($"AnsiNullDefaultOn = {settings.AnsiNullDefaultOn}");
            Debug.WriteLine($"AnsiNulls = {settings.AnsiNulls}");
            Debug.WriteLine($"AnsiPadding = {settings.AnsiPadding}");
            Debug.WriteLine($"AnsiWarning = {settings.AnsiWarning}");
            Debug.WriteLine($"ArithAbort = {settings.ArithAbort}");
            Debug.WriteLine($"ArithIgnore = {settings.ArithIgnore}");
            Debug.WriteLine($"ConcatNullYieldsNull = {settings.ConcatNullYieldsNull}");
            Debug.WriteLine($"CursorCloseOnCommit = {settings.CursorCloseOnCommit}");
            Debug.WriteLine($"DisableDeferredConstraintChecking = {settings.DisableDeferredConstraintChecking}");
            Debug.WriteLine($"NoCount = {settings.NoCount}");
            Debug.WriteLine($"NumericRoundAbort = {settings.NumericRoundAbort}");
            Debug.WriteLine($"QuotedIdentifier = {settings.QuotedIdentifier}");
            Debug.WriteLine($"XactAbort = {settings.XactAbort}");
        }
        public void SqlServerDataSourceTests_CreateFromConfig()
        {
            var dataSource = SqlServerDataSource.CreateFromConfig("SqlServerTestDatabase");

            dataSource.TestConnection();
        }