Configuration of SnapDAL Mock features
For each test configured in your unit tests with MockProvider.TestName = "someTestName", there must be a config file. So if you have a test named "mockreadertest", there will be a mockreadertest.config in the Mock folder of your statements directory. This file tells SnapDAL what to load for the named test. Here is an example with the configurable parameters:
<?xml version="1.0" ?>
<DataFactory>
<Reader statement="query_categories" provider="dataset" fileBaseName="query_categories" />
<Reader statement="query_customer" provider="SqlClient"
connectionString="trusted_connection=true;database=Northwind;server=localhost" />
</DataFactory>
| Name | Description | Example |
| Reader | Element that holds the setup information to return a DataReader for a particular statement in this test | n/a |
| statement | The statement name used to execute the reader for this test | query_categories |
| provider | Provider to be used for this connection | "SqlClient" or other SnapDAL provider name. In the case of serialized datasets, the name "dataset" is used |
| connectionString | Connection string for this provider | trusted_connection=true;database=Northwind;server=localhost |
| fileBaseName | In the case of the dataset provider, the combination of testname-fileBaseName.xml is used to pull the serialized xml from the saved file in the cachedData folder. | query_categories (will look for <root dir>/cachedData/sometestname-query_categories.xml |
While recording tests is the quickest way to get serialized xml files for your test, the syntax is fairly easy to modify with a trusty text editor. For each statement there is a series of data elements separated by a parameters attribute. Then there is a Schema element that is used to build the mock reader's record structure. Here is an example. Note that in this example for the query "query_customer", different results are returned depending on the parameters in the file.
<cache>
<data params="" dataType="dataset">
<dataset>
<NewDataSet>
<Table ID="Table1">
<companyname>Alfreds Futterkiste</companyname>
</Table>
</NewDataSet>
</dataset>
</data>
<data params="test1" dataType="dataset">
<dataset>
<NewDataSet>
<Table ID="Table2">
<companyname>test1</companyname>
</Table>
</NewDataSet>
</dataset>
</data>
<data params="test2" dataType="dataset">
<dataset>
<NewDataSet>
<Table ID="Table3">
<companyname>test2</companyname>
</Table>
</NewDataSet>
</dataset>
</data>
<schema><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="companyname" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>]]></schema>
</cache>