setUp {
	setFailOnError true
}

loadLoopback {
    load com.metamatrix.connector.loopback.LoopbackConnector partssupplier/PartsSupplier.vdb
}

test1 {
	select * from partssupplier.partssupplier.parts;
	result [
bogus
	]
}

test2 {
	select
		*
	from
		partssupplier.partssupplier.parts;
	result [
PART_ID	PART_NAME	PART_COLOR	PART_WEIGHT
ABCDEFGHIJ	ABCDEFGHIJ	ABCDEFGHIJ	ABCDEFGHIJ
	]
}

testBadData {
	select * from partssupplier.partssupplier.parts;
	result [
PART_ID	PART_NAME	PART_COLOR	PART_WEIGHT
ABCDEFGHIJ	ABCDEFGHIJ	XX	ABCDEFGHIJ
	]
}

test3 {
	setFailOnError false
	setProperty propertyName propertyValue
	execute "select * from tables"
	select * from partssupplier.partssupplier.parts;
}

testInsert {
	insert into PartsSupplier.PARTSSUPPLIER.PARTS (PART_COLOR) values (5);
	result [
count
0
	]
}

testUpdate {
	update PartsSupplier.PARTSSUPPLIER.PARTS set PART_COLOR = 5;
	result [
count
0
	]
}

testDelete {
	delete
	from PartsSupplier.PARTSSUPPLIER.PARTS;
	result [
count
0
	]
}

testLoadArchive {
	loadArchive testdata/sample.caf
	load com.metamatrix.connector.loopback.LoopbackConnector partssupplier/PartsSupplier.vdb
	start
	select * from partssupplier.partssupplier.parts;
	result [
PART_ID	PART_NAME	PART_COLOR	PART_WEIGHT
ABCDEFGHIJ	ABCDEFGHIJ	ABCDEFGHIJ	ABCDEFGHIJ
	]	
}


testSetProperty {
    load com.metamatrix.connector.loopback.LoopbackConnector partssupplier/PartsSupplier.vdb
	setProperty p1 v1
	start
	getProperties
	result [
p1=v1
	]	
}

testSetPropertyAfterConnectorHostStart {
    load com.metamatrix.connector.loopback.LoopbackConnector partssupplier/PartsSupplier.vdb
    start
	select * from partssupplier.partssupplier.parts;

	setFailOnError false	
	setProperty p1 v1
	result [
RuntimeException-Cannot set connector properties after the connector is started.
	]
}

testLoadingClearsProperties {
    load com.metamatrix.connector.loopback.LoopbackConnector partssupplier/PartsSupplier.vdb
	setProperty p1 v1
    load com.metamatrix.connector.loopback.LoopbackConnector partssupplier/PartsSupplier.vdb
	setProperty p2 v2
	start
	getProperties
	result [
p2=v2
	]	
}

testCaseInsensitiveCommands {
    load com.metamatrix.connector.loopback.LoopbackConnector partssupplier/PartsSupplier.vdb
    start
	SELECT * from partssupplier.partssupplier.parts;
	result [
PART_ID	PART_NAME	PART_COLOR	PART_WEIGHT
ABCDEFGHIJ	ABCDEFGHIJ	ABCDEFGHIJ	ABCDEFGHIJ
	]	
}

quitScript {
	quit
}

testTabsInResults {
	loadFromScript object.bsh
	select toString from table1;
	result [
toString
hey
result [
1\t2\n3\t4\n5\t6
	]
}

testBracketsInResult {
	loadFromScript object2.bsh
	select toString from table1;
	result [
toString
hey
there
some data]
some more data}
	]
}

testHelp {
	help
	result [
createArchive <pathToArchiveFileName> <pathToCDKFileName> <pathToDirectoryForExtenstionModules> 
createTemplate <pathToTemplateFile> 
delete <multilineSqlTerminatedWith;> 
exec <fullyQualifiedProcedureName> 
exit 
getProperties 
help 
insert <multilineSqlTerminatedWith;> 
load <fullyQualifiedConnectorClassName> <pathToVdbFile> 
loadArchive <pathToArchiveFileName> <newConnectorTypeName> 
loadFromScript <pathToConfiguratonScript> 
loadProperties <pathToPropertyFile> 
quit 
run <scriptName> 
runAll 
runScript <pathToScriptFile> <scriptNameWithinFile> 
select <query> 
setBatchSize <batchSize> 
setFailOnError <boolean> 
setPrintStackOnError <boolean> 
setProperty <propertyName> <propertyValue> 
setScriptFile <pathToScriptFile> 
setSecurityContext <vdbName> <vdbVersion> <userName> 
setSilent boolean 
start 
stop 
update <multilineSqlTerminatedWith;> 
	]
}

testNotLoadingConnector {
	setFailOnError false
	select * from tables;
}
