From 79445d940acec8859c8556232c70f687e44196d9 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 11:15:09 -0700 Subject: [PATCH 01/27] Set theme jekyll-theme-dinky --- docs/_config.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_config.yml diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 000000000..9da9a0291 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-dinky \ No newline at end of file From fc57ecf9a6fc9c017dcfbfcdd48ff006b7e67426 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 11:46:30 -0700 Subject: [PATCH 02/27] Hopefully removed submodule --- tSQLt | 1 - 1 file changed, 1 deletion(-) delete mode 160000 tSQLt diff --git a/tSQLt b/tSQLt deleted file mode 160000 index 8a3639d8c..000000000 --- a/tSQLt +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8a3639d8cc53ca5560a49c9a6baa4a5ff7dbb39a From 876765e569f27a1d982f3959e58674d8dd7d3f4a Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 12:14:12 -0700 Subject: [PATCH 03/27] updated main config page with title and desc --- docs/_config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index 9da9a0291..e11d8227d 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1 +1,3 @@ -theme: jekyll-theme-dinky \ No newline at end of file +theme: jekyll-theme-dinky +title: tSQLt - Database Unit Testing for SQL Server +description: tSQLt is the open source framework for unit testing on SQL Server \ No newline at end of file From aae15ffdf73728e01d1cb693fb1d0f108d7e4a7d Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 12:17:38 -0700 Subject: [PATCH 04/27] testing subdirectories --- docs/user-guide/main.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docs/user-guide/main.md diff --git a/docs/user-guide/main.md b/docs/user-guide/main.md new file mode 100644 index 000000000..ca444da43 --- /dev/null +++ b/docs/user-guide/main.md @@ -0,0 +1,3 @@ +layout: page +title: "User Guide" +permalink: /user-guide/ \ No newline at end of file From d8ff4eec877c7062fec0404be68ff40beddb8f54 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 12:28:01 -0700 Subject: [PATCH 05/27] subdirectories work, but is this the way we get a root. --- docs/user-guide/main.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/user-guide/main.md b/docs/user-guide/main.md index ca444da43..64096f821 100644 --- a/docs/user-guide/main.md +++ b/docs/user-guide/main.md @@ -1,3 +1,4 @@ layout: page title: "User Guide" -permalink: /user-guide/ \ No newline at end of file +permalink: / +test user-guide in subdirectory \ No newline at end of file From 76441fd20d57bd2343f3980e02b38427f6a466d0 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 12:31:26 -0700 Subject: [PATCH 06/27] testing index.md --- docs/user-guide/index.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docs/user-guide/index.md diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md new file mode 100644 index 000000000..c47c13621 --- /dev/null +++ b/docs/user-guide/index.md @@ -0,0 +1,3 @@ +layout: page +title: "User Guide Landing Page" +test user-guide landing page \ No newline at end of file From 331809b7fd1b404ec2f3d8d693ac30d110b1c63a Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 12:35:20 -0700 Subject: [PATCH 07/27] yaml needs triple dashes --- docs/user-guide/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md index c47c13621..0e5507b84 100644 --- a/docs/user-guide/index.md +++ b/docs/user-guide/index.md @@ -1,3 +1,5 @@ +--- layout: page title: "User Guide Landing Page" +--- test user-guide landing page \ No newline at end of file From 7b97fd8d0ef0bb526c41551a6dd28addb76770d9 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 12:39:52 -0700 Subject: [PATCH 08/27] do i need to default theme? --- docs/user-guide/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md index 0e5507b84..2881ef40f 100644 --- a/docs/user-guide/index.md +++ b/docs/user-guide/index.md @@ -1,4 +1,5 @@ --- +theme: jekyll-theme-dinky layout: page title: "User Guide Landing Page" --- From 7c8e009395eb9415c5a233b75c4be85ce63dad18 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 12:42:53 -0700 Subject: [PATCH 09/27] testing no front-matter --- docs/user-guide/index.md | 7 +------ docs/user-guide/main.md | 4 ---- 2 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 docs/user-guide/main.md diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md index 2881ef40f..aaa63fb3a 100644 --- a/docs/user-guide/index.md +++ b/docs/user-guide/index.md @@ -1,6 +1 @@ ---- -theme: jekyll-theme-dinky -layout: page -title: "User Guide Landing Page" ---- -test user-guide landing page \ No newline at end of file +test user-guide in subdirectory \ No newline at end of file diff --git a/docs/user-guide/main.md b/docs/user-guide/main.md deleted file mode 100644 index 64096f821..000000000 --- a/docs/user-guide/main.md +++ /dev/null @@ -1,4 +0,0 @@ -layout: page -title: "User Guide" -permalink: / -test user-guide in subdirectory \ No newline at end of file From 2958818db116a605f9a97522a0b742a693e1327c Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 12:55:16 -0700 Subject: [PATCH 10/27] frontmatter doesn't seem to work, trying default in _config.yml --- docs/_config.yml | 7 ++++++- docs/user-guide/index.md | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index e11d8227d..66ee98b8a 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,3 +1,8 @@ theme: jekyll-theme-dinky title: tSQLt - Database Unit Testing for SQL Server -description: tSQLt is the open source framework for unit testing on SQL Server \ No newline at end of file +description: tSQLt is the open source framework for unit testing on SQL Server +defaults: + - scope: + path: "" + values: + theme: jekyll-theme-dinky \ No newline at end of file diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md index aaa63fb3a..cf80ed470 100644 --- a/docs/user-guide/index.md +++ b/docs/user-guide/index.md @@ -1 +1,5 @@ +--- +layout: page +title: User Guide +--- test user-guide in subdirectory \ No newline at end of file From a0bfcda23b9190b9dead1bdc7a9c985839017715 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 13:38:19 -0700 Subject: [PATCH 11/27] let's just play with md and figure out jekyll themes later! --- docs/_config.yml | 7 +------ docs/user-guide/index.md | 45 +++++++++++++++++++++++++++++++++++----- 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index 66ee98b8a..e11d8227d 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,8 +1,3 @@ theme: jekyll-theme-dinky title: tSQLt - Database Unit Testing for SQL Server -description: tSQLt is the open source framework for unit testing on SQL Server -defaults: - - scope: - path: "" - values: - theme: jekyll-theme-dinky \ No newline at end of file +description: tSQLt is the open source framework for unit testing on SQL Server \ No newline at end of file diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md index cf80ed470..e7243b0fb 100644 --- a/docs/user-guide/index.md +++ b/docs/user-guide/index.md @@ -1,5 +1,40 @@ ---- -layout: page -title: User Guide ---- -test user-guide in subdirectory \ No newline at end of file +# User Guide + +This reference contains an explanation of each of the public tables, views, stored procedures and functions provided by tSQLt. + +## Test creation and execution + +- NewTestClass +- DropClass +- RunAll +- Run +- RenameClass + +## Assertions + +- AssertEmptyTable +- AssertEquals +- AssertEqualsString +- AssertEqualsTable +- AssertEqualsTableSchema +- AssertNotEquals +- AssertObjectDoesNotExist +- AssertObjectExists +- AssertResultSetsHaveSameMetaData +- Fail +- AssertLike + +## Expectations + +- ExpectException +- ExpectNoException + +## Isolating dependencies + +- ApplyConstraint +- FakeFunction +- FakeTable +- RemoveObjectIfExists +- SpyProcedure +- ApplyTrigger +- RemoveObject \ No newline at end of file From a8e0dce5210e7c4f48281b62df19d3e0db5b2a1f Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 13:52:45 -0700 Subject: [PATCH 12/27] adding links --- docs/user-guide/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md index e7243b0fb..40ae1775c 100644 --- a/docs/user-guide/index.md +++ b/docs/user-guide/index.md @@ -2,7 +2,7 @@ This reference contains an explanation of each of the public tables, views, stored procedures and functions provided by tSQLt. -## Test creation and execution +## [Test creation and execution](/test-creation-and-execution) - NewTestClass - DropClass @@ -10,7 +10,7 @@ This reference contains an explanation of each of the public tables, views, stor - Run - RenameClass -## Assertions +## [Assertions](/assertions) - AssertEmptyTable - AssertEquals @@ -24,12 +24,12 @@ This reference contains an explanation of each of the public tables, views, stor - Fail - AssertLike -## Expectations +## [Expectations](/expectations) - ExpectException - ExpectNoException -## Isolating dependencies +## [Isolating dependencies](/isolating-dependencies) - ApplyConstraint - FakeFunction From daabb8842d8a5fbd1a493af5f1d839244724ce8a Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 13:54:32 -0700 Subject: [PATCH 13/27] links work, but how do subdirectories work? --- docs/user-guide/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md index 40ae1775c..858e11b19 100644 --- a/docs/user-guide/index.md +++ b/docs/user-guide/index.md @@ -2,7 +2,7 @@ This reference contains an explanation of each of the public tables, views, stored procedures and functions provided by tSQLt. -## [Test creation and execution](/test-creation-and-execution) +## [Test creation and execution](test-creation-and-execution) - NewTestClass - DropClass @@ -10,7 +10,7 @@ This reference contains an explanation of each of the public tables, views, stor - Run - RenameClass -## [Assertions](/assertions) +## [Assertions](assertions) - AssertEmptyTable - AssertEquals @@ -24,12 +24,12 @@ This reference contains an explanation of each of the public tables, views, stor - Fail - AssertLike -## [Expectations](/expectations) +## [Expectations](expectations) - ExpectException - ExpectNoException -## [Isolating dependencies](/isolating-dependencies) +## [Isolating dependencies](isolating-dependencies) - ApplyConstraint - FakeFunction From 09c88496a27aeda2e1816739c7dea689dc1c0937 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 14:00:40 -0700 Subject: [PATCH 14/27] links for subdirectories and pages --- docs/user-guide/index.md | 50 ++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md index 858e11b19..c36eb20e7 100644 --- a/docs/user-guide/index.md +++ b/docs/user-guide/index.md @@ -4,37 +4,37 @@ This reference contains an explanation of each of the public tables, views, stor ## [Test creation and execution](test-creation-and-execution) -- NewTestClass -- DropClass -- RunAll -- Run -- RenameClass +- [NewTestClass](test-creation-and-execution/newtestclass) +- [DropClass](test-creation-and-execution/dropclass) +- [RunAll](test-creation-and-execution/runall) +- [Run](test-creation-and-execution/run) +- [RenameClass](test-creation-and-execution/renameclass) ## [Assertions](assertions) -- AssertEmptyTable -- AssertEquals -- AssertEqualsString -- AssertEqualsTable -- AssertEqualsTableSchema -- AssertNotEquals -- AssertObjectDoesNotExist -- AssertObjectExists -- AssertResultSetsHaveSameMetaData -- Fail -- AssertLike +- [AssertEmptyTable](assertions/assertemptytable) +- [AssertEquals](assertions/assertequals) +- [AssertEqualsString](assertions/assertequalsstring) +- [AssertEqualsTable](assertions/assertequalstables) +- [AssertEqualsTableSchema](assertions/assertequalstableschema) +- [AssertNotEquals](assertions/assertnotequals) +- [AssertObjectDoesNotExist](assertions/assertobjectdoesnotexist) +- [AssertObjectExists](assertions/assertobjectexists) +- [AssertResultSetsHaveSameMetaData](assertions/assertresultsertshavesamemetadata) +- [Fail](assertions/fail) +- [AssertLike](assertions/assertlike) ## [Expectations](expectations) -- ExpectException -- ExpectNoException +- [ExpectException](expectations/expectexception) +- [ExpectNoException](expectations/expectnoexception) ## [Isolating dependencies](isolating-dependencies) -- ApplyConstraint -- FakeFunction -- FakeTable -- RemoveObjectIfExists -- SpyProcedure -- ApplyTrigger -- RemoveObject \ No newline at end of file +- [ApplyConstraint](isolating-dependencies/applyconstraint) +- [FakeFunction](isolating-dependencies/fakefunction) +- [FakeTable](isolating-dependencies/faketable) +- [RemoveObjectIfExists](isolating-dependencies/removeobjectifexists) +- [SpyProcedure](isolating-dependencies/spyprocedure) +- [ApplyTrigger](isolating-dependencies/applytrigger) +- [RemoveObject](isolating-dependencies/removeobject) \ No newline at end of file From 1b61d6094629e989a858925d157211be58e89e04 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 14:22:45 -0700 Subject: [PATCH 15/27] index page for test-creation-and-execution (#167) --- .../test-creation-and-execution/index.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 docs/user-guide/test-creation-and-execution/index.md diff --git a/docs/user-guide/test-creation-and-execution/index.md b/docs/user-guide/test-creation-and-execution/index.md new file mode 100644 index 000000000..818dcba9b --- /dev/null +++ b/docs/user-guide/test-creation-and-execution/index.md @@ -0,0 +1,25 @@ +# TEST CREATION AND EXECUTION +This section describes how test cases are created and executed. + +We’re going to answer two important questions in this section, “What happens when you create a test class?” and “What happens when a test class gets executed?” + +## What happens when you create a test class? +Not much. When you create a test class using `tSQLt.NewTestClass`, a schema is created. That schema is created with an extended property so that tSQLt can later figure out which schemas are test classes. ___Note:___ _If there is already a schema with the same name as the one you are trying to create, it is dropped first._ + +## What happens when a test class gets executed? +If you execute `tSQLt.RunTestClass`, tSQLt does the following things: + +1. It looks at all the stored procedures in the test class (schema) that start with the word “test”. These are all considered to be all the test cases for that test class. +1. For each of the test cases: + 1. A record is created indicating that the test case is being executed in the tSQLt.TestResult table. + 1. tSQLt starts a transaction. + 1. If there is a stored procedure named SetUp on the test class, it is executed. + 1. The test case stored procedure is executed. + 1. The transaction is rolled-back. + 1. The record in tSQLt.TestResult is updated accordingly if the test case succeeded, failed or threw an error. +1. The test results are displayed in the console. + +If you execute `tSQLt.RunAll`, tSQLt first looks at all the schemas in the database for ones marked as test classes. Then, it follows steps 1 and 2 above for each test class. The test results are displayed after running all test classes. + +## Summary +Create test classes using `tSQLt.NewTestClass`. Execute test classes using `tSQLt.RunTestClass` or `tSQLt.RunAll`. When individual test cases are executed, they are wrapped in a transaction which is rolled-back. Before each test case, SetUp is called if it exists on the test class. \ No newline at end of file From 4a2c395e44d561f279476e291e1d11086e08c738 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Tue, 17 May 2022 14:56:03 -0700 Subject: [PATCH 16/27] GitHub pages test creation and execution (#168) * index page for test-creation-and-execution * changing the case in heading * adding dropclass Co-authored-by: Kavitha Govindarajulu --- .../test-creation-and-execution/dropclass.md | 37 +++++++++++++++++++ .../test-creation-and-execution/index.md | 3 +- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 docs/user-guide/test-creation-and-execution/dropclass.md diff --git a/docs/user-guide/test-creation-and-execution/dropclass.md b/docs/user-guide/test-creation-and-execution/dropclass.md new file mode 100644 index 000000000..55b3f3e32 --- /dev/null +++ b/docs/user-guide/test-creation-and-execution/dropclass.md @@ -0,0 +1,37 @@ +# DropClass + +## Syntax +`tSQLt.DropClass [@ClassName = ] 'class name'` + +## Arguments +[@ClassName = ] ‘class name’ +The name of the class (schema) to be dropped + +## Return Code Values +Returns 0 + +## Error Raised +An error may be raised if the test class already exists and an object belonging to it cannot be dropped. + +## Result Sets +None + +## Overview +tSQLt.DropClass drops a schema and all objects belonging to it. If the schema does not exist, nothing happens. + +## Limitations +N/A + +## Warnings +Care should be used when executing tSQLt.DropClass as it drops a schema and all objects on that schema. + +## Examples +Example: Creating a test class and the dropping it + +``` +EXEC tSQLt.NewTestClass 'testFinancialApp'; +GO + +EXEC tSQLt.DropClass 'testFinancialApp'; +GO +``` \ No newline at end of file diff --git a/docs/user-guide/test-creation-and-execution/index.md b/docs/user-guide/test-creation-and-execution/index.md index 818dcba9b..eda75e8ff 100644 --- a/docs/user-guide/test-creation-and-execution/index.md +++ b/docs/user-guide/test-creation-and-execution/index.md @@ -1,4 +1,5 @@ -# TEST CREATION AND EXECUTION +# Test Creation and Execution + This section describes how test cases are created and executed. We’re going to answer two important questions in this section, “What happens when you create a test class?” and “What happens when a test class gets executed?” From b0f6539e65d8fe3cb3f91c502ab00138573b8f9e Mon Sep 17 00:00:00 2001 From: olhakonst17 <58791358+olhakonst17@users.noreply.github.com> Date: Tue, 17 May 2022 15:18:28 -0700 Subject: [PATCH 17/27] Create expectations page in docs (#169) * Add exceptions skeleton * Update expect no exceptions * Updated expect no exception * Updated ExpectNoException * Update expect exception page Co-authored-by: Crystal A <90483307+oishii-matcha@users.noreply.github.com> --- .../expectations/expectexception.md | 80 +++++++++++++++++++ .../expectations/expectnoexception.md | 38 +++++++++ docs/user-guide/expectations/index.md | 5 ++ 3 files changed, 123 insertions(+) create mode 100644 docs/user-guide/expectations/expectexception.md create mode 100644 docs/user-guide/expectations/expectnoexception.md create mode 100644 docs/user-guide/expectations/index.md diff --git a/docs/user-guide/expectations/expectexception.md b/docs/user-guide/expectations/expectexception.md new file mode 100644 index 000000000..3944b4a50 --- /dev/null +++ b/docs/user-guide/expectations/expectexception.md @@ -0,0 +1,80 @@ +# ExpectException +## Syntax + +``` sql +tSQLt.ExpectException + [ [@ExpectedMessage= ] 'expected error message'] + [, [@ExpectedSeverity= ] 'expected error severity'] + [, [@ExpectedState= ] 'expected error state'] + [, [@Message= ] 'supplemental fail message'] + [, [@ExpectedMessagePattern= ] 'expected error message pattern'] + [, [@ExpectedErrorNumber= ] 'expected error number'] +``` + +## Arguments + +[**@ExpectedMessage** = ] ‘expected error message’ + +Optional. The expected error message. The test fails if an error with a different message is thrown. + +[**@ExpectedSeverity** = ] ‘expected error severity’ + +Optional. The expected error severity. The test fails if an error with a different severity is thrown. + +[**@ExpectedState** = ] ‘expected error state’ + +Optional. The expected error state. The test fails if an error with a different state is thrown. + +[**@Message** = ] ‘supplemental fail message’ + +Optional. Supplemental information to clarify the test’s intent. This is displayed in case of a failure. + +[**@ExpectedMessagePattern** = ] ‘expected error message pattern’ + +Optional. A pattern describing the expected error message. The test fails if an error with a message not matching this pattern is thrown. + +[**@ExpectedErrorNumber** = ] ‘expected error number’ + +Optional. The expected error number. The test fails if an error with a different number is thrown. + +## Return code values + +Returns 0 + +## Errors raised +Raises a `failure` error if an error matching the expectation is not raised. + +## Result sets +None + +## Overview + +`tSQLt.ExpectException` marks the point in the test after which an error should be raised. All parameters are optional. Independent of the supplied parameters, the test fails if after the `tSQLt.ExpectException` call no error is raised. Passing in a NULL in any parameter has the same effect as omitting that parameter. + +The parameters allow to constrain the expected exception further. + +There can be only one call to `tSQLt.ExpectException` per test. However, a call to `tSQLt.ExpectException` can follow a call to `tSQLt.ExpectNoException`. + +## Examples +There are two main call patterns: + +``` sql +EXEC tSQLt.ExpectException @ExpectedMessage = 'Some Expected Message', @ExpectedSeverity = NULL, @ExpectedState = NULL; +``` +and + +``` sql +EXEC tSQLt.ExpectException @ExpectedMessagePattern = '%Part of Expected Message%', @ExpectedSeverity = NULL, @ExpectedState = NULL; +``` + +**Example: Using `tSQLt.ExpectException` to check that correct error is raised** + +``` sql +CREATE PROCEDURE PurgeTableTests.[test dbo.PurgeTable rejects not existing table] +AS +BEGIN + EXEC tSQLt.ExpectException @Message = 'Table dbo.DoesNotExist not found.', @ExpectedSeverity = 16, @ExpectedState = 10; + EXEC dbo.PurgeTable @TableName='dbo.DoesNotExist'; +END; +GO +``` diff --git a/docs/user-guide/expectations/expectnoexception.md b/docs/user-guide/expectations/expectnoexception.md new file mode 100644 index 000000000..9b92ea87a --- /dev/null +++ b/docs/user-guide/expectations/expectnoexception.md @@ -0,0 +1,38 @@ +# ExpectNoException + +## Syntax +```sql +tSQLt.ExpectNoException [ [@Message= ] 'supplemental fail message'] +``` + +## Arguments +[**@Message =** ] ‘supplemental fail message’ + +Optional. Supplemental information to clarify the test’s intent. This is displayed in case of a failure. + +## Return Code Values +Returns 0 + +## Errors Raised +Raises a `failure` error if any error is raised after it was called. + +## Result Sets +None + +## Overview +`tSQLt.ExpectNoException` marks the point in the test after which no error should be raised. `tSQLt.ExpectNoException` specifies that the intention of the test is to assert that no error is raised. Therefore the test will fail instead of error, if an error is encountered after `tSQLt.ExpectNoException` was called. + +There can be only one call to `tSQLt.ExpectNoException` per test. However, a call to `tSQLt.ExpectNoException` can be followed by a call to `tSQLt.ExpectException`. + +## Examples +**Example: Using `tSQLt.ExpectNoException` to assert that no error is raised** + +```sql +CREATE PROCEDURE PurgeTableTests.[test dbo.PurgeTableIfExists ignores not existing table] +AS +BEGIN + EXEC tSQLt.ExpectNoException; + EXEC dbo.PurgeTableIfExists @TableName='dbo.DoesNotExist'; +END; +GO +``` \ No newline at end of file diff --git a/docs/user-guide/expectations/index.md b/docs/user-guide/expectations/index.md new file mode 100644 index 000000000..6ea22ea4d --- /dev/null +++ b/docs/user-guide/expectations/index.md @@ -0,0 +1,5 @@ +# Expectations +This section contains the various expectation procedures which can be used to indicate code behavior expectations. + +- [ExpectException](expectexception.md) +- [ExpectNoException](expectnoexception.md) \ No newline at end of file From 60a3d8eaa405c578033609ca7c558cb09385d27a Mon Sep 17 00:00:00 2001 From: Jerry Nixon Date: Tue, 17 May 2022 15:39:51 -0700 Subject: [PATCH 18/27] First test --- .vs/ProjectSettings.json | 3 +++ .vs/slnx.sqlite | Bin 0 -> 704512 bytes docs/index.md | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 .vs/ProjectSettings.json create mode 100644 .vs/slnx.sqlite diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 000000000..f8b488856 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..5abead05b4299d48ba9c12378d5454875ab7f684 GIT binary patch literal 704512 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�|SySnrZ4Fq?7y#_EVZk87Pf2*y!lT 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

ytEmPn+rzNMwTqrM{?4%at^!!6s!$2;1_ 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%0D}P+cuO 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 Date: Tue, 17 May 2022 15:40:38 -0700 Subject: [PATCH 19/27] Revert "First test" This reverts commit 60a3d8eaa405c578033609ca7c558cb09385d27a. --- .vs/ProjectSettings.json | 3 --- .vs/slnx.sqlite | Bin 704512 -> 0 bytes docs/index.md | 2 +- 3 files changed, 1 insertion(+), 4 deletions(-) delete mode 100644 .vs/ProjectSettings.json delete mode 100644 .vs/slnx.sqlite diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json deleted file mode 100644 index f8b488856..000000000 --- a/.vs/ProjectSettings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "CurrentProjectSetting": null -} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite deleted file mode 100644 index 5abead05b4299d48ba9c12378d5454875ab7f684..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704512 zcmeEv2Y6If+W(!o_fDUCLnxsL3_XENNG}v2Bmn|xq|jrS%-oQHWD;g35EPZriz4>k zUB%veU3Jy9th#2^)v>IoYl+>ptnTjrJ?A}ldLZKNe$V&+hUek;%bfF`_nz~fa?d@r zZb^mPuh?2TyzLIZEr(0uG#YNM&Bk$@75?7@|J8qk;SWLm0jvr8yT3oJT*iV!A`zB< zA~MPHPnJWLB=cg^0potdn|fZigg;aJqqbJNs6Q16_y08(Fp!w`OqBE~%j}w-C2o&P z>8{({-rUhvsXjVDemH3g9juN?0$fHDw2sYYEsw*l;TC1u{ zitEbKcFwlwQ|xxlKD*!1+@?e)J^HtmMW()ZUPW1)lv_=yXqOlxmb)6kzV&4b%4%&j zwdIw?wJU6k%U0Nm8|tget3YjKSyes63jQ}#RHQR4HQtVmZkOT>53S0e2+4%nviW7T zWmP3*b+%P%h%%4g?cdy(8gu{^X`vvHZw)o2#1LSHlH$^`2(Qwzin5TG8W}WT)zaeH zl7+>!so8mXX~76b*;NfPzpJfn^O7z{o4duWxZ){@%nvo(Vkjjcd#Nc_eT$t=#piQ3 zyW2<-gJz8uiz)1nDXnL^S)bAb^{R>1D;iU$!{brBB@Sn+(i9tYtYy)HmdIKb?cJ}QusRnV z2FhOS(;L&aH<)OR+to;GTy&`D-{!~~7wrwtS8H6fS9qNnK#gM=8ZXWL34?cx z>Vi>@YDj{5@<*9cHcQc#4q~B-%TyibQ)I zTUEh0hf4VXdLsSiL8z^x?HK7#k$=a~CHQqMe7TRF_8eDXL2h%4 zBiohhvKKVxG`sR#IrhSw{A_z}c7e+dkI1zbIE7{q3`Oa*6VP;-VK^{cHm7kSs z&&_Jd1EHcEdtPB~PK%PCqc{q)?M2Nkg+d$TJy&z_Z^=gMw&w&b_uXW123VHViDz@C$tmuJt-cV^j(T9iyk zUB1&Sp=^}q*=1tEkn4X=Poo&m?n~_y8BR6N5M&PET)WHl)yMv9&W@Y4L zv#*ct@E1P>A9L!A7E{G@zH z{$gNBOGqUwkg!0)0tpKwERe83!U72kBrK4yK*9nE3nVO%u)u%90;Bkuntqm=2t)bl znwX^l{16yYh+Y_=P2#5*BNhRWz4@Yim_&K9{FD4Q`3w1D`LJ9o&ydH;M(J~@S9(PH zjdZ%SNotm6OIGXOtZ!K#v)*XkZCz)rwdPt!TE4M7X*t*8vCOliT6E?Q&5xKbHg7c7 zn^R1mnjSWtY3eYQno^9P7=LfP(5M(^83!2-8}2ZiW@s^#7>?5))<3AfK=08n){oJB zs(V;>rEZ&Um2Q?UMf^?-i1&);i5tZ_af`@Pr=!`W>Rq)K^iBZ1l|jABnBFSIKOgi~ zdrDDn&5`vg9(zMwr1CW_pxhoe(r%Am@j}d%?#{Ljui~|Lbdue_j<#PGeMNyM5bMQ8 zznndxOnpMN`h;JekYtyR8>}(teBHhks^x||b=+8ZGVK2J`bl1ee45b*&JZZAEX!zj z1$`zsbX*>UDeZ8sSG+B-y(y#J2fKW-GqZ|9LTmaJDhLTR^(&Mg5;~z@q1=#AW4}V# zL7{Q0bzBxi+}Y~ztX1kZv{iJhb$cRGox4iMEdvpnpbVD+`MS9sc1vcc%@#4Cm+vElvHxu;DBef6ChG_0u8?IQV zDjrd<?Y|v{=osOFZUTj%Yxu>NgV`H;VRD+JJ)p4YTG5-vIw?F7N zc?mw=U$>;fpRo~+1t1HkXj72U-QE_In_8peN^n7Qhpj zky5ESi+w(&y}51kVr6q$MtF3yN_5%dwF|jhu3e1EGtp4WeSR<&ed^qK;Htd!{euEtx>$~Za6xk z!{dvH?6^6oY=Pphhp5#mzOFVXZQ<#ed_0z25P{NLNA_ZR)iNF~S1?=0HIj$I`^4*3 zJg&CQG4jE-Aw1xuS(t$&paa@U7l{d7cNh_maWgTh^BqoyOHngAq9jh7f$vxpp$V^Z zdflD0-40r3Vo{6~7VQXK(+hQ6B_yY;TXA;z6|jurXAcD{q8TFMmtKISgas(}VL8db zvQ}3dndNEuI<7dRK2kbTbV{C%n@vPL?D$mGE{ZZ919^HPbe{uCB5U=D5}=&d4mbW$3u+kSY|VIZ)ahVXLWjY-v$K zt;`D)I6%bV@9;*ng6Zj)vn3tv?H!)^T^=Xt!}y>RSE=}0J6yg915BO9G~+uI-XgH? z7+Q&@TEzhYB3hQ2Q+1p|;z?yon?WTjK0y=oZ#-KXCXyzPHWw@1oe@!)kc!P~NFq)_ zA2$W-RWo@t`k}?}(YJTR>uYk@+cT`4h<@IfN%+2@&s(Up!Rsr+khY0oF%EzK2J7bV z3HUCd8Y0p%bv&AtMzaYzz_cxGf|H(nosLZ&(%TrVzKSP}!xqJ{-q!?uW#}b0IorBu zGaN2vx9PZYus#uUx}B~j=$*K|9UfBhVCOb;QzEq5$A-i)7S0Zj-{FQL)8r;Sd0&M1 zq%omLL`FJ7Z1`xBVuNl|hj)ET8+7z}H5JDl2X8FSsB7q4>xC8%s#3=C$_mwY*eK{x zaR%%vz>8mXA2m|PO@UCfK%kA=JgVpT5l|q4p3V+f2u_|07IZ4A%;4cVE=5(WI*v*q zS`9jq`3>;?BJ5K=hYiE1sGdRhp&@r)MqRP$o-qWPR;J9CQMSCkthTDSqN%t94sxn% zg2SPj%9fYc)z_)=69z+r-JiTFG&mWf9TBr3gP?Z_A?rH2yrC2hOTu{7dEA|yN+=yE zGGqlC#?Dwi( zgGDqL^->*&3nWe9{a@8*D6iv2fo{?>ZtZGTos+c~jf}PMAv}J29-wU-`Fr%X34p_U zssK~mTKPfv{ujyD@&x&Hd4ep;tL4+BxzcFs->vWP^ZDW0AH^&&MdS?&<>#!oTQ9ag zDnDp&h_6_83kK_YYrS=*b&~ck+9$L(SiZIN>I3p!hCCrvdzR%6;Wf)ymM!9~{8yGn z%Ph+%ZKrUputjJUsw_I~GQ(8;6Z#wUXX?B4P4bQA_skENFExzjAC@oUUpJp(UTrRr z4`}CUC&}B*qs_eRGxcdLnm07hnqD?tW7;ERn>Lv0OtUn1X)Y5+nMN7EHU3ev!}z$y zYrNHXj(CagUEMxik@%TrhW;C4kL;3H7+dAV`X$CXW0`nB^c&NSDf01h4u6ZjL_bqp z#h)Xm$+Gl`^cKI9Un9K)qaJq|c|)IcvEg}Xui-Xni{v(3VK_|+?u{tmH)t#CpeJR6 zW4+)#XRG&awwE~k&Q@EwNBxrUfh#oJ4*Fsu?>X+=LHs0bMfu{gT-fD9UCtT7=V>8G z$9nQ%=WM6lEYiesXAgx19OWKpB3%k8tl8A{tSHwk>UyTkkJCa=t<>$MzYk{d3jC(8 zO&ZuYzr)MAksvAf3bbF{_2%^qhfyjVKAeE52YN77(B?R+D6!vQD$vJG%roUfjA@tUBw zPEX2&Etdv^cjbEiHflh$e-P{Ge#%0hn7I#6H(Ca>t zW>G18_(FkO=Y#GdiCXc>Ch|yHsGuj}B?$qyD)-t}f7|8~_)7L*r(;73pF?~qp?gu| z?o`?!vZUM4If$R4$xvKwcpCIRTHI?pNEY}Z8>v}Yx=6Y`L^J`o8t{;x)%#Dg!%6oz-+A%VAwKt)bE%F zE!Q>(FjN^ExnDO>*|JiA;mO!&{u>4-6+J�|SySnrZ4Fq?7y#_EVZk87Pf2*y!lT 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

ytEmPn+rzNMwTqrM{?4%at^!!6s!$2;1_ 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%0D}P+cuO zn0*ap*kU28jJg$4*yA@0G-eW9E@{Uj7CAd{seB| z@>X^DNOlEf+AFUS?sFzDE;rGqD-A4_Mz%b^$Fj>Uw?Y$sV%A|Ks1+{DF#TAzmNM*` z5fA3W<{oUye=s~=Zr{mNkjrer25og%53=$E3p};^QDpspukGWuK)3&=eIEh;|Mi}A z?svG}=X}u-wRhIMza~)iqpD4nQx)$3p;y?S{8V-ab2F)thlD#wNn48kbirOJrFGXc zM(ewiCvh8y+WDW(Zny43Q<9Rw-gGCWEBC1K#d}?rC0w*}u$Yyu5cy>ewIzIW`4Vi+ zvILCd@-B;wuRx-l9`zp;WBJS7UA7D`t7BOlTW6LEm!YWL6rT?<72&d(r!ldNL2Yl( zLA5g*Pm09V@LPc_OZ(Vh!5E`%Wh-%O43n1P>s(bpV4K>mzC-J$+BUAA+DMO($V;;< zW8)SJGbv`~RLk27mbFxPBy9BOP z_063p#U(dS4N3iU8dpSW-n}?N;!0qN459J&(*-1i5N;veBM75E`~SUQcAu2k??Ld1ZfMZ< z6cA$qL4~HatH|CgOS`#QzE5~ufz88i@S|5AO!CDIjfKL7eFUBqx8!I8V(B$^rH>2q z0VX3;#5W5a6O@9Q4tHgQx$KHYy^{5!VPmKaI54deHLsHTEX(iNYr)8_hV=p);S{Xl zsGk+bwW_o%R{C3Vlpm%F0T04H|$D5LKasAX)Y!p(L z1_!b%Z|GgyiJoJj<}|jdrP`Qf$w=q%ba=UP6ei+#R3B|wmZNk&PltG!58%c8Gru(10E+cqQN(FwNQUA&uAbeT(oDuU2>E~^AwaR`6)lx0vc0qqs;y9>cR z;UEW#wqj+k{^-6$coah2MRcXr56$K>Tt=!kuY!Iy$Cb;_7 zn4Zos72z^b)N)^zWn9>7A=Z=rO{HxNO0^ZFxRkItQ605sSw4hTIVn8+s8$bBOZz6J zL?S$F*j6_c;SwSfY$TCY;OPSDaA!rQKsru9s z9lrDm8&8VMRGkV| zW?5>34Hi17awu*4L?lAbSLw+VT`tSwWR|5dSR;#n`gVp#$9keEFegqw*{LU>yTpBY z!TrIWW!VavEPQIf(E!THszd68Q=~CN=gnR~M=c|f~`qm!&(OT%agC^2#yWw?Y4qfI2s z5&-N;i-)K(j5htj#Fzj|k5{>E?KtIr!%W#RS-Ml`_@&+8T@VNrlLpanGgV}b^6bb7a zPAM@n)ZTC03=z14%e8+R4l9mRLsbX;#0ImybbtS8xm~ys0OvW;7P*PbT-CBS%Mun? zsr5tg(L`ui>Yo@)N)RL(47VfTgQu@`bD6Sy$ol^w+b`P!3I7-U-M(wSr@VjTJ?!}d z&o1{T-J4vJ^COP$Ioj>-s`*jP!RqVPN2}gmc^RSrtbkh<@NYWH!u~9?a3ZW*n(T>A zg2$a+PwLNH)jUqZ^OIAF!;jN8b|A}Q{j5xjw=uM>7mqBO3tR$ZxFpA5U_g8$%wDGl z2H5E?w(|tP(j*RbvBW6;6QOJO0k|qpztvRr;ljSpv^Mfbwx!o5KALgJ@R!fn88iE}Qtj4+oT zRb6W~PTB3VaF#>!LRQ_%h8Q!8qztEb%8GLt>W39j0!_I96E#ZxwOJOw=&89;hn+m- zal-sd+`}yd?hfn9LiyKaqg3@hvbf6$j)Sz5DXd8g;Tb^n^`l5~x#~y;jSAnNWyypj zd15XtnQ=E!p+bw>>B`>8Es&Y=gX6e=OKZWFW!Z!pEZ9f-CI%zn^JUvwR1^Q@Mp7<5}{Qz&?3`&Q4>^u=Du6WYc1cCWr;Q#U8=d|2u4f5&!4?9ln=*OT9y$KZgha zPr1J8I^g__^IpfG{Zh^Cnl07usk&aZtnxx-eZ^aCw{1Ig%YV5p$07thWx)`0SQ=ET z|7cH?d=z#|qoJYco=M`a8XesOhrta7Y_WT|#V$0D2XicXkd;i^CNJ;bzndI$Hq6aS z2y&?@H6lNpW1)j~Sa3l$c_FkCjKHe@w3HMr%Wgckh>b7e6Pa!a_L=)3*sz|5`ZM>P zWITI5r^Eshcf){^lk_uYXFzqAxG(OCgrNb_2}VoKPd{Y+7F^zxy-qfQb|%r9+?f~} z3#Wis(YjXP20qt`1dN|4?ZYYY&K!#=G;U#zEWkrC^G2q@mr-A#R`2E(snAIu%dyBq zR*pF`t*f?iRsAJmLve+<6v5QS0${h~SPYITnS7@D@$h zu)qq}XAY3p=UCPo!dNtB{Q@(lvx|a;S*{x^dn!;#N$|2rC~X*8vst^k3e5iXnYWH>@cURSOL*FNHBvvJ*9H2W|7&V8?T1ps!3V4N+n*)Hjc z97{N}PTc;gF*+Se7-nDkYg|fH4FfrrXC|B$cb`xlz_)=*8H`v5q~UM^zL-g^Gbh+V zm}{TDHCelt%U$aSs$bp0GCw#(9V}`29>}rmHCEOaT6c%Nv93rcncM@b9@y&9mxV9K z^=>1;ys7IEv>4k^_&7LE)< zCnS?OlEnC6j5*grFM(fTiD`0J-9Qprf#7{y;_9%nG|N)n?6BaO40&p4>|AwW!;U(@ z3b!cqX-QEoJGGwQlzkH&W}dL(pbR?;!zAZ8gyM)8msa!;PvIh$fvO*G_7r7cWhT1sJT}CrRvpH9ky#AV)iHdaxBb;mBHpH)<1-T2*EZVo3I<&fVm8}IJC)- zVfoBxjz#xqID1IE5x~JG`UKWlO`~h;uXBkEBnG0j^pD;^hEnCwS4ZI*_?yK;2?-|T zR7!t^{zOe6n%|AXN>XzTpGHI`60ow+T*BLSNz=@QKywMcF(jD3<`-DoLHYyq!P?VJ z8nfo=p(t4YNr>D-(S$S#jhvk_&`2mQmT;&y9EyaWqee7ryfFG{Bw5t$e%RoQKu~DK z_NSLoo~CTpXzzzXp0ygXQ>%GyL9ejd)BLV-KVZ(hH#(G%sNF9@2L#QneGs+0P$Nne z(iy;Lj)iAgmxhEGg5wQ+6sMW#uL(4<9uliK-5q^`jJ=kF0Oi%kxfqI zSnQXc^kL!ZfldL(fkk3=m6GIgD{_R?xC+iWMKxx_M7KzHZW;a3bXeGVK?4=0wM=#< zX_iI9h|Ce}e~x8h*o3ptjFh2(k^?X#o_hoch^D2wVv z-(C$Dxi44eZ8Q6FEb~g!iz|gGC{uubDFjwTGU^$$VIsh#afO zPVNjxQ{?H}A!jFo4mg3f>8><%!|QM{ww^fD67D#* zPjBi6hvF0PdDV0-avoh1|AXGM-tfGhsp2BRFFQKB;QtSVP7o!L&B0S0+9fw_=J)56 zWHrl#tCXBmP-k=s74m#T&GO~A6-;g+ywdg@=Bi1L3-f{qkFgWrgsyDNfi(+S3QhH+ zy3rUY3f;nGt9)o`YlDz@QuCb(PK`&j{~1q&wf|XIk86LGrX*|_%5!NAy&=c);5?NU z4|HQJmQqQiA&9EN{2mcqoCrt9hqWbx@@oGR3aTw(dP9yS*Xf@T_y1Sfu@1~SFDYJO zoY9YV0yl8W_KF%VXrq|Uv0OY`EQEC6YCup?T=gvAkVy;w+MJTbM?9t}PP$=0AhS7T zz$HhU^`+;_af@#{XseNU^yfn;|Ft=m?Wfg3oLhCHhfm#9#2Rber-pJ}oMRb(S}lZd zGBh-ncSWyeQxPs#gLKanp+?sK57@5S0_*(e{0`rneF1OQ^GQ#wJMH>M*LLS`I4d0? z`=3B0!1q-RRDQhTAc(#q|72&5#rd$3kyp2jmojM>A6v~~hwfi;R7=8$k1 zT@$n~GPzILPAc4>u&3SXksON{VkJH*3I2n*v~U>P9g7{Gh#w^GCx&@VX<4p@l@;ij z&K!#i()pHY;ptbAp@-7|_;OrcitcJ_&Hlw~1x1h5)R0hn!3P*yfYy4m9X5A*qu|vZ zR;>H#WK%1KPhyU!r6iPr%~VD)BN=y;H08n4Q0zj%1aEjYK{}?UnM(RO!Zg)dWH;Bus}7=UDoYbr#Of>Yu2e+3By{IXjkiWKQgw zNO?Kz=rs%MsJyXOAI`BfBXeWdQi2`1W`!M*FJ{NmkIac(a|zwiYZlm1c_X`BIhJ%} zb6Pwe5l$VI%_q)q$CKhR?kE}{$uH_RS@}rQA-01}B_J#P@jX&11g6Lk8H!%WvD772 zjI;DR0o|v{Y}B7g#gp~F zzv35cfo(p?`(e*jPqjM+`~NGQJ&w27U#k8@)%)S%PyYV5G%)i*ZU^1Y+w!7#GFlwE z$Zaj~*@0tR*^VGSJHNoiM0%=v-*|DI3+*45bm`$EZNgWB>6LSTg$ zNl6Jo*&?w<_=@d;0KdxD#q{B@!$}WKFV1bJO+cCv&lq1=dSaa^3R1tvNlvS(>azzBK%^f@b?-g3Wahiucoh}Vay7<9|nVv zwR;8B!`+H4Xh73oOtxnWawRruHA0Hv`%X4VwU5(oixz&L&j=>k%~s_Nbjs43WBE7w zW$~er8D?M|Y~0)9?dJ*HAW+Rgv&}qRVK(JhB90z;RJbLp+zP#e)2T~I3ed++2x=?5 zNyq-Dax81c;k5XX#!^;5PBDaT5h#y#UBc`XilG_fE$T)Yd1H{Fs;8?FXo)ni;A*%1z-0SEUc87&fa%O#k(`-wMa_K1@thN@KYi~4} z3W3Y^Fx1NK7@NfC8|g@nrHR;*?hzh9v~5x~eH@6z3+-fK6$@>33 z+oa7u?fbf~!TSc!M?9_WUvi#toU`AyPu6^@roH-8)hjE1Q0b|VL2RD>(vBPp5#Bjd zBitbr!;R_?&Q(v8R#>qdR}+P156=4F0N>Q8+zjo%c&l1rViJ)@ZD3^BW;}o<2KG`O zs=SUiAA8PvK=K|qGd4Ud4eO}tKZm9wTm?`jqd69k{I~@lIkJYGz&K^&a9R&Kiiul4 zr=~34%w@0Wv$mEUEKu}J`Z%$G(3Q9%M2ebTmt*11_s@vObmSgd;FT@`j_xJ3Ay6Ro zRHIR=kdGS_ueH30Y15>E8XpbkFto~&m*iLw_8trIj{BkYv#G4o4U|(M#<2dSB)JMw zX1FJEEX2B%DA44E;MuWDlH&R0Dc5G>{cA0Fjih4 z;`3Md=CHlV;%=zB#C@?k=&#PP(DzLiT%T!jKf0RXDgv_q=>@nUc!v6m`ij;3o-e^zpt?u~7m#z?~*s{bSOijIP|I%o@Jucbw*&#^H1 zA-Pq!NbH-%GP9aaPI+}gr;sA|aTP&1FUqkn`BwbmKy~09Tv(;@HjMakB{|JhuX?2F;~?;p zzaI|`%LA&v@)OpwC5=A+Xg0c5)UB`rXr0beuKQLFcSiikF!l1{ zy(9fJQSgaCm$7_E<$9ep@~Eia;M|^ z90E5&3<3!ANyaB|cGdTRvf^BZu#>f_c48xqA+DmnBs?i@SqkmLn`7y+twadyKOP3B;rR5S=+Iaw3h~CMGW3+pWw?aY z@h6aDX|s=82>1XWES&BWQz4kq)ycZDVj;1uIG;6(H*-s%R6Xo)lF1Qo`lOkQD{GU3 ziHRh*4~@hMk5K+aMkBKR57?46f0OTw_piOHJqO%xc74?Ki1Vi$-8J8-&Qz_b_%vLe z&%gAp980KobVfY#1lixA4S_Y)9f{aPoavl}*5v44_%;E}Yd-Lb25W0IKhjmI<$!;s zY(uz!RHxJGwyg4gQiJJGj%D(jI3sS0*5$dtPn4q7PYgY zpu8nTxthUGs@A1B*eLTk!ZayuG zAJ!I`2o%%RCtWk0e!xwo**=kDnKbuU@E|YwX)U5zPMXWl(0_??XL@ri>1OMT_X!U^ zxMHP)0B5acD#9hEEP<3Aclu<`>Wj%3ilSM$vFk;vts)6S_t5TY=pJFV+6U%ieth-9{{Q{9kJJd1 zBxibeY?RdIk)$DgRS7`>YQuS!WvnjUFZ|ilzOmTt(|DCjqUd;}_5kIR;p9XpQrn-J z7!Jn<1{&)d8wUnpuUtw%!0aSMK|d&k#%mA8Vv*#)0NGOv57jDL2g=Xer@-XSG6=ko zXX(qV_~yfg#Gd5jkn&W0V>Mjl7E)~lr}EXb4Xm?}*@$e3#N%87nrr3XFZ=T>b(xiZ z3k2xfpMzvx-4hA;rqCHlkt)oDxRlh<_>nwIHfCjGx0umx*wW>y$UsahTb^HQp5+{~ z@-Zd}KoT(UvYfx#z5o+M_!z_NWf)UZ=(T9!MlN%;vB}On%TCr}Ays&<328k?GYKvk zwVLfYmT|1fLKLpvWLN)KC=uV6cybVz^+qa10%e(`YjSU*eXut@J*UBrd>g>IPdQZ% zlUh9~ZFLvRa`_b>6rb;raA1JYsRizIUo~BoV@b~XEo>QT3&#drrPnF?Fa&)NxPhyZ zyZ&t;YrgaYIhI?kX=cNm+C$k{Dhk}CVxr@Urm+kRu=>4b~3~Xlp_v9n}6F zOobAoO8W@sSZ23VXJ9K;&=SXD4@n6ap;K^3hr|tL*{4zvZ%WuSH`k|dRa{t7YZjEI zKbBf-^OxCozSX%e_Z%IShGxXgp6Zg0I2F+76J#QmEN@`8aO102rDXsALEC$5f&Kn> z`o89C_P)b=ugB{iab0$P$2siyTSue)T{YjS8Ls~0>Qz<#%Iy`WL3pA5+qF%FB%Vgp9@}=m`v;1(+T8JTSEXCZarcjLX_m?e4`o28N8P_o*o}0_0 z4HYl-I6_=TclK3RKX+Xdi3GR}4-7!~`+)(>6sNWn-C^Az%03AT82AinKXUTQJWDFq zY9WR>S&?a+)Y!RI{Up#-gsT#5AUOR|>S31dO1?k;82vnKwqQIkaNyXcc~V@maDtGg z*QC1Ef(DRb#IQ79CxN`BCZ&hRY8TT@+_&^ehYg`aImQ0uX&K1 z>MWgXvAnzh(V9HVdDbKcgg>4-o-j9!O&EfKnFw&HG&I&@`)8@i=Gy-IC&tG^iBfAO zCcq_9sJx!MlJZO3#YkIZYAlu@^iFAWu}+LjtK^6lgzWICA!s%sbn{ITJ2iPV)#>AT zmcHw-+%l)iWid{7L}G)X2<|+wWB>e~%)NzMK(#Bc$g^Z!dn_ct(y2W(DJl6q55^8i zWQJFQsEIU}BMB5fDbYo4WuB$!>be7?hqA&iYw^$sa=G1oa|arJnbm`Nl2_&LqhHYt za~wAIPlTlsl|wIcOI+xwi}UwV8gtzVU<KU<+()J z2&8>HMum}^@&QV`Nj^TO5e|2O_`?JWaH*9Zp0&dhJc%SLr33R5c|WDS#lliZ`z$(9 zRz_q#d7aqYia_YPLA4v~XKjJofm?x_fg6GAfop-Qfh&Q_flGmlfeV52fpdYgfzyGh zKs+!OI2Je(=nL!&Yz?#p>H}*7wSgspMFD5P=D+Q~<-h5_;lJ*`=D+H{;=k;_px^>pSh6^2L2)zGJ>4zCPbh-&S9nuim%TSL<8iTjX;>+=AQQ zTi%=A8{X^QYu>BgE8ffAOWup#3*PhIbKbMw)7~j>+&kty<~`!=^X~L+^|pEIy=%R- z-X-2eUZ>aQx$U{-x#_v#x$e0JSrD#xE_*I{E_yC_&U?;z&U#LJraW=anCF=1h^No9 z)3epn=Bf9r_0)Qncoun_9-I5N`=>xiq*wbQlL)#j>qt##G9mbezVoGzR5w)2+rrt^mLy7QXz zs`HBTvh$MjqVt0Dyz`v%tn;*U${BZ#IgdGyIQyJCom-u4&U)usXRULIbCJ{Ov^j1& zZaHo`ZaA(xt~stct~f3`E;%kbE;!CR&NXOcp33`5I>6e+lU`Q{4K-} zBmO4hCBzRQeh~2kh`)jO>xjRG_^XH)5q|~oml1yn@&6+JBI5fI--mbs@fQ%^i})VI zcO$+F@tuh8Ks=B5^N2r(_;$p%A^t4lTM>T-@f>0vF^8B%%plGp{xstMK|G827Q`13 z-;8($aRxDsC?lRmd;#%Ih^G*rM?8u69O5+M6ygcQNyG`n6k-xFf%q(995IF%MI1+r zARb42BVrhF3~>~31W`g9MjS#ML<}JwLp+N32E=C&2N0h|{3*nz5RV`pMtleI1i1mmY5QB(yi0cubKztl=9pYNVHHfPbS0TOzaV6pk z#N~*!h|3TkLwpqR5yYj44q&zC%_-Dh0C<+{)LcIOJmdmNA0XYGq>o~izL z_0Fml6+dVD8g~-+O1vO9~1I~A7Yi6apv17>ChSRbWmlJ<8k&j#qZ-5rr;#Rj=8A+uei-0R7%M-s+3jZ zXQbZ3{!vVdFU#B?jM)Yo`8UuQ8WV92DNSMMuE2_XE3J$E8S!%l{J6%PN)Wg~Nc+Yk zN&*Lr_DJB(MjLndITi(t9)*ET5&c0V7MqQA3>pblQ54bAv-yoQaqhBH!nRs)kqr-$ zmap$m>d)Nrs=G>$=3B69Td0`>(z6p#z&%|gC8aTcq@D@{Rx2UPym%bp}vrU@={>Xi4LlD{lYY8XwEMNT^ z*&+PSoiP&TXj>w70v!MJYS&%jzQ53GAIY%PJ8O#0m*?^T3I3xl(UEQ|dv3#Zb|KUfE2@O!aqMj2slQTE27)H6V?&$G<*&sZ49 zJ0mAT(@C63viS^QmIS{k62%Z)le%N$kQq|nL`3i6a#os*d^o?34qqG6;(_X^WB0*O z^0?AQ^yG>zb6LPVBngg(v=69vCD+&DD6qMS_4f6(7=C|qRGNSY%8~W8^ceUM9HBlK zJ1#{xH#H27G_|#C3=KDJY?hi@XoIQFucbv>1wB;M>7JBId8)ot+AG`wnemv;uc0(n zS{SFu%S^{d%>_P*!WcQ7Uv2r_v?BValPPIjuK~>k?z_>alrN6oio20fGO=(90N(T_;#(KKKC>N9u=Kt9NtN*fTX0nE)R$ zMxrk?bUZXlj*@|AWOB38z2)Qi*R%0!u`C|&O*=I1l|t|-$84o)iZSxBB0gK>WvpE& z8MOOgW-~6q;d6bl=jD-HU8u!flxK-<$kbhQVt}gaj-7}`VxeIymSo5<$CE0{>G}Ll z`mL;!#XXK`R$7_~D@46h^|~}(0_ zDq5W1j(qBbs|epkf{}%z6VkqDPa+XBv@mlSE+685-x-CtB89xg^#4w&lAh$2!?#wZ7Ff2>SMqoYbr3Ie7BhD2G;gu`q|7;GnA> z(ufYz7H2rbZYsiMQ>eCO`A$lw!@_D33rz-IWo=fx&gBSkDbbN6NV|EEJh_mD^8Wl* zO0mEZAm=TZYxhHv$On^xI z9FAIy*Z;SbLIVB}PFjs9zv-sG_WWz9I$C8|2MSs`VTv10ku+dnW#$+UO+~m$p`YIE z`3}nDkSrb(Ui%t4S;7S5(A8;j$Kq4CB6o0kYSY|G!{bxRYmx_JG$$YnpCmt#-$YB& zWg#a9Y~L`->|Es@unH=JynduAA;{&eKPx*LOenc8iQ>unf03=<=KrAYsOKB*6Rv*n z8((DqOM6rG_3G}bB`q48Yu8S- zZCnT4pr3x@1_l~hNRW>poW^GVzZYg`lMo_{{2pvl9Q?zmIvyk)d=+01dI3nQ(flNza+CKu;$W)RA4KQ@Fa^l?5lWrV=7+Wlo z=d`-x!VcCQ%0ES^?@2!(+%HN{r-npf=2W^IaXOPgHIYK3k{wv2;w!Ln=-hXZw!TIA zBeY;vR^0|wsTHCx5KoF*5Otz>IDeROdghEvSlQ}iV{gwvI$#v$U37M=)T^GO=v`dS zMSVuo7i!B!_fy9o_l2?yz+Z}m1B^9+hKN^t+o;rXe1I)T)4R5fPSR@j7d zz0VCnc6%m6kqHvZ4p#jW(uz&BD;B=KRkG&Qn<~tZq_>8c-N&T_#&1^6 zH5+Um<}%!>WRorW+<}2O%PLC8nq~QZ%CE;l^ab{A?G%xn`7NFxmXZ|VN+`mf!~sfi z^Gt_u^J6cjgHDN|h9||PHcw5hfB3j|}k`wtps_xM<7Mi4Xn+!X5FKitPgih0`xZJI;F12bj%qf^o@w@W-sN${U zI@4(n3_#Rt#A3THb=#{z;ffA5`=+!V@6GR}>I_*30BBGr1_89J&l2~&3KXhow(38L zM#=jBLE9c%;9mdpa034+@9#nufKzaaz1Q_&=MS76jh0bR?yg{f%%&H>8-~Y)(zhjl%}MC z6{K$Ep*+hHRF~c_JQ1N~#5G0n{K$BfTkv_Bc$6zBE#`2ZWe-}H7N73Zf>4_-r;zHk zyIn+ew#11@OPSJgy7DZsP>U>XKcIIjo1FX1_D#(sxMeQvVGZS3MxfU84r^^oI}PXP z-YCMQLs}Veje^PP8zH35G{m>3mR|^G1RCE2L-A5^{^xBSFpK#Z~L(PXoE5^Uv^Xlp)9 ziS}DaWUe8guHZx&^KO^}^|t&NrM};S6`5-ZW0aPabSEYwnV}NRB)C-6Ms;ug zDCP2mh31cABAnrS5|331%k z*L<{QZS~u$zF*Z}`H9ME5d6uXi3a3N=UCdZPDn=BBIrm%=cQnDh=(K8at)2w)MK14 z$8Ap?iZ?bJ={B>2gQWj=^{(9;>xXp@%&*re2MSxxvCL*o5Z+ysy*6YeCh*aZQ6>Uh zzI(#a@c6_ycyxjdMv8*RAbDgmm>~ZzrMSfJJ;!pDtpnduQQ~^l=sD}Jap{&(=VRws z{<5X=Q*;2?I9NYYzpy>YN~5*Y!B5*&5c8YO`*1-#>OGm4luL?v9goH zyL7XV9k@4g!H+tTD72e_0cD4}H#!m{rT*uDPE74mgVxJ^|L0=5|(w!J;GmY^Y;}`EBJC; zPHL&q`y!>;Vt+6XVRs>`O_#h}m@2a;sZZ7FQeU4X1i56DW+gwIXIZ{>Sm}54$PtVQ z#M+=bnXqnc92`oCmSvYdoM)-F_MZ{Ae?rFO$?%Z0Jv5jI58;0xS5u1R<+(iPe-dZv z@r(>>S&@_ko`or%_NHLxa}x;(>}aI)L4EPHv%s`J&k}33&xoI!Qo?G``3c7cVlKl~ zp~<#iZ7p-r(>)14bNW=-(`e=x=dMd(?&eKGmj{50*P`_j9FJ1Kp(LW9w! z9hIY;vf|eCgljPR)Phk!Efpw|cxo8RuU@8u=%M@+TaZ}@89*P%lvq5X8!mDSG@pii zLkVfYs`Dpk!CEXFLZZ)s-GwI`u}X{5+?Yvli%5A41mk>Sw^=HsG% z2J}OJ2|+Hac~?9w=HmPWEoQp~6D4JTKq70QNj#Me Date: Tue, 17 May 2022 15:40:56 -0700 Subject: [PATCH 20/27] Ignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 57a9983e2..97e030cd1 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ /tSQLtCLR/OfficialSigningKey/KeyInfoC.txt .vscode/settings.json +/.vs From 94522672bfae65ccf977130daf05e0310f250dc7 Mon Sep 17 00:00:00 2001 From: Jerry Nixon Date: Tue, 17 May 2022 15:41:11 -0700 Subject: [PATCH 21/27] Change --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index abec8fe39..570ddca56 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1 +1 @@ -WELCOME TO TSQLT, THE OPEN SOURCE DATABASE UNIT TESTING FRAMEWORK FOR SQL SERVER \ No newline at end of file +!WELCOME TO TSQLT, THE OPEN SOURCE DATABASE UNIT TESTING FRAMEWORK FOR SQL SERVER \ No newline at end of file From 796cde0e9e3b1c460be0b43579eed54f098d3b01 Mon Sep 17 00:00:00 2001 From: Jerry Nixon <1749983+JerryNixon@users.noreply.github.com> Date: Tue, 17 May 2022 15:43:14 -0700 Subject: [PATCH 22/27] Create index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 570ddca56..24f4fbb10 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1 +1 @@ -!WELCOME TO TSQLT, THE OPEN SOURCE DATABASE UNIT TESTING FRAMEWORK FOR SQL SERVER \ No newline at end of file +WELCOME TO TSQLT, THE OPEN SOURCE DATABASE UNIT TESTING FRAMEWORK FOR SQL SERVER From f91e218542ff5a3310ebf275775683c7966037f6 Mon Sep 17 00:00:00 2001 From: kavithai Date: Wed, 18 May 2022 16:20:35 -0400 Subject: [PATCH 23/27] GitHub pages test creation and execution (#173) * index page for test-creation-and-execution * changing the case in heading * adding dropclass * Adding md for RunAll * Adding Run, Rename Class pages Co-authored-by: Liz Baron <10554+lizbaron@users.noreply.github.com> Co-authored-by: Kavitha Govindarajulu --- .../test-creation-and-execution/renameClass | 40 +++++++++++++ .../test-creation-and-execution/run.md | 57 +++++++++++++++++++ .../test-creation-and-execution/runAll.md | 29 ++++++++++ 3 files changed, 126 insertions(+) create mode 100644 docs/user-guide/test-creation-and-execution/renameClass create mode 100644 docs/user-guide/test-creation-and-execution/run.md create mode 100644 docs/user-guide/test-creation-and-execution/runAll.md diff --git a/docs/user-guide/test-creation-and-execution/renameClass b/docs/user-guide/test-creation-and-execution/renameClass new file mode 100644 index 000000000..8afd588e1 --- /dev/null +++ b/docs/user-guide/test-creation-and-execution/renameClass @@ -0,0 +1,40 @@ +# RenameClass + +## Syntax +`tSQLt.RenameClass [@SchemaName = ] 'class name' + , [@NewSchemaName = ] 'new class name'` + +## Arguments +`[@SchemaName = ] ‘class name’ +The name of the class (schema) to be renamed +[@NewSchemaName = ] ‘new class name’ +The new name of the test class (schema)` + +## Return Code Values +Returns 0 + +## Error Raised +An error may be raised if an object on the test class cannot be transferred to the new test class. + +## Result Sets +None + +## Overview + +tSQLt.RenameClass creates a new test class schema. All objects from the original test class schema are tranfered to the new test class schema. The original test class schema is then dropped. + +## Limitations +N/A + +## Warnings +N/A + +## Examples + +Example: Creating and then renaming a test class + +```EXEC tSQLt.NewTestClass 'testFinancialApp'; +GO + +EXEC tSQLt.RenameClass 'testFinancialApp', 'FinancialAppTests'; +GO``` diff --git a/docs/user-guide/test-creation-and-execution/run.md b/docs/user-guide/test-creation-and-execution/run.md new file mode 100644 index 000000000..9b6f19827 --- /dev/null +++ b/docs/user-guide/test-creation-and-execution/run.md @@ -0,0 +1,57 @@ +# Run + +## Syntax +`tSQLt.Run [ [@testName = ] 'test name', [@TestResultFormatter =] 'test result formatter']` + +## Arguments +`[@testName = ] ‘test name’` + +Optional. The name of a test case, including the schema name to which the test case belongs. For example ‘MyTestClass.[test employee has manager]’. If not provided, the test name provided on the previous call to tSQLt.Run within the current session is used. If no test cases have been run previously in the current session, then no test cases are executed. Optionally, ‘test name’ may be the name of a test class. In which case all tests on that class are executed. + +`[@TestResultFormatter = ] ‘test result formatter’` + +Optional. The name of the stored procedure(accessible to tSQLt) to format the test results. DefaultTestFormatter will be used if this value is not provided. + +## Return Code Values +Returns 0 + +## Error Raised +Raises an error containing the test case statistics if any test fails or errors. For example, if a test case fails, the following error is raised: + +``` +Msg 50000, Level 16, State 10, Line 1 +Test Case Summary: 117 test case(s) executed, 116 succeeded, 1 failed, 0 errored. +``` + +## Result Sets +None + +## Overview + +(Note that tSQLt requires test procedure names to start with the four letters test.) +tSQLt.Run is a flexible procedure allowing three different ways of executing test cases: + +1. Providing a test class name executes all tests in that test class. If a SetUp stored procedure exists in that test class, then it is executed before each test. +2. Providing a test case name executes that single test. +3. Providing no parameter value executes tSQLt.Run the same way the previous call to tSQLt.Run was made when a parameter was provided. This essentially caches the parameter value of tSQLt.Run so that it does not need to be retyped each time. + +tSQLt.Run displays a test case summary. By default, the test case summary is a text based table. However, the result format can be changed using the stored procedure, SetTestResultFormatter. + +## Limitations +N/A + +## Warnings +N/A + +## Examples + +``` +-- Runs all the tests on MyTestClass +EXEC tSQLt.Run 'MyTestClass'; + +-- Runs [MyTestClass].[test addNumbers computes 2 plus 2 equals 4] and executes the SetUp procedure +EXEC tSQLt.Run 'MyTestClass.[test addNumbers computes 2 plus 2 equals 4]'; + +-- Runs using the parameter provided last time tSQLt.Run was executed +EXEC tSQLt.Run; +``` diff --git a/docs/user-guide/test-creation-and-execution/runAll.md b/docs/user-guide/test-creation-and-execution/runAll.md new file mode 100644 index 000000000..62e6cb312 --- /dev/null +++ b/docs/user-guide/test-creation-and-execution/runAll.md @@ -0,0 +1,29 @@ +# RunAll + +## Syntax +`tSQLt.RunAll` + +## Arguments +none + +## Return Code Values +Returns 0 + +## Error Raised +Raises an error containing the test case statistics if any test fails or errors. For example, if a test case fails, the following error is raised: +``` +Msg 50000, Level 16, State 10, Line 1 +Test Case Summary: 117 test case(s) executed, 116 succeeded, 1 failed, 0 errored. +``` + +## Result Sets +None + +## Overview +tSQLt.RunAll executes all tests in all test classes created with tSQLt.NewTestClass in the current database. If the test class schema contains a stored procedure called SetUp, it is executed before calling each test case. The name of each test case stored procedure must begin with ‘test’. RunAll displays a test case summary. By default, the test case summary is a text based table. However, the result format can be changed using the stored procedure, SetTestResultFormatter. + +## Limitations +N/A + +## Warnings +N/A From a8e436d3104bf3e2c5f388ea26854d87a81249f0 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Thu, 19 May 2022 10:45:46 -0700 Subject: [PATCH 24/27] testing layout yaml (#175) --- docs/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/index.md b/docs/index.md index 24f4fbb10..03cf9d2ed 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1 +1,5 @@ +--- +layout: default +--- + WELCOME TO TSQLT, THE OPEN SOURCE DATABASE UNIT TESTING FRAMEWORK FOR SQL SERVER From e42145243911513ab6cf92856c465b7187325515 Mon Sep 17 00:00:00 2001 From: Liz Baron <10554+lizbaron@users.noreply.github.com> Date: Thu, 19 May 2022 14:10:16 -0700 Subject: [PATCH 25/27] checking if empty frontmatter and defaults work as expected in Pages build (#179) --- docs/_config.yml | 8 +++++++- docs/index.md | 2 -- docs/user-guide/index.md | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index e11d8227d..e2c75648d 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,3 +1,9 @@ theme: jekyll-theme-dinky title: tSQLt - Database Unit Testing for SQL Server -description: tSQLt is the open source framework for unit testing on SQL Server \ No newline at end of file +description: tSQLt is the open source framework for unit testing on SQL Server +defaults: + - + scope: + path: "" + values: + layout: "default" \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 03cf9d2ed..c3d73ad26 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,3 @@ --- -layout: default --- - WELCOME TO TSQLT, THE OPEN SOURCE DATABASE UNIT TESTING FRAMEWORK FOR SQL SERVER diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md index c36eb20e7..8906573e3 100644 --- a/docs/user-guide/index.md +++ b/docs/user-guide/index.md @@ -1,3 +1,5 @@ +--- +--- # User Guide This reference contains an explanation of each of the public tables, views, stored procedures and functions provided by tSQLt. From 2254841f465f237bc61ffc8911e1498b755b74e9 Mon Sep 17 00:00:00 2001 From: olhakonst17 <58791358+olhakonst17@users.noreply.github.com> Date: Sun, 22 May 2022 13:36:00 -0700 Subject: [PATCH 26/27] Create Assertions page in docs (#180) * Check adding a link to a theme description * Add Assertions skeleton * Update Assertions pages * Update Assertions page with links * Update config to an initial state --- .../user-guide/assertions/assertemptytable.md | 58 +++++++++ docs/user-guide/assertions/assertequals.md | 93 ++++++++++++++ .../assertions/assertequalsstring.md | 65 ++++++++++ .../assertions/assertequalstable.md | 117 ++++++++++++++++++ .../assertions/assertequalstableschema.md | 36 ++++++ docs/user-guide/assertions/assertlike.md | 74 +++++++++++ docs/user-guide/assertions/assertnotequals.md | 41 ++++++ .../assertions/assertobjectdoesnotexist.md | 49 ++++++++ .../assertions/assertobjectexists.md | 49 ++++++++ .../assertresultsetshavesamemetadata.md | 49 ++++++++ docs/user-guide/assertions/fail.md | 71 +++++++++++ docs/user-guide/assertions/index.md | 15 +++ 12 files changed, 717 insertions(+) create mode 100644 docs/user-guide/assertions/assertemptytable.md create mode 100644 docs/user-guide/assertions/assertequals.md create mode 100644 docs/user-guide/assertions/assertequalsstring.md create mode 100644 docs/user-guide/assertions/assertequalstable.md create mode 100644 docs/user-guide/assertions/assertequalstableschema.md create mode 100644 docs/user-guide/assertions/assertlike.md create mode 100644 docs/user-guide/assertions/assertnotequals.md create mode 100644 docs/user-guide/assertions/assertobjectdoesnotexist.md create mode 100644 docs/user-guide/assertions/assertobjectexists.md create mode 100644 docs/user-guide/assertions/assertresultsetshavesamemetadata.md create mode 100644 docs/user-guide/assertions/fail.md create mode 100644 docs/user-guide/assertions/index.md diff --git a/docs/user-guide/assertions/assertemptytable.md b/docs/user-guide/assertions/assertemptytable.md new file mode 100644 index 000000000..561e30132 --- /dev/null +++ b/docs/user-guide/assertions/assertemptytable.md @@ -0,0 +1,58 @@ +# AssertEmptyTable + +## Syntax + +``` sql +tSQLt.AssertEmptyTable [@TableName = ] 'name of table to be checked' [, [@Message = ] 'message' ] +``` + +## Arguments + +[**@TableName** = ] name of table to be checked + +The name of a table which is expected to be empty. @Expected is NVARCHAR(MAX) with no default. + +[**@Message** = ] ‘message’ + +Optional. String containing an additional failure message to be used if the expected and actual values are not equal. @Message is NVARCHAR(MAX) with a default of ‘unexpected/missing resultset rows!’. + +## Return Code Values + +Returns 0 + +## Errors Raised + +Raises a `failure` error if the table contains any rows. + +## Result Sets +None + +## Overview + +AssertEmptyTable checks if a table is empty. If the table does contain any rows, the failure message displays all rows found. + +## Examples + +Example: AssertEqualsTable to check the results of a view +This test case uses AssertEqualsTable to compare the data returned by a view to an expected data set. + +``` sql +CREATE PROCEDURE testFinancialApp.[test that Report generates no rows if base tables are empty] +AS +BEGIN + IF OBJECT_ID('actual') IS NOT NULL DROP TABLE actual; + +------Fake Table + EXEC tSQLt.FakeTable 'FinancialApp', 'CurrencyConversion'; + EXEC tSQLt.FakeTable 'FinancialApp', 'Sales'; + +------Execution + SELECT amount, currency, customerId, employeeId, itemId, date + INTO actual + FROM FinancialApp.Report('USD'); + +------Assertion + EXEC tSQLt.AssertEmptyTable 'actual'; +END; +GO +``` \ No newline at end of file diff --git a/docs/user-guide/assertions/assertequals.md b/docs/user-guide/assertions/assertequals.md new file mode 100644 index 000000000..512ebc44e --- /dev/null +++ b/docs/user-guide/assertions/assertequals.md @@ -0,0 +1,93 @@ +# AssertEquals + +## Syntax + +``` sql +tSQLt.AssertEquals [@expected = ] expected value, [@actual = ] actual value[, [@message = ] 'message' ] +``` + +## Arguments +[**@Expected** = ] expected value + +The expected value for the test. @Expected is SQL_VARIANT with no default. + +[**@Actual** = ] actual value + +The actual value resulting from processing during the test. @Actual is SQL_VARIANT with no default. + +[**@Message** = ] ‘message’ + +Optional. String containing an additional failure message to be used if the expected and actual values are not equal. @Message is NVARCHAR(MAX) with no default. + +## Return Code Values +Returns 0 + +## Error Raised +Raises a `failure` error if expected and actual are not equal. + +Raises an `Operand type clash` error if the value passed for @Expected or @Actual is not compatible with SQL_VARIANT. The most common form of this is VARCHAR(MAX) – for this `tSQLt.AssertEqualsString` is provided. + +## Result Sets +None + +## Overview +`tSQLt.AssertEquals` compares two values for equality. If they are not equal, the test case is failed; otherwise, `tSQLt.AssertEquals` does not affect test processing. For the purposes of `tSQLt.AssertEquals`, NULL is considered equal to NULL. Any non-NULL value is considered not equal to NULL. + +## Examples +### Example: `tSQLt.AssertEquals` to check the results of a function +This test case uses `tSQLt.AssertEquals` to compare the return result of a function with an expected value. + +``` sql +CREATE PROCEDURE testFinancialApp.[test that ConvertCurrencyUsingLookup converts using conversion rate in CurrencyConversion table] +AS +BEGIN + DECLARE @expected MONEY; SET @expected = 3.2; + DECLARE @actual MONEY; + DECLARE @amount MONEY; SET @amount = 2.00; + DECLARE @sourceCurrency CHAR(3); SET @sourceCurrency = 'EUR'; + DECLARE @destCurrency CHAR(3); SET @destCurrency = 'USD'; + +------Fake Table + EXEC tSQLt.FakeTable 'FinancialApp', 'CurrencyConversion'; + + INSERT INTO FinancialApp.CurrencyConversion (id, SourceCurrency, DestCurrency, ConversionRate) + VALUES (1, @sourceCurrency, @destCurrency, 1.6); +------Execution + SELECT @actual = amount FROM FinancialApp.ConvertCurrencyUsingLookup(@sourceCurrency, @destCurrency, @amount); + +------Assertion + EXEC tSQLt.assertEquals @expected, @actual; +END; +GO +``` + +### Example: A variety of the possibilities of `tSQLt.AssertEquals` + +The examples below show what to expect from AssertEquals when called with different values. + +``` sql + EXEC tSQLt.AssertEquals 12345.6789, 12345.6789; -- pass + EXEC tSQLt.AssertEquals 'hello', 'hello'; -- pass + EXEC tSQLt.AssertEquals N'hello', N'hello'; -- pass + + DECLARE @datetime DATETIME; SET @datetime = CAST('12-13-2005' AS DATETIME); + EXEC tSQLt.AssertEquals @datetime, @datetime; -- pass + + DECLARE @bit BIT; SET @bit = CAST(1 AS BIT); + EXEC tSQLt.AssertEquals @bit, @bit; -- pass + + EXEC tSQLt.AssertEquals NULL, NULL; -- pass + EXEC tSQLt.AssertEquals 17, NULL; -- fail + EXEC tSQLt.AssertEquals NULL, 17; -- fail + + EXEC tSQLt.AssertEquals 12345.6789, 54321.123; -- fail + EXEC tSQLt.AssertEquals 'hello', 'goodbye'; -- fail + + DECLARE @datetime1 DATETIME; SET @datetime1 = CAST('12-13-2005' AS DATETIME); + DECLARE @datetime2 DATETIME; SET @datetime2 = CAST('07-19-2005' AS DATETIME); + EXEC tSQLt.AssertEquals @datetime1, @datetime2; -- fail + + DECLARE @bit1 BIT; SET @bit1 = CAST(1 AS BIT); + DECLARE @bit2 BIT; SET @bit2 = CAST(1 AS BIT); + EXEC tSQLt.AssertEquals @bit1, @bit2; -- pass +``` \ No newline at end of file diff --git a/docs/user-guide/assertions/assertequalsstring.md b/docs/user-guide/assertions/assertequalsstring.md new file mode 100644 index 000000000..85e09166a --- /dev/null +++ b/docs/user-guide/assertions/assertequalsstring.md @@ -0,0 +1,65 @@ +# AssertEqualsString + +## Syntax + +``` sql +tSQLt.AssertEqualsString [@expected = ] expected value + , [@actual = ] actual value + [, [@message = ] 'message' ] +``` + +## Arguments +[**@Expected** = ] expected value + +The expected value for the test. @Expected is NVARCHAR(MAX) with no default. + +[**@Actual** = ] actual value + +The actual value resulting from processing during the test. @Actual is NVARCHAR(MAX) with no default. + +[**@Message** = ] ‘message’ + +Optional. String containing an additional failure message to be used if the expected and actual values are not equal. @Message is NVARCHAR(MAX) with no default. + +## Return Code Values +Returns 0 + +## Error Raised +Raises a `failure` error if expected and actual are not equal. + +## Result Sets +None + +## Overview +`tSQLt.AssertEqualsString` compares two string values for equality. If they are not equal, the test case is failed; otherwise, `tSQLt.AssertEqualsString` does not affect test processing. For the purposes of `tSQLt.AssertEqualsString`, NULL is considered equal to NULL. Any non-NULL value is considered not equal to NULL. + +## Examples +### Example: AssertEqualsString to check the results of a function +This test case uses AssertEqualsString to compare the return result of a function with an expected value. The function formats a first and last name into a standard string for display. + +``` sql +CREATE PROC TestPerson.[test FormatName concatenates names correctly] +AS +BEGIN + DECLARE @expected NVARCHAR(MAX); SET @expected = 'Smith, John'; + DECLARE @actual NVARCHAR(MAX); + + SELECT @actual = person.FormatName('John', 'Smith'); + + EXEC tSQLt.AssertEqualsString @expected, @actual; +END; +``` + +### Example: A variety of the possibilities of AssertEqualsString + +The examples below show what to expect from AssertEqualsString when called with different values. + +``` sql +EXEC tSQLt.AssertEqualsString 'hello', 'hello'; -- pass +EXEC tSQLt.AssertEqualsString N'goodbye', N'goodbye'; -- pass +EXEC tSQLt.AssertEqualsString 'hello', N'hello'; - pass (values are compared as NVARCHAR(MAX) + +EXEC tSQLt.AssertEqualsString 'hello', NULL; -- fail +EXEC tSQLt.AssertEqualsString NULL, 'hello'; -- fail +EXEC tSQLt.AssertEqualsString NULL, NULL; -- pass +``` diff --git a/docs/user-guide/assertions/assertequalstable.md b/docs/user-guide/assertions/assertequalstable.md new file mode 100644 index 000000000..71a5e0924 --- /dev/null +++ b/docs/user-guide/assertions/assertequalstable.md @@ -0,0 +1,117 @@ +# AssertEqualsTable + +## Syntax + +``` sql +tSQLt.AssertEqualsTable [@Expected = ] 'expected table name' + , [@Actual = ] 'actual table name' + [, [@FailMsg = ] 'message' ] +``` + +## Arguments +[**@Expected** = ] expected table name + +The name of a table which contains the expected results for the test. @Expected is NVARCHAR(MAX) with no default. + +[**@Actual** = ] actual table name + +The name of a table which contains the results from processing during the test. @Actual is NVARCHAR(MAX) with no default. + +[**@FailMsg** = ] ‘message’ + +Optional. String containing an additional failure message to be used if the expected and actual values are not equal. @FailMsg is NVARCHAR(MAX) with a default of ‘unexpected/missing resultset rows!’. + +## Return Code Values +Returns 0 + +## Errors Raised +Raises a `failure` error if the contents of the expected table and the actual table are not equal. + +Certain datatypes cannot be compared with `tSQLt.AssertEqualsTable`. If the tables being compared contain an unsupported datatype, the following error will be raised: + + > The table contains a datatype that is not supported for `tSQLt.AssertEqualsTable`. + +The following datatypes are known to be unsupported by `tSQLt.AssertEqualsTable`: text, ntext, image, xml, geography, geometry, rowversion and CLR datatypes that are not marked comparable and byte ordered. + +## Result Sets +None + +## Overvoew +`tSQLt.AssertEqualsTable` compares the contents of two tables for equality. It does this by comparing each row of the tables for an exact match on all columns. If the tables do not contain the same data, the failure message displays which rows could not be matched. + +## Examples +### Example: AssertEqualsTable to check the results of a view +This test case uses AssertEqualsTable to compare the data returned by a view to an expected data set. + +``` sql +CREATE PROCEDURE testFinancialApp.[test that Report gets sales data with converted currency] +AS +BEGIN + IF OBJECT_ID('actual') IS NOT NULL DROP TABLE actual; + IF OBJECT_ID('expected') IS NOT NULL DROP TABLE expected; + +------Fake Table + EXEC tSQLt.FakeTable 'FinancialApp', 'CurrencyConversion'; + EXEC tSQLt.FakeTable 'FinancialApp', 'Sales'; + + INSERT INTO FinancialApp.CurrencyConversion (id, SourceCurrency, DestCurrency, ConversionRate) + VALUES (1, 'EUR', 'USD', 1.6); + INSERT INTO FinancialApp.CurrencyConversion (id, SourceCurrency, DestCurrency, ConversionRate) + VALUES (2, 'GBP', 'USD', 1.2); + + INSERT INTO FinancialApp.Sales (id, amount, currency, customerId, employeeId, itemId, date) + VALUES (1, '1050.00', 'GBP', 1000, 7, 34, '1/1/2007'); + INSERT INTO FinancialApp.Sales (id, amount, currency, customerId, employeeId, itemId, date) + VALUES (2, '4500.00', 'EUR', 2000, 19, 24, '1/1/2008'); + +------Execution + SELECT amount, currency, customerId, employeeId, itemId, date + INTO actual + FROM FinancialApp.Report('USD'); + +------Assertion + CREATE TABLE expected ( + amount MONEY, + currency CHAR(3), + customerId INT, + employeeId INT, + itemId INT, + date DATETIME + ); + + INSERT INTO expected (amount, currency, customerId, employeeId, itemId, date) SELECT 1260.00, 'USD', 1000, 7, 34, '2007-01-01'; + INSERT INTO expected (amount, currency, customerId, employeeId, itemId, date) SELECT 7200.00, 'USD', 2000, 19, 24, '2008-01-01'; + + EXEC tSQLt.AssertEqualsTable 'expected', 'actual'; +END; +GO +``` + +## Understanding The Output +When the two tables being compared contain different data, the results are displayed as a text table in the failure message. The first column of this text table (\_m\_) describes the result of the comparison. The symbol “<” indicates that the row was found in the Expected table but did not match anything in the Actual table. The symbol “>” indicates that the row was found in the Actual table but not in the Expected table. Finally, the symbol “=” indicates that the row was matched between the Expected and Actual tables. + +For example, consider the following Expected and Actual tables: + +Expected +|col1|col2|col3| +|---|---|---| +|1|A|a| +|2|B|b| +|3|C|c| + +Actual +|col1|col2|col3| +|---|---|---| +|1|A|a| +|3|X|c| + +These tables would result in the following failure message: + + +`failed: unexpected/missing resultset rows!` +|_m_|col1|col2|col3| +|---|---|---|---| +|< |2 |B |b | +|< |3 |C |c | +|= |1 |A |a | +|> |3 |X |c | diff --git a/docs/user-guide/assertions/assertequalstableschema.md b/docs/user-guide/assertions/assertequalstableschema.md new file mode 100644 index 000000000..9be7fb087 --- /dev/null +++ b/docs/user-guide/assertions/assertequalstableschema.md @@ -0,0 +1,36 @@ +# AssertqualsTableSchema + +## Syntax + +``` sql +tSQLt.AssertEqualsTableSchema [@Expected = ] 'expected table name' + , [@Actual = ] 'actual table name' + [, [@FailMsg = ] 'message' ] +``` + +## Arguments +[**@Expected** = ] expected table name + +The name of a table with the expected columns (and data types). @Expected is NVARCHAR(MAX) with no default. + +[**@Actual** = ] actual table name + +The name of a table created as the result from processing during the test. @Actual is NVARCHAR(MAX) with no default. + +[**@FailMsg** = ] ‘message’ + +Optional. String containing an additional failure message to be used if the expected and actual values are not equal. @FailMsg is NVARCHAR(MAX) with a default of ‘unexpected/missing resultset rows!’. + +## Return Code Values +Returns 0 + +## Errors Raised +Raises a `failure` error if the contents of the expected table and the actual table are not equal. + +## Result Sets +None + +## Overview +`tSQLt.AssertEqualsTableSchema` works like `tSQLt.AssertEqualsTable`, but instead of comparing the table contents, it compares the table compares the table schemata. + +Under the hood, `tSQLt.AssertEqualsTableSchema` calls `tSQLt.AssertEqualsTable` on the table metadata. For details of how to interpret its output, check out the `tSQLt.AssertEqualsTable` [documentation](assertequalstable.md). \ No newline at end of file diff --git a/docs/user-guide/assertions/assertlike.md b/docs/user-guide/assertions/assertlike.md new file mode 100644 index 000000000..36e9faa58 --- /dev/null +++ b/docs/user-guide/assertions/assertlike.md @@ -0,0 +1,74 @@ +# AssertLike + +## Syntax + +``` sql +tSQLt.AssertLike [@ExpectedPattern = ] expected pattern + , [@Actual = ] actual value + [, [@Message = ] 'message' ] +``` + +## Arguments + +[**@ExpectedPattern** = ] expected pattern + +An NVARCHAR pattern that may contain regular characters and wildcard characters. ExpectedPattern uses the same pattern syntax as the SQL LIKE keyword. + +[**@Actual** = ] actual value + +The actual value resulting from processing during the test. @Actual is an NVARCHAR(MAX) with no default. + +[**@Message** = ] ‘message’ + +Optional. String containing an additional failure message to be used if ExpectedPattern does not match the specified actual value. @message is NVARCHAR(MAX) with no default. + +## Return Code Values + +Returns 0 + +## Error Raised + +Raises a `failure` error if the expected pattern does not match the actual value provided. + +Raises an `@ExpectedPattern may not exceed 4000 characters` error if the value passed for @ExpectedPattern is more than 4000 characters in length. This is due to a limitation in SQL Server’s LIKE keyword. + +## Result Sets + +None + +## Overview + +`tSQLt.AssertLike` checks if the actual value matches the expected pattern. If it does not match, the test case is failed; otherwise, `tSQLt.AssertLike` does not affect test processing. For the purposes of `tSQLt.AssertLike`, NULL is considered LIKE to NULL. Any non-NULL value is considered not LIKE to NULL. + +## Examples + +### Example: AssertLike to check the results of a function + +This test case uses AssertLike to compare the return result of a function with an expected value. + +``` sql +CREATE PROC TestPerson.[test FormatName concatenates names correctly] +AS +BEGIN + DECLARE @actual NVARCHAR(MAX); + + SELECT @actual = person.FormatName('John', 'Smith'); + + EXEC tSQLt.AssertLike 'John%Smith', @actual; +END; +``` + +### Example: A variety of the possibilities of AssertLike + +The examples below show what to expect from AssertLike when called with different values. + +``` sql +EXEC tSQLt.AssertLike 'hello', 'hello'; -- pass +EXEC tSQLt.AssertLike '%el%', 'hello'; - pass +EXEC tSQLt.AssertLike 'h_llo', 'hello'; - pass +EXEC tSQLt.AssertLike '%oo%', 'hello'; - fail + +EXEC tSQLt.AssertLike 'hello', NULL; -- fail +EXEC tSQLt.AssertLike NULL, 'hello'; -- fail +EXEC tSQLt.AssertLike NULL, NULL; -- pass +``` diff --git a/docs/user-guide/assertions/assertnotequals.md b/docs/user-guide/assertions/assertnotequals.md new file mode 100644 index 000000000..3850ddf19 --- /dev/null +++ b/docs/user-guide/assertions/assertnotequals.md @@ -0,0 +1,41 @@ +# AssertNotEquals + +## Syntax + +``` sql +tSQLt.AssertNotEquals [@expected = ] expected value + , [@actual = ] actual value + [, [@message = ] 'message' ] +``` + +## Arguments + +[**@expected** = ] expected value + +The expected value for the test. @expected is SQL_VARIANT with no default. + +[**@actual** = ] actual value + +The actual value resulting from processing during the test. @actual is SQL_VARIANT with no default. + +[**@message** = ] ‘message’ + +Optional. String containing an additional failure message to be used if the expected and actual values are equal. @message is NVARCHAR(MAX) with no default. + +## Return Code Values + +Returns 0 + +## Error Raised + +Raises a `failure` error if expected and actual are equal. + +Raises an `Operand type clash` error if the value passed for @expected or @actual is not compatible with SQL_VARIANT. + +## Result Sets + +None + +## Overview + +AssertNotEquals compares two values for inequality. If they are equal, the test case is failed; otherwise, AssertNotEquals does not affect test processing. For the purposes of AssertNotEquals, NULL is considered equal to NULL. Any non-NULL value is considered not equal to NULL. \ No newline at end of file diff --git a/docs/user-guide/assertions/assertobjectdoesnotexist.md b/docs/user-guide/assertions/assertobjectdoesnotexist.md new file mode 100644 index 000000000..1452d4509 --- /dev/null +++ b/docs/user-guide/assertions/assertobjectdoesnotexist.md @@ -0,0 +1,49 @@ +# AssertObjectDoesNotExist + +## Syntax + +``` sql +tSQLt.AssertObjectDoesNotExist [@objectName = ] 'object name' + [, [@message = ] 'message' ] +``` + +## Arguments + +[**@objectName** = ] ‘object name’ + +The name of a database object which you want to assert non-existence. @objectName is NVARCHAR(MAX) with no default. + +[**@message** = ] ‘message’ + +Optional. String containing an additional failure message to be used if the object does not exist. @message is NVARCHAR(MAX) with no default. + +## Return Code Values +Returns 0 + +## Error Raised +Raises a `failure` error if the specified object does exist. + +## Result Sets +None + +## Overview + +AssertObjectDoesNotExists checks to see that an object with the specified name does not exists in the database. If the name begins with a ‘#’, indicating it is a temporary object (such as a temporary table), then tempdb is checked for the object. + +## Examples + +### Example: Using AssertObjectDoesNotExists to check if an object was dropped + +This test case uses AssertObjectDoesNotExists to test that a stored procedure drops another stored procedure based on the supplied name. + +``` sql +CREATE PROC TestTemplateUtil.[test DropProcedure drops a stored procedure] +AS +BEGIN + EXEC('CREATE PROC dbo.MyProcedure AS RETURN 0;'); + + EXEC TemplateUtil.DropProcedure 'dbo.MyProcedure'; + + EXEC tSQLt.AssertObjectDoesNotExists 'dbo.MyProcedure'; +END; +``` diff --git a/docs/user-guide/assertions/assertobjectexists.md b/docs/user-guide/assertions/assertobjectexists.md new file mode 100644 index 000000000..d550125f2 --- /dev/null +++ b/docs/user-guide/assertions/assertobjectexists.md @@ -0,0 +1,49 @@ +# AssertObjectExists + +## Syntax + +``` sql +tSQLt.AssertObjectExists [@objectName = ] 'object name' + [, [@message = ] 'message' ] +``` + +## Arguments + +[**@objectName** = ] ‘object name’ + +The name of a database object which you want to assert existence. @objectName is NVARCHAR(MAX) with no default. + +[**@message** = ] ‘message’ + +Optional. String containing an additional failure message to be used if the object does not exist. @message is NVARCHAR(MAX) with no default. + +## Return Code Values +Returns 0 + +## Error Raised +Raises a `failure` error if the specified object does not exist. + +## Result Sets +None + +## Overview + +AssertObjectExists checks to see if an object with the specified name exists in the database. If the object name begins with a ‘#’, indicating it is a temporary object (such as a temporary table), then tempdb is searched for the object. + +## Examples + +### Example: Using AssertObjectExists to check if an object was created + +This test case uses AssertObjectExists to test that a stored procedure creates a new stored procedure based on the supplied table name. + +``` sql +CREATE PROC TestTemplateUtil.[test CreateTableTemplate creates an update stored procedure] +AS +BEGIN + CREATE TABLE MyTable (i INT); + + EXEC TemplateUtil.CreateTableTemplate 'MyTable'; + + EXEC tSQLt.AssertObjectExists 'UpdateMyTable'; +END; +``` diff --git a/docs/user-guide/assertions/assertresultsetshavesamemetadata.md b/docs/user-guide/assertions/assertresultsetshavesamemetadata.md new file mode 100644 index 000000000..0e9d3853d --- /dev/null +++ b/docs/user-guide/assertions/assertresultsetshavesamemetadata.md @@ -0,0 +1,49 @@ +# AssertResultSetsHaveSameMetaData + +## Syntax + +``` sql +tSQLt.AssertResultSetsHaveSameMetaData [@expectedCommand = ] 'expected command' + , [@actualCommand = ] 'actual command' +``` + +## Arguments + +[**@expectedCommand** = ] ‘expected command’ + +A command which returns a result set with the expected meta data to compare with. @expectedCommand is NVARCHAR(MAX) with no default. + +[**@actualCommand** = ] ‘actual command’ + +The actual result set whose meta data should be compared with the meta data of the result set from the expected command. @actualCommand is NVARCHAR(MAX) with no default. + +## Return Code Values +Returns 0 + +## Error Raised +Raises a `failure` error if the meta data of the expected command and the meta data of the actual command are not equal. + +## Result Sets +None + +## Overview + +AssertResultSetsHaveSameMetaData executes the expected command and actual command, capturing the result sets from each. The meta data (i.e. the column names and properties) are compared between the two result sets. If they meta data contains differences, then AssertResultSetsHaveSameMetaData fails the test. + +This may be useful, for example, when testing a stored procedure which returns a result set and the names and data types of the columns should be validated. + +## Examples + +## Example: AssertResultSetsHaveSameMetaData to check the meta data properties of a view + +This test case uses AssertResultSetsHaveSameMetaData to check that the meta data of the EmployeeAgeReport view. The view’s meta data is compared against a query provided in the @expectedCommand parameter. + +``` sql +CREATE PROC TestHumanResources.[test EmployeeAgeReport has appropriate meta data] +AS +BEGIN + EXEC tSQLt.AssertResultSetsHaveSameMetaData + 'SELECT CAST(''A'' AS VARCHAR(1000)) AS name, CAST(30 AS SMALLINT) AS age', + 'SELECT name, age FROM HumanResources.EmployeeAgeReport'; +END; +``` diff --git a/docs/user-guide/assertions/fail.md b/docs/user-guide/assertions/fail.md new file mode 100644 index 000000000..71e39e766 --- /dev/null +++ b/docs/user-guide/assertions/fail.md @@ -0,0 +1,71 @@ +# Fail + +## Syntax + +``` sql +tSQLt.Fail [ [@Message0 = ] message part ] + [, [@Message1 = ] message part ] + [, [@Message2 = ] message part ] + [, [@Message3 = ] message part ] + [, [@Message4 = ] message part ] + [, [@Message5 = ] message part ] + [, [@Message6 = ] message part ] + [, [@Message7 = ] message part ] + [, [@Message8 = ] message part ] + [, [@Message9 = ] message part ] +``` + +## Arguments + +[**@Message0 – @Message9** = ] message part + +Optional. The message parts contain the message which will be displayed as the failure message for the test case. Multiple parameters are provided so that the caller does not have to first build up a string variable to pass to the fail procedure. All @Message parameters are NVARCHAR(MAX) with a default of an empty string. + + +## Return Code Values + +Returns 0 + +## Error Raised + +Raises a `failure` error when called, resulting in failure of the test case. + +## Result Sets + +None + +## Overview + +Fail simply fails a test case with the specified failure message. Frequently, use of one of the tSQLt.Assert… procedures is more appropriate. However, there are times when calling Fail is the only option or more convenient. + +## Examples + +### Example: Using Fail to check that a randomly generated number is in the expected range + +This test case repeatedly calls a random number generator. If the generated random number is ever outside of the specified range, the test case is failed using the tSQLt.Fail procedure. This example also demonstrates passing multiple message parameters to Fail: + +``` sql +CREATE PROCEDURE testRandom.[test GetRandomInt(1,10) does not produce values less than 1 or greater than 10] +AS +BEGIN + SET NOCOUNT ON; + + EXEC Random.SeedRandomOnTime; + + DECLARE @numTrials INT; SET @numTrials = 10000; + DECLARE @i INT; SET @i = 0; + DECLARE @r INT; + + WHILE @i < @numTrials + BEGIN + EXEC Random.GetRandomInt 1, 10, @r OUTPUT; + IF @r < 1 OR @r > 10 + BEGIN + EXEC tSQLt.Fail 'Invalid random value returned: ', @r; + END; + + SET @i = @i + 1; + END; +END; +GO +``` diff --git a/docs/user-guide/assertions/index.md b/docs/user-guide/assertions/index.md new file mode 100644 index 000000000..abebffe0a --- /dev/null +++ b/docs/user-guide/assertions/index.md @@ -0,0 +1,15 @@ +# Assertions + +This section contains the various assertion stored procedures which can be used to compare values. Also included is the Fail stored procedure which marks a test case as failed. + +- [AssertEmptyTable](assertemptytable.md) +- [AssertEquals](assertequals.md) +- [AssertEqualsString](assertequalsstring.md) +- [AssertEqualsTable](assertequalstable.md) +- [AssertEqualsTableSchema](assertequalstableschema.md) +- [AssertNotEquals](assertnotequals.md) +- [AssertObjectDoesNotExist](assertobjectdoesnotexist.md) +- [AssertObjectExists](assertobjectexists.md) +- [AssertResultSetsHaveSameMetaData](assertresultsetshavesamemetadata.md) +- [Fail](fail.md) +- [AssertLike](assertlike.md) From 6ac2b09fd25184b2aaa47318e8cf013a77fd818c Mon Sep 17 00:00:00 2001 From: Crystal A <90483307+oishii-matcha@users.noreply.github.com> Date: Sun, 22 May 2022 16:36:56 -0400 Subject: [PATCH 27/27] GitHub pages - isolating dependencies (#172) * created isolating dependencies folder * Add Isolating dependencies landing page * Add Apply constraint page * Add Apply trigger page * Created pages for isolating dependencies * Updated index.md * Add Fake function page Co-authored-by: olhakonst17 <58791358+olhakonst17@users.noreply.github.com> --- .../isolating-dependencies/applyconstraint.md | 108 ++++++++++++++++ .../isolating-dependencies/applytrigger.md | 64 +++++++++ .../isolating-dependencies/fakefunction.md | 92 +++++++++++++ .../isolating-dependencies/faketable.md | 91 +++++++++++++ .../isolating-dependencies/index.md | 11 ++ .../isolating-dependencies/removeobject.md | 74 +++++++++++ .../removeobjectifexists.md | 21 +++ .../isolating-dependencies/spyprocedure.md | 122 ++++++++++++++++++ 8 files changed, 583 insertions(+) create mode 100644 docs/user-guide/isolating-dependencies/applyconstraint.md create mode 100644 docs/user-guide/isolating-dependencies/applytrigger.md create mode 100644 docs/user-guide/isolating-dependencies/fakefunction.md create mode 100644 docs/user-guide/isolating-dependencies/faketable.md create mode 100644 docs/user-guide/isolating-dependencies/index.md create mode 100644 docs/user-guide/isolating-dependencies/removeobject.md create mode 100644 docs/user-guide/isolating-dependencies/removeobjectifexists.md create mode 100644 docs/user-guide/isolating-dependencies/spyprocedure.md diff --git a/docs/user-guide/isolating-dependencies/applyconstraint.md b/docs/user-guide/isolating-dependencies/applyconstraint.md new file mode 100644 index 000000000..e349c43d2 --- /dev/null +++ b/docs/user-guide/isolating-dependencies/applyconstraint.md @@ -0,0 +1,108 @@ +# ApplyConstraint +## Syntax + +``` sql +tSQLt.ApplyConstraint [@TableName = ] 'table name' + , [@ConstraintName = ] 'constraint name' + , [@SchemaName = ] 'schema name' +``` + +## Arguments + +[**@TableName** = ] ‘table name’ + +The name of the table where the constraint should be applied. Should contain both the schema name and the table name. + +[**@ConstraintName** = ] ‘constraint name’ + +The name of the constraint to be applied. Should not include the schema name or table name. + +[**@SchemaName** = ] ‘schema name’ – **Deprecated: do not use, will be removed in future version** + +## Return code values +Returns 0 + +## Error raised + +If the specified table or constraint does not exist an error is thrown: ApplyConstraint could not resolve the object names, ‘%s’, ‘%s’. + +## Result sets +None + +## Overview +We want to be able to test constraints individually. We can use FakeTable to remove all the constraints on a table, and ApplyConstraint to add back in the one which we want to test. + +ApplyConstraint in combination with FakeTable allows constraints to be tested in isolation of other constraints on a table. + +## Limitations +ApplyConstraint works with the following constraint types: + +- CHECK constraints +- FOREIGN KEY constraints +- UNIQUE constraints +- PRIMARY KEY constraints + +There are the following limitations: + +- Cascade properties of FOREIGN KEY constraints are not preserved. +- SQL Server automatically creates unique indexes for UNIQUE and PRIMARY KEY constraints. Those indexes for “applied” constraints do not preserve asc/desc properties of the original supporting indexes. + +Note: Applying a PRIMARY KEY constraint will automatically change the involved columns of the faked table to be “NOT NULL”able. + +## Examples +**Example: Using ApplyConstraint to test a Foreign Key Constraint** + +In this example, we have a foreign key constraint on the ReferencingTable. We would like to test this constraint and have two test cases. + +The first test ensures that the foreign key prevents inappropriate inserts. It does this by faking the two tables involved and then calling ApplyConstraint. Then an attempt is made to insert a record into the ReferencingTable with no record in the ReferencedTable. The exception is caught and the test passes or fails based on this exception. + +The second test makes sure that appropriate records can be inserted. Again, the two tables are faked and ApplyConstraint is called. If any exception is thrown when we attempt to insert a record into ReferencingTable, the test will fail (because any uncaught exception will cause a test to fail). + +``` sql +EXEC tSQLt.NewTestClass 'ConstraintTests'; +GO + +CREATE PROCEDURE ConstraintTests.[test ReferencingTable_ReferencedTable_FK prevents insert of orphaned rows] +AS +BEGIN + EXEC tSQLt.FakeTable 'dbo.ReferencedTable'; + EXEC tSQLt.FakeTable 'dbo.ReferencingTable'; + + EXEC tSQLt.ApplyConstraint 'dbo.ReferencingTable','ReferencingTable_ReferencedTable_FK'; + + DECLARE @ErrorMessage NVARCHAR(MAX); SET @ErrorMessage = ''; + + BEGIN TRY + INSERT INTO dbo.ReferencingTable + ( id, ReferencedTableId ) + VALUES ( 1, 11 ) ; + END TRY + BEGIN CATCH + SET @ErrorMessage = ERROR_MESSAGE(); + END CATCH + + IF @ErrorMessage NOT LIKE '%ReferencingTable_ReferencedTable_FK%' + BEGIN + EXEC tSQLt.Fail 'Expected error message containing ''ReferencingTable_ReferencedTable_FK'' but got: ''',@ErrorMessage,'''!'; + END + +END +GO + +CREATE PROCEDURE ConstraintTests.[test ReferencingTable_ReferencedTable_FK allows insert of non-orphaned rows] +AS +BEGIN + EXEC tSQLt.FakeTable 'dbo.ReferencedTable'; + EXEC tSQLt.FakeTable 'dbo.ReferencingTable'; + + EXEC tSQLt.ApplyConstraint 'dbo.ReferencingTable','ReferencingTable_ReferencedTable_FK'; + + INSERT INTO dbo.ReferencedTable + ( id ) + VALUES ( 11 ) ; + INSERT INTO dbo.ReferencingTable + ( id, ReferencedTableId ) + VALUES ( 1, 11 ) ; +END +GO +``` \ No newline at end of file diff --git a/docs/user-guide/isolating-dependencies/applytrigger.md b/docs/user-guide/isolating-dependencies/applytrigger.md new file mode 100644 index 000000000..a3a2aa3a7 --- /dev/null +++ b/docs/user-guide/isolating-dependencies/applytrigger.md @@ -0,0 +1,64 @@ +# ApplyTrigger +## Syntax + +``` sql +tSQLt.ApplyTrigger [@TableName = ] 'table name' + , [@TriggerName = ] 'trigger name' +``` + +## Arguments + +[**@TableName** = ] ‘table name’ +The name of the table where the constraint should be applied. Should contain both the schema name and the table name. + +[**@TriggerName** = ] ‘trigger name’ + +The name of the trigger to be applied. Should not include the schema name or table name. + +## Return code values +Returns 0 + +## Error raised +If the specified table or trigger does not exist an error is thrown. + +## Result sets +None + +## Overview +We want to be able to test triggers individually. We can use FakeTable to remove all the constraints and triggers from a table, and ApplyTrigger to add back in the one which we want to test. + +ApplyTrigger in combination with FakeTable allows triggers to be tested in isolation of constraints and other triggers on a table. + +## Examples +**Example: Using ApplyTrigger to test a trigger** + +In this example, the test isolates the AuditInserts trigger from other constraints and triggers on the Registry.Student table. This allows us to test that the trigger inserts a record into the Logs.Audit table when a new student is inserted into the Student table. + +``` sql +EXEC tSQLt.NewTestClass 'AuditTests'; +GO + +CREATE PROCEDURE AuditTests.[test inserting record into Student table creates Audit record] +AS +BEGIN + EXEC tSQLt.FakeTable 'Registry.Student'; + EXEC tSQLt.FakeTable @TableName = 'Logs.Audit'; + EXEC tSQLt.ApplyTrigger 'Registry.Student', 'AuditInserts'; + + INSERT INTO Registry.Student (StudentId) VALUES (1); + + SELECT LogMessage + INTO #Actual + FROM Logs.Audit; + + SELECT TOP(0) * + INTO #Expected + FROM #Actual; + + INSERT INTO #Expected + VALUES('Student record created, id = 1'); + + EXEC tSQLt.AssertEqualsTable '#Expected','#Actual'; +END; +GO +``` \ No newline at end of file diff --git a/docs/user-guide/isolating-dependencies/fakefunction.md b/docs/user-guide/isolating-dependencies/fakefunction.md new file mode 100644 index 000000000..679b87fc0 --- /dev/null +++ b/docs/user-guide/isolating-dependencies/fakefunction.md @@ -0,0 +1,92 @@ +# FakeFunction + +## Syntax + +``` sql +tSQLt.FakeFunction [@FunctionName = ] 'function name' + , [@FakeFunctionName = ] 'fake function name' +``` + +## Arguments + +[**@FunctionName** = ] ‘function name’ + +The name of an existing function. @FunctionName is NVARCHAR(MAX) with no default. @FunctionName should include the schema name of the function. For example: MySchema.MyFunction + +[**@FakeFunctionName** = ] ‘fake function name’ + +The name of an existing function that will replace the function defined by @FunctionName during the test. @FakeFunctionName is NVARCHAR(MAX) with no default. + +## Return code values +Returns 0 + +## Error raised + +If the function itself or the fake function does not exist, the follow error is raised: ‘function name’ does not exist + +If the function and the fake function are not compatible function types (i.e. they must both be scalar functions or both be table valued functions), the following error is raised: Both parameters must contain the name of either scalar or table valued functions! + +If the parameters of the function and fake function are not the same, the following error is raised: Parameters of both functions must match! (This includes the return type for scalar functions.) + +## Result sets +None + +## Overview +Code that calls a function can be difficult to test if that function performs significant logic. We want to isolate the code we are testing from the logic buried in the functions that it calls. To create independent tests, we can replace a called function with a fake function. The fake function will perform much simpler logic that supports the purpose of our test. Often, the fake function will simply return a hard-coded value. + +Alternatively, the fake function may ‘validate’ the parameters it receives by returning one value if the parameters match expectations, and another value if the parameters do not match expectations. That way the code that calls the function will have a different result and thus the parameter passed to the function can be tested. + +## Warnings +Remember that if you are faking a function, you are not testing that function. Your test is trying to test something else: typically, the logic of a view, stored procedure or another function that interacts with the function you are faking. + +## Examples +**Example: Using FakeFunction to avoid executing the logic of a complex function** + +In this example, we want to test a sales report view, SalesReport. The sales report view will return the EmployeeId, RevenueFromSales (the total amount of new revenue the employee generated) and their Commission. (The commision has to be calculated with a complex algorithm using RevenueFromSales and values read from the EmployeeCompensation table. This computation is done by the ComputeCommision scalar function.) + +Since we are testing the SalesReport view, we will fake the ComputeCommission function. + +``` sql +EXEC tSQLt.NewTestClass 'SalesAppTests'; +GO + +CREATE FUNCTION SalesAppTests.Fake_ComputeCommission ( + @EmployeeId INT, + @RevenueFromSales DECIMAL(10,4) +) +RETURNS DECIMAL(10,4) +AS +BEGIN + RETURN 1234.5678; +END; +GO + +CREATE PROCEDURE SalesAppTests.[test SalesReport returns revenue and commission] +AS +BEGIN +-------Assemble + EXEC tSQLt.FakeFunction 'SalesApp.ComputeCommission', 'SalesAppTests.Fake_ComputeCommission'; + EXEC tSQLt.FakeTable 'SalesApp.Employee'; + EXEC tSQLT.FakeTable 'SalesApp.Sales'; + + INSERT INTO SalesApp.Employee (EmployeeId) VALUES (1); + INSERT INTO SalesApp.Sales (EmployeeId, SaleAmount) VALUES (1, 10.1); + INSERT INTO SalesApp.Sales (EmployeeId, SaleAmount) VALUES (1, 20.2); + +-------Act + SELECT EmployeeId, RevenueFromSales, Commission + INTO SalesAppTests.Actual + FROM SalesApp.SalesReport; + +-------Assert + SELECT TOP(0) * + INTO SalesAppTests.Expected + FROM SalesAppTests.Actual; + + INSERT INTO SalesAppTests.Expected (EmployeeId, RevenueFromSales, Commission) + VALUES (1, 30.3, 1234.5678); + + EXEC tSQLt.AssertEqualsTable 'SalesAppTests.Expected', 'SalesAppTests.Actual'; +END; +GO +``` \ No newline at end of file diff --git a/docs/user-guide/isolating-dependencies/faketable.md b/docs/user-guide/isolating-dependencies/faketable.md new file mode 100644 index 000000000..056809bf4 --- /dev/null +++ b/docs/user-guide/isolating-dependencies/faketable.md @@ -0,0 +1,91 @@ +# FakeTable + +## Syntax + +```sql +tSQLt.FakeTable [@TableName = ] 'table name' + , [[@SchemaName = ] 'schema name'] + , [[@Identity = ] 'preserve identity'] + , [[@ComputedColumns = ] 'preserve computed columns'] + , [[@Defaults = ] 'preserve default constraints'] +``` + +## Arguments + +[**@TableName =** ] ‘table name’ + +The name of the table for which to create a fake table. Should contain both the schema name and the table name. + +[**@SchemaName =** ] ‘schema name’ – **Deprecated: do not use, will be removed in future version** + +[**@Identity =** ] ‘preserve identity’ – Indicates if the identity properties of an identity column should be preserved. If @Identity = 1, the identity properties will be preserved, otherwise the faked table will have the identity properties removed. The default is @Identity = 0. + +[**@ComputedColumns =** ] ‘preserve computed columns’ – Indicates if the computations on computed columns should be preserved. If @ComputedColumns = 1, the computations will be preserved, otherwise the faked table will have computations removed from computed columns. The default is @ComputedColumns = 0. + +[**@Defaults =** ] ‘preserve default constraints’ – Indicates if the default constraints on columns should be preserved. If @Defaults = 1, default constraints will be preserved for all columns on the faked table, otherwise the faked table will not contain default constraints. The default is @Defaults = 0. + +## Return Code Values + +Returns 0 + +## Error Raised + +If the specified table does not exist an error is thrown: FakeTable could not resolve the object name, ‘%s’. + +## Result Sets + +None + +## Overview + +We want to keep our test cases focused and do not want to insert data which is irrelevant to the current test. However, table and column constraints can make this difficult. + +FakeTable allows tests to be written in isolation of the constraints on a table. FakeTable creates an empty version of the table without the constraints in place of the specified table. Therefore any statements which access the table during the execution of the test case are actually working against the fake table with no constraints. When the test case completes, the original table is put back in place because of the rollback which tSQLt performs at the end of each test case. + +FakeTable can be called on Tables, Views and Synonyms (A Synonym has to point to a table or view in the current database.) + +## Limitations + +FakeTable cannot be used with temporary tables (tables whose names begin with # or ##). + +## Warnings + +Remember if you are faking a table, you are not testing the constraints on the table. You will want test cases that also exercise the constraints on the table. See Also: ApplyConstraint. + +## Examples + +**Example: Faking a table to create test data to test a view** + +In this example, we have a FinancialApp.ConvertCurrencyUsingLookup view which accesses the FinancialApp.CurrencyConversion table. In order to test the view, we want to freely insert data into the table. FakeTable is used to remove the constraints from the CurrencyConversion table so that the data record can be inserted. + +```sql +CREATE PROCEDURE testFinancialApp.[test that ConvertCurrencyUsingLookup converts using conversion rate in CurrencyConversion table] +AS +BEGIN + DECLARE @expected MONEY; SET @expected = 3.2; + DECLARE @actual MONEY; + DECLARE @amount MONEY; SET @amount = 2.00; + DECLARE @sourceCurrency CHAR(3); SET @sourceCurrency = 'EUR'; + DECLARE @destCurrency CHAR(3); SET @destCurrency = 'USD'; + +------Fake Table + EXEC tSQLt.FakeTable 'FinancialApp.CurrencyConversion'; + + INSERT INTO FinancialApp.CurrencyConversion (id, SourceCurrency, DestCurrency, ConversionRate) + VALUES (1, @sourceCurrency, @destCurrency, 1.6); +------Execution + SELECT @actual = amount FROM FinancialApp.ConvertCurrencyUsingLookup(@sourceCurrency, @destCurrency, @amount); + +------Assertion + EXEC tSQLt.assertEquals @expected, @actual; +END; +GO +``` + +**Example: Calling FakeTable with @Identity = 1** + +We need to specify the @Identity parameter explicitly because the second parameter (@SchemaName) has been deprecated. This same pattern applies to @ComputedColumns and @Defaults. + +```sql +EXEC tSQLt.FakeTable 'FinancialApp.CurrencyConversion', @Identity = 1; +``` \ No newline at end of file diff --git a/docs/user-guide/isolating-dependencies/index.md b/docs/user-guide/isolating-dependencies/index.md new file mode 100644 index 000000000..df60d0730 --- /dev/null +++ b/docs/user-guide/isolating-dependencies/index.md @@ -0,0 +1,11 @@ +# Isolating dependencies + +This group of objects enables you to isolate the are of code which you are testing. When you are unit testing a complex system, it is desirable to isolate certain parts to test. For example, if you have a complicated set of tables which are related through foreign keys, it can be very difficult to insert test data into one of the tables. The objects in this section provide the ability to focus on a single unit to test. + +- [ApplyConstraint](applyconstraint.md) +- [ApplyTrigger](applytrigger.md) +- [FakeFunction](fakefunction.md) +- [FakeTable](faketable.md) +- [RemoveObject](removeobject.md) +- [RemoveObjectIfExists](removeobjectifexists.md) +- [SpyProcedure](spyprocedure.md) \ No newline at end of file diff --git a/docs/user-guide/isolating-dependencies/removeobject.md b/docs/user-guide/isolating-dependencies/removeobject.md new file mode 100644 index 000000000..b78e09bfb --- /dev/null +++ b/docs/user-guide/isolating-dependencies/removeobject.md @@ -0,0 +1,74 @@ +# RemoveObject + +## Syntax + +```sql +tSQLt.RemoveObject [@ObjectName= ] 'object name' + [, [@NewName = ] 'new object name' OUTPUT] + [, [@IfExists = ] ( 0 | 1 )] +``` + +## Arguments + +[**@ObjectName =** ] ‘object name’ + +The name of the object to be renamed. The name should include both the schema and object name. + +[**@NewName =** ] ‘new object name’ OUTPUT + +The automatically generated name the object was given after being renamed. This is an output parameter only. If a value is provided here as input, it will not be used. + +[**@IfExists =** ] ( 0 | 1 ) + +If @IfExists = 0 is passed, an error is raised if the object does not exist. @IfExists = 1 causes tSQLt.RemoveObject to be a NoOp if the object does not exist. The default is 0. + +## Return Code Values + +Returns 0 + +## Error Raised + +If the specified object does not exist an error is thrown: %s does not exist. + +## Result Sets + +None + +## Overview +Often times an object needs to be replaced with a mock. The first step in replacing an object with a mock is to remove the original object. tSQLt.RemoveObject removes the original object by renaming it. The new name for the object is automatically generated to avoid collisions with other objects. + +For tables and stored procedures, please refer to [FakeTable](faketable.md) and [SpyProcedure](spyprocedure.md), respectively. + +## Examples + +**Example: Replacing a function with a stub** + +In this example, we are testing that GetRecentUsers view returns only users from the past 10 minutes. In this example, we have a util.GetCurrentDate function which returns the current date and is used by GetRecentUsers. For the purposes of our test, we want to return a constant date. RemoveObject is called so that we can create a stub function which returns a hard-coded value. + +```sql +CREATE PROCEDURE GetRecentUsersTests.[test that GetRecentUsers returns users from the past 10 minutes] +AS +BEGIN + EXEC tSQLt.FakeTable 'dbo.Users'; + INSERT INTO dbo.Users (username, startdate) VALUES ('bob', '2013-03-15 11:59:59'); + INSERT INTO dbo.Users (username, startdate) VALUES ('joe', '2013-03-15 12:00:00'); + INSERT INTO dbo.Users (username, startdate) VALUES ('sue', '2013-03-15 12:01:00'); + + EXEC tSQLt.RemoveObject 'util.GetCurrentDate'; + EXEC ('CREATE FUNCTION util.GetCurrentDate() RETURNS datetime AS BEGIN RETURN ''2013-03-15 12:10:00''; END;'); + + SELECT username, startdate + INTO #Actual + FROM dbo.GetRecentUsers; + + SELECT TOP(0) * + INTO #Expected + FROM #Actual; + + INSERT INTO #Expected (username, startdate) VALUES ('joe', '2013-03-15 12:00:00'); + INSERT INTO #Expected (username, startdate) VALUES ('sue', '2013-03-15 12:01:00'); + + EXEC tSQLt.AssertEqualsTable '#Expected', '#Actual'; +END; +GO +``` \ No newline at end of file diff --git a/docs/user-guide/isolating-dependencies/removeobjectifexists.md b/docs/user-guide/isolating-dependencies/removeobjectifexists.md new file mode 100644 index 000000000..41333cb5c --- /dev/null +++ b/docs/user-guide/isolating-dependencies/removeobjectifexists.md @@ -0,0 +1,21 @@ +# RemoveObjectIfExists + +## Syntax + +```sql +tSQLt.RemoveObjectIfExists [@ObjectName= ] 'object name' + [, [@NewName = ] 'new object name' OUTPUT] +``` + +## Arguments + +[**@ObjectName =** ] ‘object name’ + +The name of the object to be renamed. The name should include both the schema and object name. + +[**@NewName =** ] ‘new object name’ OUTPUT + +The automatically generated name the object was given after being renamed. This is an output parameter only. If a value is provided here as input, it will not be used. + +## Overview +`tSQLt.RemoveObjectIfExists` is a short form of `tSQLt.RemoveObject` with @IfExist = 1. See there for details. \ No newline at end of file diff --git a/docs/user-guide/isolating-dependencies/spyprocedure.md b/docs/user-guide/isolating-dependencies/spyprocedure.md new file mode 100644 index 000000000..86ed4c24a --- /dev/null +++ b/docs/user-guide/isolating-dependencies/spyprocedure.md @@ -0,0 +1,122 @@ +# SpyProcedure + +## Syntax + +```sql +tSQLt.SpyProcedure [@ProcedureName = ] 'procedure name' + [, [@CommandToExecute = ] 'command' ] +``` + +## Arguments +[**@ProcedureName =** ] ‘procedure name’ + +The name of an existing stored procedure. @ProcedureName is NVARCHAR(MAX) with no default. @ProcedureName should include the schema name of the stored procedure. For example: +MySchema.MyProcedure + +[**@CommandToExecute =** ] ‘command’ + +An optional command to execute when a call to Procedure Name is made. @CommandToExecute is NVARCHAR(MAX) with no default. + +## Return Code Values + +Returns 0 + +## Error Raised + +If the procedure contains more than 1020 parameters, SpyProcedure cannot be used and the following error is raised: Cannot use SpyProcedure on procedure ‘procedure name’ because it contains more than 1020 parameters. + +If the object given by procedure name does not exist or is not a stored procedure, the follow error is raised: Cannot use SpyProcedure on ‘procedure name’ because the procedure does not exist. + +## Result Sets + +None + +## Overview + +Large monolithic stored procedures are difficult to test and maintain. We want to keep our stored procedures small and focused. We also want to test our stored procedures independently of one another. To create independent tests, we can replace the functionality of a stored procedure with a spy. The spy will record the parameters that were passed to it. + +SpyProcedure allows tests to be written for a procedure in isolation of the other procedures that it calls. SpyProcedure creates a table with the name of @ProcedureName + ‘_SpyProcedureLog’. This table contains an identity column ‘_id_’ and a column for each procedure parameter (except for cursor output parameters). SpyProcedure also replaces the procedure named by @ProcedureName with the command provided in the @CommandToExecute parameter and a command to insert the parameter values into the SpyProcedureLog table. + +Therefore, whenever the @ProcedureName is executed during the test instead of actually running the procedure, a new log entry is made in the @ProcedureName_SpyProcedureLog table and @CommandToExecute is called. + +## Limitations +SpyProcedure can not be used with temporary stored procedures (stored procedures whose name begins with #). + +SpyProcedure can not be used with procedures which have more than 1020 columns. + +## Warnings + +Remember that if you are spying a procedure, you are not testing that procedure. Your test is trying to test something else: typically, another procedure’s interaction with the procedure you are spying. + +## Examples + +**Example: Using SpyProcedure to record parameters passed to a procedure** + +In this example, we have a sales report which will show either current or historical data based on a parameter. Here we’ll want to test that the SalesReport procedure handles the parameter correctly and calls either HistoricalReport or CurrentReport. We’ll use the assertEqualsTable to make sure the currency parameter is passed correctly to HistoricalReport by looking in the spy’s log. + +```sql +CREATE PROCEDURE testFinancialApp.[test that SalesReport calls HistoricalReport when @showHistory = 1] +AS +BEGIN +-------Assemble + EXEC tSQLt.SpyProcedure 'FinancialApp.HistoricalReport'; + EXEC tSQLt.SpyProcedure 'FinancialApp.CurrentReport'; + +-------Act + EXEC FinancialApp.SalesReport 'USD', @showHistory = 1; + + SELECT currency + INTO actual + FROM FinancialApp.HistoricalReport_SpyProcedureLog; + +-------Assert HistoricalReport got called with right parameter + SELECT currency + INTO expected + FROM (SELECT 'USD') ex(currency); + + EXEC tSQLt.AssertEqualsTable 'actual', 'expected'; + +-------Assert CurrentReport did not get called + IF EXISTS (SELECT 1 FROM FinancialApp.CurrentReport_SpyProcedureLog) + EXEC tSQLt.Fail 'SalesReport should not have called CurrentReport when @showHistory = 1'; +END; +GO +``` + +**Example: Using SpyProcedure to return a hard-coded set of output parameter values** + +Suppose we want to test the procedure, IsDiskSpaceTooLow, which returns a 0 if there is enough disk space, and -1 if there is not enough disk space. IsDiskSpaceTooLow conveniently calls another procedure, GetDiskSpace which returns an output parameter for the current disk space. Since setting up a test to fill the drive to a certain size is probably a bad idea, we can test IsDiskSpaceTooLow by using SpyProcedure on GetDiskSpace and hard-coding the output parameter for the purposes of the test. + +```sql +CREATE PROCEDURE DiskUtil.GetDiskSpace @DiskSpace INT OUT +AS +BEGIN + -- This procedure does something to return the disk space as @DiskSpace output parameter +END +GO + +CREATE PROCEDURE DiskUtil.IsDriveSpaceTooLow +AS +BEGIN + DECLARE @DiskSpace INT; + EXEC DiskUtil.GetDiskSpace @DiskSpace = @DiskSpace OUT; + + IF @DiskSpace < 512 + RETURN -1; + ELSE + RETURN 0; +END; +GO + +CREATE PROCEDURE testDiskUtil.[test IsDriveSpaceTooLow returns -1 if drive space is less than 512 MB] +AS +BEGIN + EXEC tSQLt.SpyProcedure 'DiskUtil.GetDiskSpace', 'SET @DiskSpace = 511'; + + DECLARE @ReturnValue INT; + EXEC @ReturnValue = DiskUtil.IsDriveSpaceTooLow; + + EXEC tSQLt.AssertEquals -1, @ReturnValue; +END +GO +``` \ No newline at end of file