Beispiel #1
0
        public void TestExecuteResultSetRowByRowWithCustomType()
        {
            var parameters = DatabaseObjectCreation.CreateResultSetTestProc(this.connectionType);

            try
            {
                var customType = TypeReference.CreateGeneratedType(new TypeProperty("Name", typeof(string)));
                var resultSet  = new DatabaseModel.ResultSet {
                    CustomType = customType
                };
                resultSet.Fields.Add(new DatabaseModel.ResultSetField("Counter", DatabaseModel.DataType.Int32, string.Empty));
                resultSet.Fields.Add(new DatabaseModel.ResultSetField("StringValue", DatabaseModel.DataType.String, "Name"));
                FunctionResult result = Execute(this.connectionType, DatabaseHelpers.GetDefaultConnectionString(this.connectionType), "Test Proc", parameters, new object[] { 2 }, new DatabaseModel.ResultSets {
                    resultSet
                }, OutputOption.RowByRow);

                var executionPathResults = result.ExecutionPathResult.ToList();
                Assert.AreEqual(2, executionPathResults.Count());
                Assert.AreEqual("Result", executionPathResults[0].Name);
                Assert.AreEqual(Names.GetValidName(customType.Name), executionPathResults[0].Value.GetType().Name);
                Assert.AreEqual("one", executionPathResults[0].Value.Name);
                Assert.AreEqual("two", executionPathResults[1].Value.Name);
            }
            finally
            {
                DatabaseObjectCreation.RemoveTestProc(this.connectionType);
            }
        }
Beispiel #2
0
        public void TestExecuteResultSetRowByRowWithInvalidNumberOfResultSets()
        {
            var parameters = DatabaseObjectCreation.CreateResultSetTestProc(this.connectionType);

            try
            {
                FunctionResult result = Execute(this.connectionType.ToConnectionTypeSelection(), null, DatabaseHelpers.GetDefaultConnectionString(this.connectionType), "Test Proc",
                                                parameters, new object[] { 2 }, FetchResultSets(this.connectionType), 1000, OutputOption.RowByRow);

                var executionPathResults = result.ExecutionPathResult.ToList();
                Assert.AreEqual(2, executionPathResults.Count());
                Assert.AreEqual("Result1", executionPathResults[0].Name);
                var row = executionPathResults[0].Value;
                Assert.AreEqual(1, row.Counter);
                Assert.AreEqual("one", row.StringValue);

                row = executionPathResults[1].Value;
                Assert.AreEqual(2, row.Counter);
                Assert.AreEqual("two", row.StringValue);
            }
            finally
            {
                DatabaseObjectCreation.RemoveTestProc(this.connectionType);
            }
        }
Beispiel #3
0
        public void TestExecuteResultSetFirstRowNoRows()
        {
            var parameters = DatabaseObjectCreation.CreateResultSetTestProc(this.connectionType);

            Assert.That(() => Execute(this.connectionType, DatabaseHelpers.GetDefaultConnectionString(this.connectionType), "Test Proc", parameters, new object[] { 0 }, true, OutputOption.FirstRow),
                        Throws.Exception.TypeOf <ExecuteException>()
                        .With.Property("Message").EqualTo("No rows returned for Result.\r\nSee Code and Parameter properties for more information."));

            DatabaseObjectCreation.RemoveTestProc(this.connectionType);
        }
Beispiel #4
0
        public void TestExecuteResultSetFirstRowElseEmptyRowNoRows()
        {
            var parameters = DatabaseObjectCreation.CreateResultSetTestProc(this.connectionType);

            try
            {
                var result = Execute(this.connectionType, DatabaseHelpers.GetDefaultConnectionString(this.connectionType), "Test Proc", parameters, new object[] { 0 }, true, OutputOption.FirstRowElseEmptyRow).Value;

                Assert.AreEqual(0, result.Result.Counter);
                Assert.AreEqual(string.Empty, result.Result.StringValue);
            }
            finally
            {
                DatabaseObjectCreation.RemoveTestProc(this.connectionType);
            }
        }
Beispiel #5
0
        public void TestExecuteResultSetListOfRows()
        {
            var parameters = DatabaseObjectCreation.CreateResultSetTestProc(this.connectionType);

            try
            {
                var result = Execute(this.connectionType, DatabaseHelpers.GetDefaultConnectionString(this.connectionType), "Test Proc", parameters, new object[] { 2 }, true, OutputOption.ListOfRows).Value;

                Assert.AreEqual(2, result.ResultRows.Count);
                var row = result.ResultRows[0];
                Assert.AreEqual(1, row.Counter);
                Assert.AreEqual("one", row.StringValue);

                row = result.ResultRows[1];
                Assert.AreEqual(2, row.Counter);
                Assert.AreEqual("two", row.StringValue);
            }
            finally
            {
                DatabaseObjectCreation.RemoveTestProc(this.connectionType);
            }
        }