示例#1
0
        public void MappingsAreAppliedToBulkCopy()
        {
            ColumnMapping.Tables.RemovePrefixes("int");

            for (int i = 0; i < 3; i++)
            {
                // build test data
                ParentTestData[] array = new ParentTestData[i];
                for (int j = 0; j < i; j++)
                {
                    array[j] = new ParentTestData()
                    {
                        ParentX = j
                    }
                }
                ;

                // bulk load the data
                Connection().ExecuteSql("DELETE FROM MappingBulkCopyTestTable");
                Connection().BulkCopy("MappingBulkCopyTestTable", array);

                // run the query
                var items = Connection().QuerySql <ParentTestData>("SELECT * FROM MappingBulkCopyTestTable");
                Assert.IsNotNull(items);
                Assert.AreEqual(i, items.Count);
                for (int j = 0; j < i; j++)
                {
                    Assert.AreEqual(j, items[j].ParentX);
                }
            }
        }
        public void RecordsetWithDefaultGraphIsReturned()
        {
            var results = Connection().QueryResultsSql <ParentTestDataWithDefaultGraph, TestData2>(ParentTestData.Sql + TestData2.Sql);

            Assert.IsNotNull(results);
            ParentTestData.Verify(results.Set1, withGraph: true);
            TestData2.Verify(results.Set2);
        }
        public void TwoRecordsetsAreReturned()
        {
            var results = Connection().QueryResultsSql <ParentTestData, TestData2>(ParentTestData.Sql + TestData2.Sql);

            Assert.IsNotNull(results);
            ParentTestData.Verify(results.Set1, withGraph: false);
            TestData2.Verify(results.Set2);
        }
示例#4
0
        public void RegexReplaceShouldAlterColumnName()
        {
            ColumnMapping.Tables.ReplaceRegex("_", String.Empty);

            var sql = ParentTestData.Sql.Replace("ParentX", "_Parent_X");
            Assert.AreNotEqual(sql, ParentTestData.Sql);
            var results = Connection().QuerySql<ParentTestData, TestData>(sql);
            ParentTestData.Verify(results);
        }
示例#5
0
        public void SuffixRemoveShouldAlterColumnName()
        {
            ColumnMapping.Tables.RemoveSuffixes("int");

            var sql = ParentTestData.Sql.Replace("ParentX", "ParentXint");
            Assert.AreNotEqual(sql, ParentTestData.Sql);
            var results = Connection().QuerySql<ParentTestData, TestData>(sql);
            ParentTestData.Verify(results);
        }
示例#6
0
        public void ReplaceCanBeChained()
        {
            ColumnMapping.Tables.RemovePrefixes("int").RemoveSuffixes("Foo").RemoveStrings("_");

            var sql = ParentTestData.Sql.Replace("ParentX", "_Parent_X_Foo");
            Assert.AreNotEqual(sql, ParentTestData.Sql);
            var results = Connection().QuerySql<ParentTestData, TestData>(sql);
            ParentTestData.Verify(results);
        }
        public void TestMultipleRecordsetsWithGraph()
        {
            Results <ParentTestData, TestData2> results = Connection().Dynamic().GetParentAndChildTestData(
                returns: Query.Returns(OneToOne <ParentTestData, TestData> .Records)
                .Then(Some <TestData2> .Records));

            Assert.IsNotNull(results);
            ParentTestData.Verify(results.Set1, withGraph: true);
            TestData2.Verify(results.Set2);
        }
        public void SelectSubObjectToListWithGraph()
        {
            using (var connection = Connection().OpenConnection())
            {
                var reader  = connection.GetReaderSql(ParentTestData.Sql);
                var results = reader.ToList <ParentTestData>(typeof(Graph <ParentTestData, TestData>));

                ParentTestData.Verify(results, withGraph: true);
            }
        }
        public void TestMultipleRecordsets()
        {
            // going to infer the return type of the stored procedure rather than specifying it
            Results <ParentTestData, TestData2> results = Connection().Dynamic().GetParentAndChildTestData(
                returns: Query.Returns(Some <ParentTestData> .Records)
                .Then(Some <TestData2> .Records));

            Assert.IsNotNull(results);
            ParentTestData.Verify(results.Set1, withGraph: false);
            TestData2.Verify(results.Set2);
        }
示例#10
0
        public void DerivedRecordsetsCanBeReturned()
        {
            var results = Connection().QueryResultsSqlAsync <PageData <ParentTestData> >(ParentTestData.Sql + "SELECT TotalCount=70").Result;

            Assert.IsNotNull(results);
            ParentTestData.Verify(results.Set1, withGraph: false);

            Assert.IsNotNull(results.Set2);
            Assert.AreEqual(1, results.Set2.Count);
            Assert.AreEqual(70, results.TotalCount);
        }
示例#11
0
        public void MappingsAreAppliedToParameters()
        {
            ColumnMapping.Parameters.RemovePrefixes("int");

            var parentTestData = new ParentTestData() { ParentX = 5 };

            var results = Connection().Query<int>("MappingTestProc2", parentTestData);
            int data = results.First();

            Assert.AreEqual(parentTestData.ParentX, data);
        }
        public void RecordsetWithGraphIsReturned()
        {
            var results = Connection().QueryResultsSql <ParentTestData, TestData2>(
                ParentTestData.Sql + TestData2.Sql,
                null,
                withGraphs: new[] { typeof(Graph <ParentTestData, TestData>) });

            Assert.IsNotNull(results);
            ParentTestData.Verify(results.Set1, withGraph: true);
            TestData2.Verify(results.Set2);
        }
        public void NullListsAreReturnedWhenFewerRecordsetsAreReturnedAsync2()
        {
            // expect two recordsets, but retrieve one. remaining recordsets should be null, not empty.

            var results = Connection().QueryResultsSqlAsync <ParentTestData, TestData2>(ParentTestData.Sql).Result;

            Assert.IsNotNull(results);
            ParentTestData.Verify(results.Set1, withGraph: false);
            Assert.IsNotNull(results.Set2);
            Assert.AreEqual(0, results.Set2.Count);
        }
示例#14
0
        public void MappingsAreAppliedToTableValuedParameters()
        {
            // get a stanard set of objects from the server
            var original = Connection().QuerySql<ParentTestData>(ParentTestData.Sql);
            ParentTestData.Verify(original, false);

            ColumnMapping.Tables.RemovePrefixes("int");

            // send the object up to the server and get them back
            var results = Connection().Query<ParentTestData>("MappingTestProc", original);
            ParentTestData.Verify(results, false);
        }
        public void TestReturnTypeOverrideWithJustWithGraph()
        {
            using (var connection = ConnectionWithTransaction())
            {
                connection.ExecuteSql("CREATE PROC InsightTestProc AS " + ParentTestData.Sql);

                var dc = connection.Dynamic();

                // going to infer the return type of the stored procedure rather than specifying it
                IList <ParentTestData> results = dc.InsightTestProc(withGraph: typeof(Graph <ParentTestData>));
                ParentTestData.Verify(results, false);
            }
        }
 public void ForEachSubObjectSingleWithGraph()
 {
     Connection().ForEachSql <ParentTestData>(
         ParentTestData.Sql,
         Parameters.Empty,
         results =>
     {
         ParentTestData.Verify(new List <ParentTestData>()
         {
             results
         }, withGraph: true);
     },
         withGraph: typeof(Graph <ParentTestData, TestData>));
 }
        public void TestMultipleRecordsets()
        {
            using (var connection = ConnectionWithTransaction())
            {
                connection.ExecuteSql("CREATE PROC InsightTestProc (@Value varchar(128)) AS " + ParentTestData.Sql + TestData2.Sql);

                string value = "foo";

                var dc = connection.Dynamic();

                // going to infer the return type of the stored procedure rather than specifying it
                Results <ParentTestDataWithDefaultGraph, TestData2> results = dc.InsightTestProc(value, returnType: typeof(Results <ParentTestDataWithDefaultGraph, TestData2>));

                Assert.IsNotNull(results);
                ParentTestData.Verify(results.Set1, withGraph: true);
                TestData2.Verify(results.Set2);
            }
        }
        public void InterfaceIsGenerated()
        {
            var connection = Connection();

            // make sure that we can create an interface
            ITest1 i = connection.As <ITest1>();

            Assert.IsNotNull(i);

            // make sure that the wrapper is still a connection
            DbConnection c = i as DbConnection;

            Assert.IsNotNull(c);

            // let's call us some methods
            i.ExecuteSomething();
            i.ExecuteSomethingWithParameters(5, "6");
            Assert.AreEqual(9, i.ExecuteSomethingScalar(9));
            i.SingleObject().Verify(false);
            Assert.IsNull(i.SingleObjectWithNoData());
            Assert.AreEqual(2, i.QueryValue(9).Count());
            ParentTestData.Verify(i.QueryObject(), false);
            Assert.AreEqual(11, i.ObjectAsParameter(new ParentTestData()
            {
                ParentX = 11
            }));
            Assert.AreEqual(11, i.ObjectListAsParameter(new[] { new ParentTestData()
                                                                {
                                                                    ParentX = 11
                                                                } }).First());

            var results = i.QueryResults(7);

            ParentTestData.Verify(results.Set1, false);
            Assert.AreEqual(7, results.Set2.First());

            // let's call them asynchronously
            i.ExecuteSomethingAsync().Wait();
            i.ExecuteSomethingWithParametersAsync(5, "6").Wait();
            Assert.AreEqual(9, i.ExecuteSomethingScalarAsync(9).Result);
            i.SingleObjectAsync().Result.Verify(false);
            Assert.AreEqual(2, i.QueryValueAsync(9).Result.Count());
            ParentTestData.Verify(i.QueryObjectAsync().Result, false);
            Assert.AreEqual(11, i.ObjectAsParameterAsync(new ParentTestData()
            {
                ParentX = 11
            }).Result);
            Assert.AreEqual(11, i.ObjectListAsParameterAsync(new[] { new ParentTestData()
                                                                     {
                                                                         ParentX = 11
                                                                     } }).Result.First());

            results = i.QueryResultsAsync(7).Result;
            ParentTestData.Verify(results.Set1, false);
            Assert.AreEqual(7, results.Set2.First());

            // inline SQL!
            Assert.AreEqual("42", i.InlineSql(42));
            Assert.AreEqual(99, i.InlineSqlProcOverride(99));
            Assert.AreEqual(98, i.InlineSqlWithSchema(98));
            Assert.AreEqual(98, connection.As <ITestWithSqlAttribute>().ExecuteSomethingScalar(98));
        }
示例#19
0
		public void MappingsAreAppliedToParameters()
		{
			ColumnMapping.Parameters.RemovePrefixes("int");

			var parentTestData = new ParentTestData() { ParentX = 5 };

			var results = Connection().Query<int>("MappingTestProc2", parentTestData);
			int data = results.First();

			Assert.AreEqual(parentTestData.ParentX, data);
		}
示例#20
0
		public void MappingsAreAppliedToBulkCopy()
		{
			ColumnMapping.Tables.RemovePrefixes("int");

			for (int i = 0; i < 3; i++)
			{
				// build test data
				ParentTestData[] array = new ParentTestData[i];
				for (int j = 0; j < i; j++)
					array[j] = new ParentTestData() { ParentX = j };

				// bulk load the data
				Connection().ExecuteSql("DELETE FROM MappingBulkCopyTestTable");
				Connection().BulkCopy("MappingBulkCopyTestTable", array);

				// run the query
				var items = Connection().QuerySql<ParentTestData>("SELECT * FROM MappingBulkCopyTestTable");
				Assert.IsNotNull(items);
				Assert.AreEqual(i, items.Count);
				for (int j = 0; j < i; j++)
					Assert.AreEqual(j, items[j].ParentX);
			}
		}
        public void TestAsyncQueryWithGraph()
        {
            var results = Connection().QuerySqlAsync <ParentTestData>(ParentTestData.Sql, null, withGraph: typeof(Graph <ParentTestData, TestData>)).Result;

            ParentTestData.Verify(results);
        }
        public void TestAsyncQueryWithDefaultGraph()
        {
            var results = Connection().QuerySqlAsync <ParentTestDataWithDefaultGraph>(ParentTestData.Sql).Result;

            ParentTestData.Verify(results);
        }
        public void TestObjectWithDefaultGraphDefinition()
        {
            var results = Connection().QuerySql <ParentTestDataWithDefaultGraph>(ParentTestData.Sql);

            ParentTestData.Verify(results, withGraph: true);
        }
        public void TestReturnTypeOverrideWithUnnamedParameter()
        {
            IList <ParentTestData> results = Connection().Dynamic().GetParentTestData(Query.Returns(Some <ParentTestData> .Records));

            ParentTestData.Verify(results, false);
        }