Included page: .PlugIns.JdbcSlim.ScenarioLibrary


Contents:


Included page: .FitNesse.SuiteAcceptanceTests.ScenarioLibrary

scenario given page page with content content
create page @page with content @content
$IT= echo @page

scenario given page page
given page @page with content nothing
$CONTENT= echo

scenario given test page page
given page @page
make @page a test page

scenario given slim test page page
given page @page with content !define TEST_SYSTEM {slim}
make @page a test page

scenario page source should have link to target
check request page @source 200
ensure content contains <a href="@target"
$IT= echo @source

scenario it should have link to target
page $IT should have link to @target

scenario and it should have link to target
page $IT should have link to @target

scenario page source should have creating link to target
check request page @source 200
ensure content contains @target<a title="create page" href="@target?edit&nonExistent=true">[?]</a>

scenario it should have creating link to target
page $IT should have creating link to @target

scenario page source should contain text
check request page @source 200
ensure content contains @text
show content

scenario page source should not contain text
check request page @source 200
reject content contains @text
show content

scenario page source should match text
check request page @source 200
ensure content matches @text
show content

scenario it should contain text
page $IT should contain @text

scenario it should not contain text
page $IT should not contain @text

scenario it should contain text in line symbol
check request page $IT 200
$@symbol= line number containing @text

scenario it should match text
page $IT should match @text

scenario test results for page source should contain text
check request page @source?test 200
ensure content contains @text
show content

scenario test results for page in debug mode source should contain text
check request page @source?test&debug 200
ensure content contains @text
show content

scenario test results for suite source should contain text
check request page @source?suite 200
ensure content contains @text
show content

scenario its test results should contain text
test results for page $IT should contain @text

scenario test ressults for page source should not contain text
check request page @source?test 200
reject content contains @text
show content

scenario and should contain text
ensure content contains @text
show content

scenario and should match text
ensure content matches @text
show content

scenario and should not contain text
reject content contains @text
show content

scenario widget wikiText should render htmlText
create page WidgetPage with content @wikiText
check request page WidgetPage 200
ensure content matches @htmlText
show content

scenario the line after should come after before
check echo int $@before < $@after

scenario pass
check echo pass pass

scenario show collapsed content
show @content

scenario show Symbol result

scenario then pass assertions pass, fail fail, ignore are ignored exception exceptions thrown
ensure content matches Assertions:<[^<]*@pass right, @fail wrong, @ignore ignored, @exception exceptions
show extract match; Assertions:<[^<]*exceptions contents 0

scenario and cell text has result result
ensure content matches class="@result">@text<
show extract match; class="[^"]+">@text< contents 0

variable defined: TestSTART=@@@START: Test specific content
variable defined: TestEND=@@@END: Test specific content

scenario and TestSystem setup is content
$CONTENT= echo $CONTENT @content

scenario and setup content is content
$CONTENT= echo $CONTENT @content

scenario and test content is content
given page $IT with content $CONTENT @@@START: Test specific content@content@@@END: Test specific content
make $IT a test page

scenario get HTML result
start Response Examiner.
setType contents
setPattern @@@START: Test specific content[^<]*(.*>)\s*@@@END: Test specific content
setGroup 1
$HTML_Result= found

scenario get HTML input
start Response Examiner.
setType pageHtml
setPattern @@@START: Test specific content[^<]*(.*>)\s*@@@END: Test specific content
setGroup 1
$HTML_Input= found
show collapsed get value


scenario get collapsed executon log for page source
check request page @source?executionLog 200
show content

scenario when page source is tested
check request page @source?test 200
show collapsed content

scenario when page source is tested and HTML is extracted
when page @source is tested
get HTML result
get HTML input



variable defined: Header= !define TestLibInstallPath (${LibInstallPath}!-) !define JdbcSlimLib -!(${JdbcSlimLib})!- ***Standard Test Page header !define TEST_SYSTEM {slim} !path ${TestLibInstallPath}${JdbcSlimLib} !path ${TestLibInstallPath}h2-*.jar !path ${TestLibInstallPath}dbfit-*.jar |import | |six42.fitnesse.jdbcslim| !| define table type| |SQLCommand|as Table| !|DefineProperties|TestDatabase | |key |value | |jdbcDriver |org.h2.Driver | |DBURL |jdbc:h2:mem:h2db;DB_CLOSE_DELAY=-1| |DBUSER |na | |DBPASSWORD |na | |CMD | | -!

variable defined: StartupText=!- !|Define Properties|StartupDatabase| |key |value | |.include |TestDatabase | |dbconnection |h2init | |dbupdatecount |false | |dbgetgeneratedkeys|false | !|Script|SQLCommand |StartupDatabase | |openConnection | |execute|drop table if exists TestData | |show |success | |show |rawResult | |show |resultSheet | |execute|create table TestData (Id int identity(1,1), Name varchar(255), Phone varchar(255), City varchar(255), Profession varchar(255))| |show |success | |show |rawResult | |show |resultSheet | !|SQLCommand |StartupDatabase|insert into TestData values (DEFAULT, '%Name%', '%Phone%', '%City%', '%Profession%')|dbgetgeneratedkeys| |SCOPE_IDENTITY()?|City |Name |Phone |Profession| |1 |Berlin |Bill |12345 |Doctor | |2 |Denver |Ben |6789 |Artist | |3 |Seoul |Tom |4567890|Milkman | |4 |Berlin |Till |332211 |Senator | |5 |Paris |Sarah |999999 |Hero | |6 |London |James |5432 |Butler | |7 |Washington |Bert |432 |President | |8 |New York |Kim |1 |Banker | !|SQLCommand|StartupDatabase|select * from TestData|Query | |ID |Name |Phone |City |Profession| |1 |Bill |12345 |Berlin |Doctor | |2 |Ben |6789 |Denver |Artist | |3 |Tom |4567890 |Seoul |Milkman | |4 |Till |332211 |Berlin |Senator | |5 |Sarah |999999 |Paris |Hero | |6 |James |5432 |London |Butler | |7 |Bert |432 |Washington|President | |8 |Kim |1 |New York |Banker | !|Script|SQLCommand|StartupDatabase| |closeConnection | -!


scenario given Jdbc Slim test page page
given test page @page
and Test System setup is !define TestLibInstallPath (./plugins/jdbcslim/) !define JdbcSlimLib (jdbcslim*.jar) ***Standard Test Page header !define TEST_SYSTEM {slim} !path ${TestLibInstallPath}${JdbcSlimLib} !path ${TestLibInstallPath}h2-*.jar !path ${TestLibInstallPath}dbfit-*.jar |import | |six42.fitnesse.jdbcslim| !| define table type| |SQLCommand|as Table| !|DefineProperties|TestDatabase | |key |value | |jdbcDriver |org.h2.Driver | |DBURL |jdbc:h2:mem:h2db;DB_CLOSE_DELAY=-1| |DBUSER |na | |DBPASSWORD |na | |CMD | |
and Setup content is !|Define Properties|StartupDatabase| |key |value | |.include |TestDatabase | |dbconnection |h2init | |dbupdatecount |false | |dbgetgeneratedkeys|false | !|Script|SQLCommand |StartupDatabase | |openConnection | |execute|drop table if exists TestData | |show |success | |show |rawResult | |show |resultSheet | |execute|create table TestData (Id int identity(1,1), Name varchar(255), Phone varchar(255), City varchar(255), Profession varchar(255))| |show |success | |show |rawResult | |show |resultSheet | !|SQLCommand |StartupDatabase|insert into TestData values (DEFAULT, '%Name%', '%Phone%', '%City%', '%Profession%')|dbgetgeneratedkeys| |SCOPE_IDENTITY()?|City |Name |Phone |Profession| |1 |Berlin |Bill |12345 |Doctor | |2 |Denver |Ben |6789 |Artist | |3 |Seoul |Tom |4567890|Milkman | |4 |Berlin |Till |332211 |Senator | |5 |Paris |Sarah |999999 |Hero | |6 |London |James |5432 |Butler | |7 |Washington |Bert |432 |President | |8 |New York |Kim |1 |Banker | !|SQLCommand|StartupDatabase|select * from TestData|Query | |ID |Name |Phone |City |Profession| |1 |Bill |12345 |Berlin |Doctor | |2 |Ben |6789 |Denver |Artist | |3 |Tom |4567890 |Seoul |Milkman | |4 |Till |332211 |Berlin |Senator | |5 |Sarah |999999 |Paris |Hero | |6 |James |5432 |London |Butler | |7 |Bert |432 |Washington|President | |8 |Kim |1 |New York |Banker | !|Script|SQLCommand|StartupDatabase| |closeConnection |


scenario and JDBC Slim content is content
given page $IT with content !define TestLibInstallPath (./plugins/jdbcslim/) !define JdbcSlimLib (jdbcslim*.jar) ***Standard Test Page header !define TEST_SYSTEM {slim} !path ${TestLibInstallPath}${JdbcSlimLib} !path ${TestLibInstallPath}h2-*.jar !path ${TestLibInstallPath}dbfit-*.jar |import | |six42.fitnesse.jdbcslim| !| define table type| |SQLCommand|as Table| !|DefineProperties|TestDatabase | |key |value | |jdbcDriver |org.h2.Driver | |DBURL |jdbc:h2:mem:h2db;DB_CLOSE_DELAY=-1| |DBUSER |na | |DBPASSWORD |na | |CMD | | !|Define Properties|StartupDatabase| |key |value | |.include |TestDatabase | |dbconnection |h2init | |dbupdatecount |false | |dbgetgeneratedkeys|false | !|Script|SQLCommand |StartupDatabase | |openConnection | |execute|drop table if exists TestData | |show |success | |show |rawResult | |show |resultSheet | |execute|create table TestData (Id int identity(1,1), Name varchar(255), Phone varchar(255), City varchar(255), Profession varchar(255))| |show |success | |show |rawResult | |show |resultSheet | !|SQLCommand |StartupDatabase|insert into TestData values (DEFAULT, '%Name%', '%Phone%', '%City%', '%Profession%')|dbgetgeneratedkeys| |SCOPE_IDENTITY()?|City |Name |Phone |Profession| |1 |Berlin |Bill |12345 |Doctor | |2 |Denver |Ben |6789 |Artist | |3 |Seoul |Tom |4567890|Milkman | |4 |Berlin |Till |332211 |Senator | |5 |Paris |Sarah |999999 |Hero | |6 |London |James |5432 |Butler | |7 |Washington |Bert |432 |President | |8 |New York |Kim |1 |Banker | !|SQLCommand|StartupDatabase|select * from TestData|Query | |ID |Name |Phone |City |Profession| |1 |Bill |12345 |Berlin |Doctor | |2 |Ben |6789 |Denver |Artist | |3 |Tom |4567890 |Seoul |Milkman | |4 |Till |332211 |Berlin |Senator | |5 |Sarah |999999 |Paris |Hero | |6 |James |5432 |London |Butler | |7 |Bert |432 |Washington|President | |8 |Kim |1 |New York |Banker | !|Script|SQLCommand|StartupDatabase| |closeConnection | @@@START: Test specific content @content @@@END: Test specific content
make $IT a test page


Included page: .PlugIns.JdbcSlim.SuiteSetUp



Setup jdbcSlim

import
six42.fitnesse.jdbcslim

define table type
SQLCommand as Table

Driver specific setup

classpath: ./plugins/jdbcslim/h2-*.jar

Define Properties TestDatabase
key value
jdbcDriver org.h2.Driver
#DBURL jdbc:h2:~/h2db
DBURL jdbc:h2:mem:h2db;DB_CLOSE_DELAY=-1
DBUSER na
DBPASSWORD na
#DBAUTOCOMMIT true
CMD

Create database and add data


Define Properties TransactionDatabase
key value
.include TestDatabase
dbconnection h2WithTransaction


Define Properties StartupDatabase
key value
.include TestDatabase
dbconnection h2init
dbupdatecount false
dbgetgeneratedkeys false


Script SQLCommand StartupDatabase
openConnection
execute drop table if exists TestData
show success
show rawResult
show resultSheet
execute create table TestData (Id int identity(1,1), Name varchar(255), Phone long, City varchar(255), Profession varchar(255))
show success
show rawResult
show resultSheet

SQLCommand StartupDatabase insert into TestData values (DEFAULT, '%Name%', %Phone%, '%City%', '%Profession%') dbgetgeneratedkeys
SCOPE_IDENTITY()? City Name Phone Profession
1 Berlin Bill 12345 Doctor
2 Denver Ben 6789 Artist
3 Seoul Tom 4567890 Milkman
4 Berlin Till 332211 Senator
5 Paris Sarah 999999 Hero
6 London James #null# Butler
7 Washington Bert 432 President
8 New York Kim 1 Banker

SQLCommand StartupDatabase select * from TestData Query
ID Name Phone City Profession
1 Bill 12345 Berlin Doctor
2 Ben 6789 Denver Artist
3 Tom 4567890 Seoul Milkman
4 Till 332211 Berlin Senator
5 Sarah 999999 Paris Hero
6 James #null# London Butler
7 Bert 432 Washington President
8 Kim 1 New York Banker

Script SQLCommand StartupDatabase
closeConnection


Unused Input column names like [AGE] below are flagged as fail.
In such a case either

Included page: .FitNesse.SuiteAcceptanceTests.SuiteSlimTests.SetUp

Import
fitnesse.fixtures

SetUp Plugins=fitnesse.testsystems.slim.CustomTableAliasPlugin CustomComparators=glob:fitnesse.testsystems.slim.GlobComparator

Library
page driver
echo fixture

variable defined: TestPageName=TestPage

script
given Jdbc Slim test page TestPage
and test content is !|SQLCommand|TestDatabase|select Profession from TestData where NAME= '%NAME%' and CITY= '%CITY%'| |NAME |CITY |AGE |PROFESSION? | |James |London |43 | | |Bert |Washington |50 | | |Kim |New York |60 | |
when page TestPage is tested and HTML is extracted
then \d assertions pass, 2 fail, 3 are ignored 0 exceptions thrown
and cell AGE has result fail
show Symbol $HTML_Input
show Symbol $HTML_Result
get collapsed executon log for page TestPage

If you must keep the column for any reason

SQLCommand TestDatabase select Profession from TestData where NAME= '%NAME%' and CITY= '%CITY%' outputFlagUnusedInputColumns=false
NAME CITY AGE PROFESSION?
James London 43
Bert Washington 50
Kim New York 60


Included page: .FitNesse.SuiteAcceptanceTests.TearDown



tear down