diff --git a/lib/Mono/2.0/Apache.NMS.ActiveMQ.dll b/lib/Mono/2.0/Apache.NMS.ActiveMQ.dll
new file mode 100644
index 00000000..2617b34f
Binary files /dev/null and b/lib/Mono/2.0/Apache.NMS.ActiveMQ.dll differ
diff --git a/lib/Mono/2.0/Apache.NMS.ActiveMQ.pdb b/lib/Mono/2.0/Apache.NMS.ActiveMQ.pdb
new file mode 100644
index 00000000..decbb448
Binary files /dev/null and b/lib/Mono/2.0/Apache.NMS.ActiveMQ.pdb differ
diff --git a/lib/Mono/2.0/Apache.NMS.dll b/lib/Mono/2.0/Apache.NMS.dll
new file mode 100644
index 00000000..b1c5e174
Binary files /dev/null and b/lib/Mono/2.0/Apache.NMS.dll differ
diff --git a/lib/Mono/2.0/Apache.NMS.pdb b/lib/Mono/2.0/Apache.NMS.pdb
new file mode 100644
index 00000000..4bbe3cf9
Binary files /dev/null and b/lib/Mono/2.0/Apache.NMS.pdb differ
diff --git a/lib/Mono/2.0/Common.Logging.dll b/lib/Mono/2.0/Common.Logging.dll
new file mode 100644
index 00000000..d7a8f158
Binary files /dev/null and b/lib/Mono/2.0/Common.Logging.dll differ
diff --git a/lib/Mono/2.0/Common.Logging.pdb b/lib/Mono/2.0/Common.Logging.pdb
new file mode 100644
index 00000000..117b5bcc
Binary files /dev/null and b/lib/Mono/2.0/Common.Logging.pdb differ
diff --git a/lib/Mono/2.0/DotNetMock.Framework.dll b/lib/Mono/2.0/DotNetMock.Framework.dll
new file mode 100644
index 00000000..b91f079f
Binary files /dev/null and b/lib/Mono/2.0/DotNetMock.Framework.dll differ
diff --git a/lib/Mono/2.0/DotNetMock.dll b/lib/Mono/2.0/DotNetMock.dll
new file mode 100644
index 00000000..794065d3
Binary files /dev/null and b/lib/Mono/2.0/DotNetMock.dll differ
diff --git a/lib/Mono/2.0/EULA.rtf b/lib/Mono/2.0/EULA.rtf
new file mode 100644
index 00000000..1137bf3a
--- /dev/null
+++ b/lib/Mono/2.0/EULA.rtf
@@ -0,0 +1,522 @@
+{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff38\deff0\stshfdbch11\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}
+{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New{\*\falt Arial};}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol{\*\falt Bookshelf Symbol 3};}
+{\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings{\*\falt Symbol};}{\f11\fbidi \fmodern\fcharset128\fprq1{\*\panose 02020609040205080304}MS Mincho{\*\falt ?l?r ??\'81\'66c};}
+{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma{\*\falt ?l?r ???};}
+{\f51\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0603020202020204}Trebuchet MS{\*\falt Univers};}{\f167\fbidi \fmodern\fcharset128\fprq1{\*\panose 02020609040205080304}@MS Mincho{\*\falt @MS Gothic};}
+{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}
+{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}
+{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}
+{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman{\*\falt Times New Roman};}
+{\f183\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\f184\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}
+{\f186\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\f187\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}
+{\f188\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\f189\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}
+{\f190\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\f191\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\f203\fbidi \fmodern\fcharset238\fprq1 Courier New CE{\*\falt Arial};}
+{\f204\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr{\*\falt Arial};}{\f206\fbidi \fmodern\fcharset161\fprq1 Courier New Greek{\*\falt Arial};}{\f207\fbidi \fmodern\fcharset162\fprq1 Courier New Tur{\*\falt Arial};}
+{\f208\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew){\*\falt Arial};}{\f209\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic){\*\falt Arial};}{\f210\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic{\*\falt Arial};}
+{\f211\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese){\*\falt Arial};}{\f295\fbidi \fmodern\fcharset0\fprq1 MS Mincho Western{\*\falt ?l?r ??\'81\'66c};}{\f293\fbidi \fmodern\fcharset238\fprq1 MS Mincho CE{\*\falt ?l?r ??\'81\'66c};}
+{\f294\fbidi \fmodern\fcharset204\fprq1 MS Mincho Cyr{\*\falt ?l?r ??\'81\'66c};}{\f296\fbidi \fmodern\fcharset161\fprq1 MS Mincho Greek{\*\falt ?l?r ??\'81\'66c};}{\f297\fbidi \fmodern\fcharset162\fprq1 MS Mincho Tur{\*\falt ?l?r ??\'81\'66c};}
+{\f300\fbidi \fmodern\fcharset186\fprq1 MS Mincho Baltic{\*\falt ?l?r ??\'81\'66c};}{\f523\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f524\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}
+{\f526\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f527\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f530\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f563\fbidi \fswiss\fcharset238\fprq2 Tahoma CE{\*\falt ?l?r ???};}
+{\f564\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr{\*\falt ?l?r ???};}{\f566\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek{\*\falt ?l?r ???};}{\f567\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur{\*\falt ?l?r ???};}
+{\f568\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew){\*\falt ?l?r ???};}{\f569\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic){\*\falt ?l?r ???};}{\f570\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic{\*\falt ?l?r ???};}
+{\f571\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese){\*\falt ?l?r ???};}{\f572\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai){\*\falt ?l?r ???};}{\f693\fbidi \fswiss\fcharset238\fprq2 Trebuchet MS CE{\*\falt Univers};}
+{\f694\fbidi \fswiss\fcharset204\fprq2 Trebuchet MS Cyr{\*\falt Univers};}{\f696\fbidi \fswiss\fcharset161\fprq2 Trebuchet MS Greek{\*\falt Univers};}{\f697\fbidi \fswiss\fcharset162\fprq2 Trebuchet MS Tur{\*\falt Univers};}
+{\f700\fbidi \fswiss\fcharset186\fprq2 Trebuchet MS Baltic{\*\falt Univers};}{\f1855\fbidi \fmodern\fcharset0\fprq1 @MS Mincho Western{\*\falt @MS Gothic};}{\f1853\fbidi \fmodern\fcharset238\fprq1 @MS Mincho CE{\*\falt @MS Gothic};}
+{\f1854\fbidi \fmodern\fcharset204\fprq1 @MS Mincho Cyr{\*\falt @MS Gothic};}{\f1856\fbidi \fmodern\fcharset161\fprq1 @MS Mincho Greek{\*\falt @MS Gothic};}{\f1857\fbidi \fmodern\fcharset162\fprq1 @MS Mincho Tur{\*\falt @MS Gothic};}
+{\f1860\fbidi \fmodern\fcharset186\fprq1 @MS Mincho Baltic{\*\falt @MS Gothic};}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}
+{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}
+{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}
+{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}
+{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}
+{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}
+{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}
+{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}
+{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}
+{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}
+{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}
+{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}
+{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}
+{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}
+{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}
+{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}
+{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}
+{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}
+{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}
+{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}
+{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}
+{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}
+{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
+{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE{\*\falt Times New Roman};}
+{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr{\*\falt Times New Roman};}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek{\*\falt Times New Roman};}
+{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur{\*\falt Times New Roman};}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew){\*\falt Times New Roman};}
+{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic){\*\falt Times New Roman};}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic{\*\falt Times New Roman};}
+{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese){\*\falt Times New Roman};}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;
+\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp
+\fs22\dbch\af11 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{
+\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\snext0 \sautoupd \sqformat \spriority0 \styrsid2453294 Normal;}{\s1\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs20\alang1025 \ltrch\fcs0
+\b\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext1 \slink15 \sqformat \styrsid2453294 heading 1;}{\s2\ql \fi-363\li720\ri0\sb120\sa120\widctlpar
+\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls10\ilvl1\outlinelevel1\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \ab\af38\afs20\alang1025 \ltrch\fcs0 \b\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext2 \slink16 \sqformat \styrsid2453294 heading 2;}{\s3\ql \li0\ri0\sb120\sa120\widctlpar\tx1077\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext3 \slink17 \sqformat \styrsid2453294 heading 3;}{\s4\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar
+\jclisttab\tx1437\wrapdefault\aspalpha\aspnum\faauto\ls10\ilvl3\outlinelevel3\adjustright\rin0\lin1435\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext4 \slink18 \sqformat \styrsid2453294 heading 4;}{\s5\ql \fi-357\li1792\ri0\sb120\sa120\widctlpar\tx1792\jclisttab\tx2155\wrapdefault\aspalpha\aspnum\faauto\ls10\ilvl4\outlinelevel4\adjustright\rin0\lin1792\itap0 \rtlch\fcs1
+\af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext5 \slink19 \sqformat \styrsid2453294 heading 5;}{\s6\ql \fi-357\li2149\ri0\sb120\sa120\widctlpar
+\jclisttab\tx2152\wrapdefault\aspalpha\aspnum\faauto\ls10\ilvl5\outlinelevel5\adjustright\rin0\lin2149\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext6 \slink20 \sqformat \styrsid2453294 heading 6;}{\s7\ql \fi-357\li2506\ri0\sb120\sa120\widctlpar\jclisttab\tx2509\wrapdefault\aspalpha\aspnum\faauto\ls10\ilvl6\outlinelevel6\adjustright\rin0\lin2506\itap0 \rtlch\fcs1
+\af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext7 \slink21 \sqformat \styrsid2453294 heading 7;}{\s8\ql \fi-357\li2863\ri0\sb120\sa120\widctlpar
+\jclisttab\tx2866\wrapdefault\aspalpha\aspnum\faauto\ls10\ilvl7\outlinelevel7\adjustright\rin0\lin2863\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext8 \slink22 \sqformat \styrsid2453294 heading 8;}{\s9\ql \fi-358\li3221\ri0\sb120\sa120\widctlpar\jclisttab\tx3223\wrapdefault\aspalpha\aspnum\faauto\ls10\ilvl8\outlinelevel8\adjustright\rin0\lin3221\itap0 \rtlch\fcs1
+\af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext9 \slink23 \sqformat \styrsid2453294 heading 9;}{\*\cs10 \additive \slink51 \slocked \ssemihidden \styrsid2453294
+Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
+\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f0\hich\af0\dbch\af11\cgrid\langnp1033\langfenp1033
+\snext11 \ssemihidden \sunhideused \sqformat Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\f38\fs20 \sbasedon10 \slink1 \slocked \styrsid6178267 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \ab\ai\af31503\afs28 \ltrch\fcs0
+\b\i\fs28\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink2 \slocked \spriority9 Heading 2 Char;}{\*\cs17 \additive \rtlch\fcs1 \ab\af31503\afs26 \ltrch\fcs0 \b\fs26\loch\f31502\hich\af31502\dbch\af31501
+\sbasedon10 \slink3 \slocked \ssemihidden \spriority9 Heading 3 Char;}{\*\cs18 \additive \rtlch\fcs1 \ab\af31507\afs28 \ltrch\fcs0 \b\fs28\loch\f31506\hich\af31506\dbch\af31505 \sbasedon10 \slink4 \slocked \ssemihidden \spriority9 Heading 4 Char;}{\*
+\cs19 \additive \rtlch\fcs1 \ab\ai\af31507\afs26 \ltrch\fcs0 \b\i\fs26\loch\f31506\hich\af31506\dbch\af31505 \sbasedon10 \slink5 \slocked \ssemihidden \spriority9 Heading 5 Char;}{\*\cs20 \additive \rtlch\fcs1 \ab\af31507 \ltrch\fcs0
+\b\loch\f31506\hich\af31506\dbch\af31505 \sbasedon10 \slink6 \slocked \ssemihidden \spriority9 Heading 6 Char;}{\*\cs21 \additive \rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs24\loch\f31506\hich\af31506\dbch\af31505
+\sbasedon10 \slink7 \slocked \ssemihidden \spriority9 Heading 7 Char;}{\*\cs22 \additive \rtlch\fcs1 \ai\af31507\afs24 \ltrch\fcs0 \i\fs24\loch\f31506\hich\af31506\dbch\af31505 \sbasedon10 \slink8 \slocked \ssemihidden \spriority9 Heading 8 Char;}{\*
+\cs23 \additive \rtlch\fcs1 \af31503 \ltrch\fcs0 \loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink9 \slocked \ssemihidden \spriority9 Heading 9 Char;}{
+\s24\ql \li357\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin357\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext24 \styrsid2453294 Body 1;}{\s25\ql \li720\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext25 \styrsid2453294 Body 2;}{\s26\ql \li1077\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin1077\itap0 \rtlch\fcs1
+\af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext26 \styrsid2453294 Body 3;}{
+\s27\ql \li1435\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin1435\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext27 \styrsid2453294 Body 4;}{\s28\ql \li1803\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin1803\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext28 \styrsid2453294 Body 5;}{\s29\ql \li2160\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin2160\itap0 \rtlch\fcs1
+\af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext29 \styrsid2453294 Body 6;}{
+\s30\ql \li2506\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin2506\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext30 \styrsid2453294 Body 7;}{\s31\ql \li2863\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin2863\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext31 \styrsid2453294 Body 8;}{\s32\ql \li3221\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin3221\itap0 \rtlch\fcs1
+\af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext32 \styrsid2453294 Body 9;}{\s33\ql \fi-357\li357\ri0\sb120\sa120\widctlpar
+\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin357\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext33 \styrsid2453294
+Bullet 1;}{\s34\ql \fi-363\li720\ri0\sb120\sa120\widctlpar\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext34 \styrsid2453294 Bullet 2;}{\s35\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar
+\jclisttab\tx1080\wrapdefault\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin1077\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext35 \styrsid2453294
+Bullet 3;}{\s36\ql \fi-358\li1435\ri0\sb120\sa120\widctlpar\jclisttab\tx1437\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin1435\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext36 \styrsid2453294 Bullet 4;}{\s37\ql \fi-357\li1792\ri0\sb120\sa120\widctlpar
+\jclisttab\tx1795\wrapdefault\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin1792\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext37 \styrsid2453294
+Bullet 5;}{\s38\ql \fi-357\li2149\ri0\sb120\sa120\widctlpar\jclisttab\tx2152\wrapdefault\aspalpha\aspnum\faauto\ls6\adjustright\rin0\lin2149\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext38 \styrsid2453294 Bullet 6;}{\s39\ql \fi-357\li2506\ri0\sb120\sa120\widctlpar
+\jclisttab\tx2509\wrapdefault\aspalpha\aspnum\faauto\ls7\adjustright\rin0\lin2506\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext39 \styrsid2453294
+Bullet 7;}{\s40\ql \fi-357\li2863\ri0\sb120\sa120\widctlpar\jclisttab\tx2866\wrapdefault\aspalpha\aspnum\faauto\ls8\adjustright\rin0\lin2863\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext40 \styrsid2453294 Bullet 8;}{\s41\ql \fi-358\li3221\ri0\sb120\sa120\widctlpar
+\jclisttab\tx3223\wrapdefault\aspalpha\aspnum\faauto\ls9\adjustright\rin0\lin3221\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon32 \snext41 \styrsid2453294 Bullet 9;}{\s42\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs28\alang1025 \ltrch\fcs0
+\b\fs28\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \styrsid2453294 Heading EULA;}{\s43\ql \li0\ri0\sb120\sa120\widctlpar\brdrb\brdrs\brdrw10\brsp20
+\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs28\alang1025 \ltrch\fcs0 \b\fs28\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \styrsid2453294
+Heading Software Title;}{\s44\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs20\alang1025 \ltrch\fcs0
+\b\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext44 \styrsid2453294 Preamble;}{\s45\ql \li0\ri0\sb120\sa120\widctlpar\brdrb\brdrs\brdrw10\brsp20
+\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs20\alang1025 \ltrch\fcs0 \b\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext1 \styrsid2453294 Preamble Border;}{
+\s46\qc \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs20\alang1025 \ltrch\fcs0 \b\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext46 \styrsid2453294 Heading Warranty;}{\s47\ql \fi-360\li360\ri0\sb120\sa120\widctlpar\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls11\outlinelevel0\adjustright\rin0\lin360\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \styrsid2453294 Heading 1 Warranty;}{\s48\ql \fi-360\li720\ri0\sb120\sa120\widctlpar
+\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls11\ilvl1\outlinelevel1\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext0 \styrsid2453294 Heading 2 Warranty;}{\*\cs49 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf2 \sbasedon10 \styrsid12483380 Hyperlink;}{\s50\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar
+\jclisttab\tx1080\wrapdefault\aspalpha\aspnum\faauto\ls13\adjustright\rin0\lin1077\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\ul\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon35 \snext50 \sautoupd \styrsid2453294 Bullet 3 Underline;}{\s51\ql \li0\ri0\sa160\sl-240\slmult0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext51 \slink10 \styrsid11613206 Char;}{\s52\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1
+\af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext52 \slink53 \ssemihidden \styrsid16123551 footnote text;}{\*\cs53 \additive \rtlch\fcs1 \af38\afs20 \ltrch\fcs0
+\f38\fs20 \sbasedon10 \slink52 \slocked \ssemihidden Footnote Text Char;}{\*\cs54 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \super \sbasedon10 \ssemihidden \styrsid16123551 footnote reference;}{
+\s55\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext55 \slink56 \ssemihidden \styrsid16123551 endnote text;}{\*\cs56 \additive \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f38\fs20 \sbasedon10 \slink55 \slocked \ssemihidden Endnote Text Char;}{\*\cs57 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \super
+\sbasedon10 \ssemihidden \styrsid16123551 endnote reference;}{\s58\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext58 \slink59 \ssemihidden \styrsid16123551 annotation text;}{\*\cs59 \additive \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f38\fs20
+\sbasedon10 \slink58 \slocked \ssemihidden Comment Text Char;}{\*\cs60 \additive \rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \fs16 \sbasedon10 \ssemihidden \styrsid16123551 annotation reference;}{\s61\ql \li0\ri0\sa160\sl-240\slmult0
+\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext61 \styrsid8833 Char1;}{
+\s62\ql \fi-357\li1077\ri0\sb120\sa120\widctlpar\tx1077\jclisttab\tx1440\wrapdefault\aspalpha\aspnum\faauto\ls10\ilvl2\outlinelevel2\adjustright\rin0\lin1077\itap0 \rtlch\fcs1 \ab\af38\afs20\alang1025 \ltrch\fcs0
+\b\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon3 \snext62 \styrsid2453294 Heading 3 Bold;}{\s63\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1
+\af38\afs20\alang1025 \ltrch\fcs0 \fs20\ul\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon36 \snext63 \styrsid2453294 Bullet 4 Underline;}{
+\s64\ql \li720\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\ul\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon25 \snext64 \styrsid2453294 Body 2 Underline;}{\s65\ql \li0\ri0\sb120\sa120\widctlpar\brdrt\brdrs\brdrw10\brsp20 \wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs20\alang1025 \ltrch\fcs0
+\b\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 \sbasedon44 \snext65 \styrsid2453294 Preamble Border Above;}{\*\cs66 \additive \v\f2\cf12\sub \styrsid14319332 tw4winMark;}{
+\s67\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs16\alang1025 \ltrch\fcs0 \fs16\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext67 \slink68 \ssemihidden \styrsid6453702 Balloon Text;}{\*\cs68 \additive \rtlch\fcs1 \af38\afs16 \ltrch\fcs0 \f38\fs16 \sbasedon10 \slink67 \slocked \ssemihidden Balloon Text Char;}{
+\s69\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af38\afs20\alang1025 \ltrch\fcs0 \b\fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon58 \snext58 \slink70 \ssemihidden \sunhideused \styrsid16201594 annotation subject;}{\*\cs70 \additive \rtlch\fcs1 \ab\af38\afs20 \ltrch\fcs0 \b\f38\fs20 \sbasedon59 \slink69 \slocked \ssemihidden \styrsid16201594 Comment Subject Char;}{
+\s71\ql \li0\ri0\sb120\sa120\widctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext71 \slink72 \ssemihidden \sunhideused \styrsid16473449 header;}{\*\cs72 \additive \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f38\fs20 \sbasedon10 \slink71 \slocked \ssemihidden \styrsid16473449 Header Char;}{
+\s73\ql \li0\ri0\sb120\sa120\widctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\f38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+\sbasedon0 \snext73 \slink74 \ssemihidden \sunhideused \styrsid16473449 footer;}{\*\cs74 \additive \rtlch\fcs1 \af38\afs20 \ltrch\fcs0 \f38\fs20 \sbasedon10 \slink73 \slocked \ssemihidden \styrsid16473449 Footer Char;}}{\*\listtable
+{\list\listtemplateid176468498\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid692200086\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \s41
+\fi-358\li3221\jclisttab\tx3223\lin3221 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440
+\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160
+\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880
+\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600
+}{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel
+\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23
+\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid196815738}
+{\list\listtemplateid-1085748990\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat600\levelspace0\levelindent0{\leveltext\leveltemplateid-21470828\'01\u-3913 ?;}{\levelnumbers;}
+\loch\af3\hich\af3\dbch\af11\fbias0\hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}
+\f2\fbias0\hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}
+\f10\fbias0\hres0\chhres0 \fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}
+\f3\fbias0\hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0
+\fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0
+\fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0
+\fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\lin5760 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\lin6480 }{\listname
+;}\listid325669543}{\list\listtemplateid-1793664660{\listlevel\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab\ai0\af0 \ltrch\fcs0
+\b\i0\fbias0\hres0\chhres0 \s47\fi-360\li360\jclisttab\tx360\lin360 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab\ai0\af0 \ltrch\fcs0
+\b\i0\fbias0\hres0\chhres0 \s48\fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02);}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0
+\fbias0\hres0\chhres0 \fi-360\li1080\jclisttab\tx1080\lin1080 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'03);}{\levelnumbers\'02;}\rtlch\fcs1 \af0 \ltrch\fcs0
+\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'04);}{\levelnumbers\'02;}\rtlch\fcs1 \af0 \ltrch\fcs0
+\fbias0\hres0\chhres0 \fi-360\li1800\jclisttab\tx1800\lin1800 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'05);}{\levelnumbers\'02;}\rtlch\fcs1 \af0 \ltrch\fcs0
+\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0
+\fbias0\hres0\chhres0 \fi-360\li2520\jclisttab\tx2520\lin2520 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0
+\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0
+\fbias0\hres0\chhres0 \fi-360\li3240\jclisttab\tx3240\lin3240 }{\listname ;}\listid394402059}{\list\listtemplateid1470557282{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat600\levelspace360\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\b\i0\fs20\loch\af3\hich\af3\dbch\af11\fbias0\hres0\chhres0 \fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab\ai0\af51\afs20 \ltrch\fcs0 \b\i0\f51\fs20\fbias0\hres0\chhres0 \s2\fi-363\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab\ai0\af38\afs20 \ltrch\fcs0 \b\i0\f38\fs20\fbias0\hres0\chhres0 \s62\fi-357\li1077\jclisttab\tx1440\lin1077 }{\listlevel\levelnfc3\levelnfcn3\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab0\ai0\af51\afs20 \ltrch\fcs0 \b0\i0\strike0\f51\fs20\ulnone\fbias0\hres0\chhres0 \s4\fi-358\li1435\jclisttab\tx1437\lin1435 }{\listlevel\levelnfc1\levelnfcn1\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab0\ai0\af51\afs20 \ltrch\fcs0 \b0\i0\strike0\f51\fs20\ulnone\fbias0\hres0\chhres0 \s5\fi-357\li1792\jclisttab\tx2155\lin1792 }{\listlevel
+\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab0\ai0\af51\afs20 \ltrch\fcs0 \b0\i0\f51\fs20\fbias0\hres0\chhres0 \s6\fi-357\li2149
+\jclisttab\tx2152\lin2149 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \ab0\ai0\af51\afs20 \ltrch\fcs0 \b0\i0\f51\fs20\fbias0\hres0\chhres0
+\s7\fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02i.;}{\levelnumbers;}\rtlch\fcs1 \ab0\ai0\af51\afs20 \ltrch\fcs0
+\b0\i0\f51\fs20\fbias0\hres0\chhres0 \s8\fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02A.;}{\levelnumbers;}\rtlch\fcs1 \ab0\ai0\af51\afs20
+\ltrch\fcs0 \b0\i0\f51\fs20\fbias0\hres0\chhres0 \s9\fi-358\li3221\jclisttab\tx3223\lin3221 }{\listname ;}\listid398796681}{\list\listtemplateid789093748\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\leveltemplateid-317712510\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \s34\fi-363\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid477573462}{\list\listtemplateid67698717{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'02\'00);}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li360\jclisttab\tx360\lin360 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'02\'01);}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02);}{\levelnumbers
+\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li1080\jclisttab\tx1080\lin1080 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'03);}{\levelnumbers\'02;}\rtlch\fcs1 \af0
+\ltrch\fcs0 \hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'04);}{\levelnumbers\'02;}\rtlch\fcs1 \af0 \ltrch\fcs0
+\hres0\chhres0 \fi-360\li1800\jclisttab\tx1800\lin1800 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03(\'05);}{\levelnumbers\'02;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0
+\fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li2520
+\jclisttab\tx2520\lin2520 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li2880
+\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li3240
+\jclisttab\tx3240\lin3240 }{\listname ;}\listid700712945}{\list\listtemplateid-296591990\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid-48305026
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \s40\fi-357\li2863\jclisttab\tx2866\lin2863 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid810947713}{\list\listtemplateid-258053656\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace360\levelindent0{\leveltext\leveltemplateid67698703\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative
+\levelspace360\levelindent0{\leveltext\leveltemplateid67698713\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative
+\levelspace360\levelindent0{\leveltext\leveltemplateid67698715\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative
+\levelspace360\levelindent0{\leveltext\leveltemplateid67698703\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative
+\levelspace360\levelindent0{\leveltext\leveltemplateid67698713\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative
+\levelspace360\levelindent0{\leveltext\leveltemplateid67698715\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative
+\levelspace360\levelindent0{\leveltext\leveltemplateid67698703\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative
+\levelspace360\levelindent0{\leveltext\leveltemplateid67698713\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative
+\levelspace360\levelindent0{\leveltext\leveltemplateid67698715\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li6480\lin6480 }{\listname ;}\listid988437699}{\list\listtemplateid285099256\listhybrid{\listlevel\levelnfc23
+\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace720\levelindent0{\leveltext\leveltemplateid-308626962\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \s50\fi-357\li1077\jclisttab\tx1080\lin1077 }{\listlevel\levelnfc23
+\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace720\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace720\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace720\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace720\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace720\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace720
+\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace720\levelindent0
+{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace720\levelindent0{\leveltext
+\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1121073746}{\list\listtemplateid-1813845996\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid2033377338\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \s39\fi-357\li2506\jclisttab\tx2509\lin2506 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1219436735}{\list\listtemplateid-41362566\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\leveltemplateid-1175557160\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \s36\fi-358\li1435\jclisttab\tx1437\lin1435 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1559511898}{\list\listtemplateid-743794326\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\leveltemplateid1229593488\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \s35\fi-357\li1077\jclisttab\tx1080\lin1077 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1567649130}{\list\listtemplateid1363474438\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace1077\levelindent0{\leveltext\leveltemplateid1637229796\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \s37\fi-357\li1792\jclisttab\tx1795\lin1792 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace1077\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077
+\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0
+{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0{\leveltext
+\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0{\leveltext
+\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0{\leveltext
+\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0{\leveltext
+\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace1077\levelindent0{\leveltext
+\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1848404271}{\list\listtemplateid-1802592190\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid961321180\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \s38\fi-357\li2149\jclisttab\tx2152\lin2149 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1877695764}{\list\listtemplateid1186249844\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\leveltemplateid1182702444\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \s33\fi-357\li357\jclisttab\tx360\lin357 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698689
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698691
+\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid67698693
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid2054619191}}{\*\listoverridetable{\listoverride\listid2054619191\listoverridecount0\ls1}{\listoverride\listid477573462
+\listoverridecount0\ls2}{\listoverride\listid1567649130\listoverridecount0\ls3}{\listoverride\listid1559511898\listoverridecount0\ls4}{\listoverride\listid1848404271\listoverridecount0\ls5}{\listoverride\listid1877695764\listoverridecount0\ls6}
+{\listoverride\listid1219436735\listoverridecount0\ls7}{\listoverride\listid810947713\listoverridecount0\ls8}{\listoverride\listid196815738\listoverridecount0\ls9}{\listoverride\listid398796681\listoverridecount0\ls10}{\listoverride\listid394402059
+\listoverridecount0\ls11}{\listoverride\listid700712945\listoverridecount0\ls12}{\listoverride\listid1121073746\listoverridecount0\ls13}{\listoverride\listid325669543\listoverridecount0\ls14}{\listoverride\listid398796681\listoverridecount0\ls15}
+{\listoverride\listid988437699\listoverridecount0\ls16}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid8833\rsid25262\rsid149813\rsid202786\rsid224501\rsid336100\rsid619688\rsid687529\rsid993583
+\rsid1050666\rsid1063606\rsid1123747\rsid1247323\rsid1271240\rsid1314581\rsid1340611\rsid1396639\rsid1397504\rsid1445017\rsid1522967\rsid1660354\rsid1908946\rsid1967913\rsid1985256\rsid2040602\rsid2055273\rsid2169328\rsid2173862\rsid2294074\rsid2299921
+\rsid2303227\rsid2325299\rsid2325781\rsid2438325\rsid2443042\rsid2453294\rsid2631094\rsid2767599\rsid2837055\rsid2891929\rsid2908896\rsid3041681\rsid3084461\rsid3089876\rsid3090601\rsid3153954\rsid3176869\rsid3428779\rsid3494352\rsid3551572\rsid3565740
+\rsid3567813\rsid3607608\rsid3611273\rsid3737799\rsid3745708\rsid3805003\rsid3807310\rsid3893477\rsid3943274\rsid3952936\rsid4080061\rsid4130624\rsid4131293\rsid4151172\rsid4261399\rsid4285630\rsid4420257\rsid4538955\rsid4653850\rsid4657166\rsid4658437
+\rsid4665525\rsid4736258\rsid4927714\rsid5003640\rsid5009230\rsid5054803\rsid5055072\rsid5076588\rsid5077281\rsid5112338\rsid5140732\rsid5200145\rsid5252592\rsid5253692\rsid5272300\rsid5398118\rsid5575913\rsid5586591\rsid5660232\rsid5723753\rsid5733021
+\rsid5792090\rsid5839501\rsid5845217\rsid5848133\rsid5965347\rsid5969393\rsid5984178\rsid6178267\rsid6182090\rsid6306943\rsid6423491\rsid6423682\rsid6453702\rsid6499651\rsid6648707\rsid6692412\rsid6693430\rsid6759000\rsid6819414\rsid6952772\rsid6973360
+\rsid6976059\rsid7030393\rsid7091096\rsid7236981\rsid7293866\rsid7354836\rsid7481530\rsid7492415\rsid7627513\rsid7798874\rsid7951946\rsid7961682\rsid8137451\rsid8144333\rsid8264327\rsid8279245\rsid8333386\rsid8335631\rsid8349552\rsid8350558\rsid8392700
+\rsid8456026\rsid8457665\rsid8523053\rsid8532277\rsid8542814\rsid8586611\rsid8596935\rsid8602482\rsid8727711\rsid8938190\rsid9043979\rsid9069536\rsid9139129\rsid9196121\rsid9337714\rsid9378118\rsid9587393\rsid9587545\rsid9786004\rsid9857806\rsid9859629
+\rsid9989898\rsid10179210\rsid10289240\rsid10441824\rsid10565710\rsid10683655\rsid10705127\rsid10760272\rsid10951817\rsid11015424\rsid11095783\rsid11107534\rsid11224150\rsid11229606\rsid11230219\rsid11369554\rsid11613206\rsid11632249\rsid11676698
+\rsid11745537\rsid11936795\rsid11994093\rsid12016559\rsid12321879\rsid12483380\rsid12548342\rsid12613461\rsid12649626\rsid12791161\rsid12804081\rsid12870507\rsid12980889\rsid13004705\rsid13007617\rsid13110106\rsid13112801\rsid13240722\rsid13328841
+\rsid13336212\rsid13589070\rsid13637968\rsid13654305\rsid13783570\rsid14101503\rsid14107866\rsid14117292\rsid14240631\rsid14254048\rsid14299190\rsid14303978\rsid14311941\rsid14319332\rsid14352839\rsid14429059\rsid14434712\rsid14699709\rsid14749252
+\rsid14756287\rsid14825882\rsid15040283\rsid15142898\rsid15167476\rsid15231427\rsid15286622\rsid15290249\rsid15410853\rsid15491589\rsid15676556\rsid15825446\rsid15874102\rsid15946803\rsid16018894\rsid16069256\rsid16072846\rsid16078530\rsid16085697
+\rsid16123551\rsid16201594\rsid16340170\rsid16392012\rsid16451237\rsid16473449\rsid16524744\rsid16542872\rsid16543614\rsid16723387}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0
+\mnaryLim1}{\info{\creatim\yr2006\mo11\dy27\hr13\min3}{\revtim\yr2006\mo11\dy27\hr13\min3}{\version1}{\edmins0}{\nofpages1}{\nofwords169}{\nofchars1015}{\nofcharsws1182}{\vern32857}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordm
+l}{\xmlns2 urn:schemas-microsoft-com:office:smarttags}}\paperw12240\paperh15840\margl1152\margr1152\margt1152\margb1152\gutter0\ltrsect
+\widowctrl\ftnbj\aenddoc\trackmoves1\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\noxlattoyen
+\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1152\dgvorigin1152\dghshow1\dgvshow1
+\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\rempersonalinfo\allowfieldendsel
+\wrppunct\asianbrkrule\rsidroot12483380\newtblstyruls\nogrowautofit\viewbksp1\remdttm\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \fet0{\*\wgrffmtfilter 013f}\ilfomacatclnup0
+{\*\docvar {db_xml}{\'0d\'0dhttp://usetermassembly/dealbuilder_live/DealBuilderNET/dealbuilder.aspxmicrosoftmicrosoftmicrosoft96729672tbctbcUSETERMS_SUPPSUPER_ENGLISH2.6List of Supplement License Terms Languages\'0d2006032
+9495trueuniquetruetruetruetruetruetruetrueeagerday_month_year,.day
+_month_year,._blankrtffalsedraftingindefinitetrueautosave|text|falseowner|text|REDMOND\'5cmalinftruefalsetruepromptvaluedeferredgrouppagesureunknownunsurefalsealiasfalseascendingfalsetruefalseRepeatCheckPromptAnswerDeferralGuidanceInsert your comments belowVaria
+ble/dealbuilder_live/help/dealbuilder/help.htmlonsubmittruetruefalsetruefalsefalsetrue2dropdownsureUnknownfirstOtherlast20
+204Specify othe
+rs:Specify other:11, and and/or or YesNo(%1 of %2)&\'3bnbsp\'3bvisibledigitsPrevNext&\'3bnbsp\'3b|&\'3bnbsp\'3b*afteraftertruefalseclient_side<\'3bU>\'3bWARNING:&l
+t\'3b/U>\'3b That page is no longer relevant because of answers given on this page or a previous page!enabledrelevant_pages11100Chinese (Simplified)Chinese (Traditional)CzechDanishDutchEnglishFinnishFrenchGermanGreekHungarianItalianJapaneseKoreanNorwegian (Bokmal)PolishPortuguese (Brazil)Portuguese (Portugal)RussianSpanishSwedishTurkish101Microsoft .NET Framework 3.002006/11/012009/09/01NAAdditional terms for the supplementWindows operating
+ system}}{\*\ftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid6952772 \chftnsep
+\par }}{\*\ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid6952772 \chftnsepc
+\par }}{\*\aftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid6952772 \chftnsep
+\par }}{\*\aftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid6952772 \chftnsepc
+\par }}\ltrpar \sectd \ltrsect\sbknone\linex0\endnhere\sectlinegrid360\sectdefaultcl\sectrsid7030393\sftnbj {\headerl \ltrpar \pard\plain \ltrpar\s71\ql \li0\ri0\sb120\sa120\widctlpar
+\tqc\tx4680\tqr\tx9360\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0
+\insrsid16473449
+\par }}{\headerr \ltrpar \pard\plain \ltrpar\s71\ql \li0\ri0\sb120\sa120\widctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid16473449
+\par }}{\footerl \ltrpar \pard\plain \ltrpar\s73\ql \li0\ri0\sb120\sa120\widctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid16473449
+\par }}{\footerr \ltrpar \pard\plain \ltrpar\s73\ql \li0\ri0\sb120\sa120\widctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid16473449
+\par }}{\headerf \ltrpar \pard\plain \ltrpar\s71\ql \li0\ri0\sb120\sa120\widctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid16473449
+\par }}{\footerf \ltrpar \pard\plain \ltrpar\s73\ql \li0\ri0\sb120\sa120\widctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs20\alang1025 \ltrch\fcs0
+\fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid16473449
+\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}
+{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8
+\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar
+\s42\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6648707 \rtlch\fcs1 \ab\af38\afs28\alang1025 \ltrch\fcs0 \b\fs28\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033
+{\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid12483380\charrsid6952772 \hich\af38\dbch\af11\loch\f38 MICROSOFT SOFTWARE SUPPLEMENT LICENSE TERMS
+\par }\pard\plain \ltrpar\s43\ql \li0\ri0\sb120\sa120\widctlpar\brdrb\brdrs\brdrw10\brsp20 \wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6648707 \rtlch\fcs1 \ab\af38\afs28\alang1025 \ltrch\fcs0
+\b\fs28\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid6648707 \hich\af38\dbch\af11\loch\f38 MICROSOFT }{\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid6453702 \hich\af38\dbch\af11\loch\f38
+ASP.NET 2.0 {\*\xmlopen\xmlns2{\factoidname City}}{\*\xmlopen\xmlns2{\factoidname place}}\hich\af38\dbch\af11\loch\f38 AJAX{\*\xmlclose}{\*\xmlclose} EXTENSIONS}{\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid12483380\charrsid6952772
+\par }\pard\plain \ltrpar\s44\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6648707 \rtlch\fcs1 \ab\af38\afs20\alang1025 \ltrch\fcs0
+\b\fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid12483380\charrsid6952772 \hich\af38\dbch\af11\loch\f38
+Microsoft Corporation (or based on where you live, one of its affiliates) licenses this supplement to you. If you are licensed to use }{\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid8532277\charrsid6952772 \hich\af38\dbch\af11\loch\f38 Microsoft }{
+\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid6648707 \hich\af38\dbch\af11\loch\f38 Windows operating system}{\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid12483380\charrsid6952772 \hich\af38\dbch\af11\loch\f38 \hich\f38 software (the \'93\loch\f38
+\hich\f38 software\'94\loch\f38 ), you may use this supplement. You may not use it if you do \hich\af38\dbch\af11\loch\f38 not have a license for the software. You may use a copy of this supplement with each validly licensed copy of the software.
+\par \hich\af38\dbch\af11\loch\f38 The following license terms describe}{\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid3893477\charrsid6952772 \hich\af38\dbch\af11\loch\f38 }{\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid12483380\charrsid6952772
+\hich\af38\dbch\af11\loch\f38 additional use }{\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid15410853\charrsid6952772 \hich\af38\dbch\af11\loch\f38 terms}{\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid12483380\charrsid6952772 \hich\af38\dbch\af11\loch\f38
+ for this supplement. }{\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid6178267\charrsid6952772 \hich\af38\dbch\af11\loch\f38 }{\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid12483380\charrsid6952772 \hich\af38\dbch\af11\loch\f38
+These terms and the license terms for the software \hich\af38\dbch\af11\loch\f38 apply to your use of the supplement. If there is a conflict, these supplemental license terms apply.}{\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid2837055\charrsid6952772
+
+\par }{\rtlch\fcs1 \af38 \ltrch\fcs0 \caps\insrsid12483380\charrsid6952772 \hich\af38\dbch\af11\loch\f38 By using this supplement, you accept these terms. If you do not accept them, do not use this supplement.}{\rtlch\fcs1 \af38 \ltrch\fcs0
+\insrsid12483380\charrsid6952772
+\par }\pard\plain \ltrpar\s65\ql \li0\ri0\sb120\sa120\widctlpar\brdrt\brdrs\brdrw10\brsp20 \wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6648707 \rtlch\fcs1 \ab\af38\afs20\alang1025 \ltrch\fcs0
+\b\fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid12483380\charrsid6952772
+\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\f38\fs20\insrsid12483380\charrsid6952772 \hich\af38\dbch\af11\loch\f38 1.\tab}}\pard\plain \ltrpar
+\s1\ql \fi-360\li360\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls16\outlinelevel0
+\pnrdate-2035639326\pnrstart0\pnrxst2\pnrxst0\pnrxst0\pnrxst0\pnrxst46\pnrxst0\pnrstop6\pnrstart1\pnrrgb1\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrrgb0\pnrstop9\pnrstart2\pnrnfc0\pnrnfc4\pnrnfc2\pnrnfc3\pnrnfc1\pnrnfc0\pnrnfc4
+\pnrnfc255\pnrnfc255\pnrnfc0\pnrnfc0\pnrnfc1\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrnfc0\pnrstop18\pnrstart3\pnrpnbr1\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0
+\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrpnbr0\pnrstop36\adjustright\rin0\lin360\itap0\pararsid5200145
+\rtlch\fcs1 \ab\af38\afs20\alang1025 \ltrch\fcs0 \b\fs20\lang1033\langfe1033\loch\af38\hich\af38\dbch\af11\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid12483380\charrsid6952772 \hich\af38\dbch\af11\loch\f38
+SUPPORT SERVICES FOR SUPPLEMENT. }{\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid12483380\charrsid6952772 \hich\af38\dbch\af11\loch\f38 Microsoft \hich\af38\dbch\af11\loch\f38 provides support services for }{\rtlch\fcs1 \ab0\af38 \ltrch\fcs0
+\b0\insrsid15410853\charrsid6952772 \hich\af38\dbch\af11\loch\f38 this software}{\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid12483380\charrsid6952772 \hich\af38\dbch\af11\loch\f38 as described at }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \ab0\af38
+\ltrch\fcs0 \cs49\b0\ul\cf2\insrsid10565710\charrsid10565710 \hich\af38\dbch\af11\loch\f38 HYPERLINK "http://www.support.microsoft.com/common/international.aspx" }{\rtlch\fcs1 \af38 \ltrch\fcs0 \b0\ul\cf2\insrsid10760272\charrsid10565710 {\*\datafield
+00d0c9ea79f9bace118c8200aa004ba90b0200000017000000340000007700770077002e0073007500700070006f00720074002e006d006900630072006f0073006f00660074002e0063006f006d002f0063006f006d006d006f006e002f0069006e007400650072006e006100740069006f006e0061006c002e0061007300
+700078000000e0c9ea79f9bace118c8200aa004ba90b7600000068007400740070003a002f002f007700770077002e0073007500700070006f00720074002e006d006900630072006f0073006f00660074002e0063006f006d002f0063006f006d006d006f006e002f0069006e007400650072006e006100740069006f006e
+0061006c002e0061007300700078000000002100000064}}}{\fldrslt {\rtlch\fcs1 \af38 \ltrch\fcs0 \cs49\b0\ul\cf2\insrsid10565710\charrsid10565710 \hich\af38\dbch\af11\loch\f38 www.support.microsoft.com/common/international.aspx}}}\sectd \ltrsect
+\sbknone\linex0\endnhere\sectlinegrid360\sectdefaultcl\sectrsid7030393\sftnbj {\rtlch\fcs1 \ab0\af38 \ltrch\fcs0 \b0\insrsid12483380\charrsid10565710 .}{\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid11613206\charrsid10565710
+\par {\listtext\pard\plain\ltrpar \s1 \rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\f38\fs20\insrsid9069536\charrsid9069536 \hich\af38\dbch\af11\loch\f38 2.\tab}}\pard \ltrpar
+\s1\ql \fi-360\li360\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls16\outlinelevel0\adjustright\rin0\lin360\itap0\pararsid14303978 {\rtlch\fcs1 \af38 \ltrch\fcs0 \insrsid9069536\charrsid9069536 \hich\af38\dbch\af11\loch\f38
+MICROSOFT AJAX LIBRARY. }{\rtlch\fcs1 \af38 \ltrch\fcs0 \b0\insrsid9069536\charrsid9069536 \hich\af38\dbch\af11\loch\f38 This supplement }{\rtlch\fcs1 \af38 \ltrch\fcs0 \b0\insrsid9069536 \hich\af38\dbch\af11\loch\f38 includes the Microsoft AJAX Library}{
+\rtlch\fcs1 \af38 \ltrch\fcs0 \b0\insrsid5965347 .}{\rtlch\fcs1 \af38 \ltrch\fcs0 \b0\insrsid14825882 \hich\af38\dbch\af11\loch\f38 }{\rtlch\fcs1 \af38 \ltrch\fcs0 \b0\insrsid5965347 \hich\af38\dbch\af11\loch\f38
+The license terms accompanying that additional}{\rtlch\fcs1 \af38 \ltrch\fcs0 \b0\insrsid6693430 \hich\af38\dbch\af11\loch\f38 }{\rtlch\fcs1 \af38 \ltrch\fcs0 \b0\insrsid5848133 \hich\af38\dbch\af11\loch\f38 software }{\rtlch\fcs1 \af38 \ltrch\fcs0
+\b0\insrsid5965347 \hich\af38\dbch\af11\loch\f38 apply to it}{\rtlch\fcs1 \af38 \ltrch\fcs0 \b0\insrsid5848133 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid13004705\charrsid13004705
+\par }\pard \ltrpar\s1\ql \li0\ri0\sb120\sa120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid13004705 {\rtlch\fcs1 \af38 \ltrch\fcs0 \b0\insrsid9069536\charrsid9069536 \hich\af38\dbch\af11\loch\f38 }{
+\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid3807310\charrsid9069536
+\par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8
+72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7
+2a3150038327acf409935ed7d757e5ee14302999a654e99e393c18936c8f23a4dc072479697d1c81e51a3b13c07e4087e6b628ee8cf5c4489cf1c4d075f92a0b
+44d7a07a83c82f308ac7b0a0f0fbf90c2480980b58abc733615aa2d210c2e02cb04430076a7ee833dfb6ce62e3ed7e14693e8317d8cd0433bf5c60f53fea2fe7
+065bd80facb647e9e25c7fc421fd2ddb526b2e9373fed4bb902e182e97b7b461e6bfad3f010000ffff0300504b030414000600080000002100a5d6a7e7c00000
+00360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4fc7060abb08
+84a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b63095120f88d94fbc
+52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462a1a82fe353
+bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f7468656d652f7468
+656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b4b0d592c9c
+070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b4757e8d3f7
+29e245eb2b260a0238fd010000ffff0300504b0304140006000800000021000bcba3ae95060000561b0000160000007468656d652f7468656d652f7468656d65
+312e786d6cec594d6f1b4518be23f11f467b6f6327b61b4775aad8b11b48d346b15bd4e37877bc3bcdecce6a669cd437d41e9190100571a012370e08a8d44a5c
+caaf09144191fa17786766d7dec96e48d24650417d48bcb3cfbcdfef331fbe7aed7eccd0011192f2a4e3d52fd73c44129f0734093bdeedd1e0d2aa87a4c24980
+194f48c79b11e95d5b7fffbdab784d45242608e627720d77bc48a9746d6949fa308ce5659e9204de4db888b18247112e05021f82dc982d2dd76aada518d3c443
+098e41ecadc984fa048db4486f3d17de67f09828a9077c26865a347166186cb05fd70839933d26d001661d0ff404fc7044ee2b0f312c15bce87835f3f196d6af
+2ee1b56c125327cc2dcc1b984f362f9b10ec2f1b9d221ccf95d6078df695cdb97c0360aa8cebf7fbbd7e7d2ecf00b0ef83a7d696a2ccc660b5decd651640f66b
+5976afd6ac355c7c41fe4ac9e676b7db6db6335bac5003b25f1b25fc6aadd5d85876f00664f1cd12bed1dde8f55a0ede802cbe55c20faeb45b0d176f4011a3c9
+7e09ad133a1864d2e79009675b95f05580afd632f80205d530af2ead62c2137552adc5f81e1703006820c38a2648cd5232c13e54710fc76341b15680d7082ebc
+b143be2c0d695d48fa82a6aae37d9862e88885bc57cfbf7ff5fc293a7af0ece8c14f470f1f1e3df8d10a72666de1242cce7af9ed677f3efe18fdf1f49b978fbe
+a8c6cb22fed71f3ef9e5e7cfab81d03e0b735e7cf9e4b7674f5e7cf5e9efdf3daa806f083c2ec247342612dd2487688fc7e098898a6b39198bf3cd1845981667
+6c24a1c409d65a2ae4f755e4a06fce30cbb2e3d8d1256e04ef08a08f2ae0f5e93dc7e06124a68a5668de8e6207b8c339eb725119856dadab10e6d13409ab958b
+6911b787f14195ee1e4e9cfcf6a729f0665e968ee3bd883866ee329c281c928428a4dff17d422abcbb4ba913d71dea0b2ef944a1bb147531ad0cc9888e9d6a5a
+4cdaa231e46556e533e4db89cdce1dd4e5accaeb4d72e022a12b30ab307e449813c6eb78aa705c25728463560cf80daca22a238733e117717da920d321611cf5
+032265d59c5b02fc2d247d1b036355a67d87cd62172914ddaf927903735e446ef2fd5e84e3b40a3ba44954c47e20f7a14431dae5aa0abec3dd0ed1cf90079c9c
+98ee3b9438e93e9d0d6ed3d031695120facd54e85c02553b0c1cd3e4efe89851e0635b031747c740802fbe7e5c51596f2b116fc09a54d5095bc7e8f724dc71d2
+ed7111d0b79f7337f134d92550e6e585e71de5bea35cef3f4fb927f5f3598976c1ad40bb7adf6037c5668b1c9fb8439e50c6866ac6c80d6936c912d689600083
+7a9e391d92f989298de06bc6eb0e2e14d8cc4182ab8fa88a86114e61835df7b4905066a24389522ee16067862b656b3c6cd2953d1636f581c1f281c46a870776
+78450fe7e782b918b3da84e6f0992b5ad102ceaa6ce54a2614dc7e1d65756dd499b5d58d6986ea1c6d7397218765d760701e4dd88020d8b640945b703ed7aae1
+6082190974dcedda9ba7c564e1225324231c902c47daef728eea264979ad989b00a89d8a1ce943de29512b686b6bb16fa0ed2c492aaa6b9ca02ecfde9b6429af
+e0459674df1e6b4796149b9325e8b0e3b59bcb4d0ff938ed781338d3c2d73885ac4bbde7c32c848b215f095bf6a736b3e9f24536dbb9636e13d4e19ac2c6bde4
+b0c303a9906a13cbc89686799595004bb4266bff7213c27a510ed84a7f0d2b5656a118fe352b208e6e6ac964427c554c766144c7ce3e6654caa78a8861141ca2
+319b8a3d0ce9d7a50afe0454c2d5846104fd00f7683adae6954bce59d3156faf0cce8e63964638a35bdda279275bb8e9e3b90de6a9601ef85669bb71eefcae98
+96bf20578a65fc3f7345af277053b012e80cf8708d2b30d2fddaf1b8501107164a23ea0f046c1c0c7740b5c05d2cbc86a282cb64f35f9003fddff69c9561da1a
+0e7c6a8f864850588f542408d9055a32d5778ab07ab67659912c13642aaa60ae4cadd9637240d84873604bafed1e8aa0d40d9b64346070c7ebcf7dce3a681cea
+4d4eb1df1c0e99afbdb607fee99d8f6d6670cae561b3a1c9e33f37b16255b5f3cdf47ced2d3aa25f2cb6598dbc2b4059612968676dff9a269c73a9b58c55f278
+b9991b07592c7b0c83f30d510af73d48ff81f58f0a9fd95f26f4823ae27bc0ad087e68c88c4250d6975a9aee3c040c998f8e33e2cc23ac85d9e0669b271db77c
+b9bee0bdaedd0795fc3ff35ef79ce19e6fcfdcec3add78a1e1ce63ec863b1bb5dd5b116ec8eff14685a1497e9c31c9313f6c157f7be2e37b90ee4db8e59f3225
+4d48e197258161033a34dd001460359aa9eb7f010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468
+656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451
+eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e319872
+0e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2
+c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100828abc13fa0000001c020000130000000000000000000000000000
+0000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000
+2b0100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000014020000746865
+6d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d00140006000800000021000bcba3ae95060000561b00001600000000000000000000
+000000d10200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000
+000000000000009a0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000950a00000000}
+{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
+617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
+6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
+656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
+{\*\latentstyles\lsdstimax266\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 heading 1;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
+\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
+\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;
+\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;}}{\*\datastore 0105000002000000180000004d73786d6c322e534158584d4c5265616465722e352e3000000000000000000000060000
+d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f0000000000000000000000009011
+9a8b6712c701feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000105000000000000}}
\ No newline at end of file
diff --git a/lib/Mono/2.0/NUnitAsp.dll b/lib/Mono/2.0/NUnitAsp.dll
new file mode 100644
index 00000000..9f45eff8
Binary files /dev/null and b/lib/Mono/2.0/NUnitAsp.dll differ
diff --git a/lib/Mono/2.0/NUnitAspEx.dll b/lib/Mono/2.0/NUnitAspEx.dll
new file mode 100644
index 00000000..030f906e
Binary files /dev/null and b/lib/Mono/2.0/NUnitAspEx.dll differ
diff --git a/lib/Mono/2.0/NUnitAspEx.pdb b/lib/Mono/2.0/NUnitAspEx.pdb
new file mode 100644
index 00000000..de8778a0
Binary files /dev/null and b/lib/Mono/2.0/NUnitAspEx.pdb differ
diff --git a/lib/Mono/2.0/NUnitAspEx.xml b/lib/Mono/2.0/NUnitAspEx.xml
new file mode 100644
index 00000000..e6d3470a
--- /dev/null
+++ b/lib/Mono/2.0/NUnitAspEx.xml
@@ -0,0 +1,139 @@
+
+
+
+ NUnitAspEx
+
+
+
+
+ Encapsulates a request from within a testsuite using the "asptest://" pseudo-protocol.
+
+
+
+
+ Encapsulates the ugly details of deriving from HttpWebRequest.
+
+
+ Since various frameworks like NUnitAsp rely on the output of WebRequest.Create() being of type HttpWebRequest
+ but HttpWebRequest is not customizable the easy way, this class shields further derived classes from the ugly reflection details.
+
+
+
+
+ Creates a new instance for the given uri.
+
+ the to create this request for.
+
+
+
+
+
+
+
+
+
+
+ Override this method in your derived class and call to set the response object.
+
+
+
+
+ Create the stream to be used for uploading content.
+
+
+
+
+
+ Encapsulates a response from an .
+
+
+
+
+ Encapsulates the ugly details of deriving from HttpWebResponse.
+
+
+
+
+ Summary description for HttpReflectionUtils.
+
+
+
+
+ Summary description for HttpWebClient.
+
+
+
+
+ An AspFixtureHost lives inside it's own AppDomain with an initialized HttpRuntime.
+
+
+
+
+ Summary description for IAspFixtureHost.
+
+
+
+
+ Creates a new Host instance within a new AppDomain based on the passed in Properties.
+
+
+ You must not call this method from within an existing Host's AppDomain.
+
+
+
+
+ Unload the passed Host's AppDomain.
+
+
+
+
+ Return null to avoid timing out of remoting references
+
+
+
+
+
+ Initializes the newly created host instance.
+
+
+
+
+ Use this property to gain access to the Host from within the Host's AppDomain
+
+
+ This property is set only within the Host's AppDomain.
+ Outside the AppDomain it will always return null.
+
+
+
+
+ Use to synchronize access to this host instance
+
+
+
+
+ Returns a reference to the AppDomain, that created this Host instance
+
+
+
+
+ Returns the physical assembly reference location this AppDomain has been created from.
+
+
+
+
+ Summary description for AspTestClient.
+
+
+
+
+ Summary description for AspTestContext.
+
+
+
+
+ Summary description for AspTestExecutionModule.
+
+
+
+
diff --git a/lib/Mono/2.0/NVelocity.dll b/lib/Mono/2.0/NVelocity.dll
new file mode 100644
index 00000000..9b44dfeb
Binary files /dev/null and b/lib/Mono/2.0/NVelocity.dll differ
diff --git a/lib/Mono/2.0/NVelocity.pdb b/lib/Mono/2.0/NVelocity.pdb
new file mode 100644
index 00000000..6acd7032
Binary files /dev/null and b/lib/Mono/2.0/NVelocity.pdb differ
diff --git a/lib/Mono/2.0/Quartz.dll b/lib/Mono/2.0/Quartz.dll
new file mode 100644
index 00000000..a1263478
Binary files /dev/null and b/lib/Mono/2.0/Quartz.dll differ
diff --git a/lib/Mono/2.0/Rhino.Mocks.dll b/lib/Mono/2.0/Rhino.Mocks.dll
new file mode 100644
index 00000000..89facd92
Binary files /dev/null and b/lib/Mono/2.0/Rhino.Mocks.dll differ
diff --git a/lib/Mono/2.0/Rhino.Mocks.xml b/lib/Mono/2.0/Rhino.Mocks.xml
new file mode 100644
index 00000000..0ec4e02d
--- /dev/null
+++ b/lib/Mono/2.0/Rhino.Mocks.xml
@@ -0,0 +1,8127 @@
+
+
+
+ Rhino.Mocks
+
+
+
+
+ What should BackToRecord clear
+
+
+
+
+ Nothing
+
+
+
+
+ Event subscribers for this instance
+
+
+
+
+ Methods that should be forwarded to the base class implementation
+
+
+
+
+ Properties that should behave like properties
+
+
+
+
+ Remove al the behavior of the object
+
+
+
+
+ Interface for constraints
+
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ And operator for constraints
+
+
+
+
+ Not operator for constraints
+
+
+
+
+ Or operator for constraints
+
+
+
+
+ Allow overriding of || or &&
+
+
+
+
+
+
+
+
+ Allow overriding of || or &&
+
+
+
+
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain that the public field matches another constraint.
+
+
+
+
+ Creates a new instance.
+
+ Name of the public field.
+ Constraint to place on the public field value.
+
+
+
+ Creates a new instance, specifying a disambiguating
+ for the public field.
+
+ The type that declares the public field, used to disambiguate between public fields.
+ Name of the public field.
+ Constraint to place on the public field value.
+
+
+
+ Determines if the object passes the constraint.
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain that the public field has a specified value
+
+
+
+
+ Creates a new instance.
+
+ Name of the public field.
+ Expected value.
+
+
+
+ Creates a new instance, specifying a disambiguating
+ for the public field.
+
+ The type that declares the public field, used to disambiguate between public fields.
+ Name of the public field.
+ Expected value.
+
+
+
+ Constrain that the property matches another constraint.
+
+
+
+
+ Creates a new instance.
+
+ Name of the property.
+ Constraint to place on the property value.
+
+
+
+ Creates a new instance, specifying a disambiguating
+ for the property.
+
+ The type that declares the property, used to disambiguate between properties.
+ Name of the property.
+ Constraint to place on the property value.
+
+
+
+ Determines if the object passes the constraint.
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain that the property has a specified value
+
+
+
+
+ Creates a new instance.
+
+ Name of the property.
+ Expected value.
+
+
+
+ Creates a new instance, specifying a disambiguating
+ for the property.
+
+ The type that declares the property, used to disambiguate between properties.
+ Name of the property.
+ Expected value.
+
+
+
+ Constrain that the parameter must be of the specified type
+
+
+
+
+ Creates a new instance.
+
+ Type.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that determines whether an object is the same object as another.
+
+
+
+
+ Creates a new instance.
+
+ Obj.
+
+
+
+ Determines if the object passes the constraints.
+
+
+
+
+ Gets the message for this constraint.
+
+
+
+
+ Evaluate a parameter using constraints
+
+
+
+
+ Create new instance
+
+
+
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain that the list contains the same items as the parameter list
+
+
+
+
+ Creates a new instance.
+
+ In list.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain that the parameter is one of the items in the list
+
+
+
+
+ Creates a new instance.
+
+ In list.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain that the object is inside the parameter list
+
+
+
+
+ Creates a new instance.
+
+ In list.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Applies another AbstractConstraint to the collection count.
+
+
+
+
+ Creates a new instance.
+
+ The constraint that should be applied to the collection count.
+
+
+
+ Determines if the parameter conforms to this constraint.
+
+
+
+
+ Gets the message for this constraint.
+
+
+
+
+ Applies another AbstractConstraint to a specific list element.
+
+
+
+
+ Creates a new instance.
+
+ The zero-based index of the list element.
+ The constraint that should be applied to the list element.
+
+
+
+ Determines if the parameter conforms to this constraint.
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrains that all elements are in the parameter list
+
+
+
+
+ Initializes a new instance of the class.
+
+ The these.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Combines two constraints, constraint pass if either is fine.
+
+
+
+
+ Creates a new instance.
+
+ C1.
+ C2.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Negate a constraint
+
+
+
+
+ Creates a new instance.
+
+ C1.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Combines two constraints
+
+
+
+
+
+
+ Creates a new instance.
+
+ C1.
+ C2.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain the argument to validate according to regex pattern
+
+
+
+
+ Creates a new instance.
+
+ Pattern.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that evaluate whatever an argument contains the specified string.
+
+
+
+
+ Creates a new instance.
+
+ Inner string.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that evaluate whatever an argument ends with the specified string
+
+
+
+
+ Creates a new instance.
+
+ End.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that evaluate whatever an argument start with the specified string
+
+
+
+
+ Creates a new instance.
+
+ Start.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that evaluate whatever an object equals another
+
+
+
+
+ Creates a new instance.
+
+ Obj.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that always returns true
+
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that evaluate whatever a comparable is greater than another
+
+
+
+
+ Creates a new instance.
+
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Initializes a new constraint object.
+
+ The expected object, The actual object is passed in as a parameter to the method
+
+
+
+ Evaluate this constraint.
+
+ The actual object that was passed in the method call to the mock.
+ True when the constraint is met, else false.
+
+
+
+ Checks if the properties of the object
+ are the same as the properies of the object.
+
+ The expected object
+ The actual object
+ True when both objects have the same values, else False.
+
+
+
+
+
+
+
+
+
+
+ This is the real heart of the beast.
+
+
+
+ Used by CheckReferenceType to check all properties of the reference type.
+
+ The expected object
+ The actual object
+ True when both objects have the same values, else False.
+
+
+
+ Used by CheckReferenceType to check all fields of the reference type.
+
+ The expected object
+ The actual object
+ True when both objects have the same values, else False.
+
+
+
+ Checks the items of both collections
+
+ The expected collection
+
+
+ True if both collections contain the same items in the same order.
+
+
+
+ Builds a propertyname from the Stack _properties like 'Order.Product.Price'
+ to be used in the error message.
+
+ A nested property name.
+
+
+
+ Rhino.Mocks uses this property to generate an error message.
+
+
+ A message telling the tester why the constraint failed.
+
+
+
+
+ Central location for constraints for object's public fields
+
+
+
+
+ Constrains the parameter to have a public field with the specified value
+
+ Name of the public field.
+ Expected value.
+
+
+
+
+
+ Constrains the parameter to have a public field with the specified value.
+
+ The type that declares the public field, used to disambiguate between public fields.
+ Name of the public field.
+ Expected value.
+
+
+
+
+
+ Constrains the parameter to have a public field satisfying a specified constraint.
+
+ Name of the public field.
+ Constraint for the public field.
+
+
+
+ Constrains the parameter to have a public field satisfying a specified constraint.
+
+ The type that declares the public field, used to disambiguate between public fields.
+ Name of the public field.
+ Constraint for the public field.
+
+
+
+ Determines whether the parameter has the specified public field and that it is null.
+
+ Name of the public field.
+
+
+
+
+
+ Determines whether the parameter has the specified public field and that it is null.
+
+ The type that declares the public field, used to disambiguate between public fields.
+ Name of the public field.
+
+
+
+
+
+ Determines whether the parameter has the specified public field and that it is not null.
+
+ Name of the public field.
+
+
+
+
+
+ Determines whether the parameter has the specified public field and that it is not null.
+
+ The type that declares the public field, used to disambiguate between public fields.
+ Name of the public field.
+
+
+
+
+
+ Central location for constraints
+
+
+
+
+ Evaluate a greater than constraint for .
+
+ The object the parameter should be greater than
+
+
+
+ Evaluate a less than constraint for .
+
+ The object the parameter should be less than
+
+
+
+ Evaluate a less than or equal constraint for .
+
+ The object the parameter should be less than or equal to
+
+
+
+ Evaluate a greater than or equal constraint for .
+
+ The object the parameter should be greater than or equal to
+
+
+
+ Evaluate an equal constraint for .
+
+ The object the parameter should equal to
+
+
+
+ Evaluate a not equal constraint for .
+
+ The object the parameter should not equal to
+
+
+
+ Evaluate a same as constraint.
+
+ The object the parameter should the same as.
+
+
+
+ Evaluate a not same as constraint.
+
+ The object the parameter should not be the same as.
+
+
+
+ A constraints that accept anything
+
+
+
+
+
+
+ A constraint that accept only nulls
+
+
+
+
+
+
+ A constraint that accept only non null values
+
+
+
+
+
+
+ A constraint that accept only value of the specified type
+
+
+
+
+ A constraint that accept only value of the specified type
+
+
+
+
+ Evaluate a parameter using a predicate
+
+ The predicate to use
+
+
+
+ Central location for constraints about lists and collections
+
+
+
+
+ Determines whether the specified obj is in the paramter.
+ The parameter must be IEnumerable.
+
+ Obj.
+
+
+
+
+
+ Determains whatever the parameter is in the collection.
+
+
+
+
+ Determains that the parameter collection is identical to the specified collection
+
+
+
+
+ Determines that the parameter collection has the specified number of elements.
+
+ The constraint that should be applied to the collection count.
+
+
+
+ Determines that an element of the parameter collections conforms to another AbstractConstraint.
+
+ The zero-based index of the list element.
+ The constraint which should be applied to the list element.
+
+
+
+ Determines that all elements of the specified collection are in the the parameter collection
+
+ The collection to compare against
+ The constraint which should be applied to the list parameter.
+
+
+
+ Central location for constraints for object's properties
+
+
+
+
+ Constrains the parameter to have property with the specified value
+
+ Name of the property.
+ Expected value.
+
+
+
+
+
+ Constrains the parameter to have property with the specified value.
+
+ The type that declares the property, used to disambiguate between properties.
+ Name of the property.
+ Expected value.
+
+
+
+
+
+ Constrains the parameter to have a property satisfying a specified constraint.
+
+ Name of the property.
+ Constraint for the property.
+
+
+
+ Constrains the parameter to have a property satisfying a specified constraint.
+
+ The type that declares the property, used to disambiguate between properties.
+ Name of the property.
+ Constraint for the property.
+
+
+
+ Determines whether the parameter has the specified property and that it is null.
+
+ Name of the property.
+
+
+
+
+
+ Determines whether the parameter has the specified property and that it is null.
+
+ The type that declares the property, used to disambiguate between properties.
+ Name of the property.
+
+
+
+
+
+ Determines whether the parameter has the specified property and that it is not null.
+
+ Name of the property.
+
+
+
+
+
+ Determines whether the parameter has the specified property and that it is not null.
+
+ The type that declares the property, used to disambiguate between properties.
+ Name of the property.
+
+
+
+
+
+ constraints the parameter to have the exact same property values as the expected object.
+
+ An object, of the same type as the parameter, whose properties are set with the expected values.
+ An instance of the constraint that will do the actual check.
+
+ The parameter's public property values and public field values will be matched against the expected object's
+ public property values and public field values. The first mismatch will be reported and no further matching is done.
+ The matching is recursive for any property or field that has properties or fields of it's own.
+ Collections are supported through IEnumerable, which means the constraint will check if the actual and expected
+ collection contain the same values in the same order, where the values contained by the collection can have properties
+ and fields of their own that will be checked as well because of the recursive nature of this constraint.
+
+
+
+
+ Central location for all text related constraints
+
+
+
+
+ Constrain the argument to starts with the specified string
+
+
+
+
+ Constrain the argument to end with the specified string
+
+
+
+
+ Constrain the argument to contain the specified string
+
+
+
+
+ Constrain the argument to validate according to regex pattern
+
+
+
+
+ Allows expectations to be set on methods that should never be called.
+ For methods with void return value, you need to use LastCall or
+ DoNotExpect.Call() with a delegate.
+
+
+
+
+ A delegate that executes an action
+
+
+
+
+ Sets LastCall.Repeat.Never() on /any/ proxy on /any/ repository on the current thread.
+ This method if not safe for multi threading scenarios.
+
+
+
+
+ Accepts a delegate that will execute inside the method which
+ LastCall.Repeat.Never() will be applied to.
+ It is expected to be used with anonymous delegates / lambda expressions and only one
+ method should be called.
+
+
+ IService mockSrv = mocks.CreateMock(typeof(IService)) as IService;
+ DoNotExpect.Call(delegate{ mockSrv.Stop(); });
+ ...
+
+
+
+
+ An expectaton violation was detected.
+
+
+
+
+ Creates a new instance.
+
+ Message.
+
+
+
+ Serialization constructor
+
+
+
+
+ Signals that an object was call on a mock repostiroy which doesn't
+ belong to this mock repository or not a mock
+
+
+
+
+ Creates a new instance.
+
+ Message.
+
+
+
+ Serialization constructor
+
+
+
+
+ Allows to set expectation on methods that has return values.
+ For methods with void return value, you need to use LastCall
+
+
+
+
+ A delegate that execute an action
+
+
+
+
+ The method options for the last call on /any/ proxy on /any/ repository on the current thread.
+ This method if not safe for multi threading scenarios, use .
+
+
+
+
+ Accepts a delegate that will execute inside the method, and then return the resulting
+ instance.
+ It is expected to be used with anonymous delegates / lambda expressions and only one
+ method should be called.
+
+
+ IService mockSrv = mocks.CreateMock(typeof(IService)) as IService;
+ Expect.Call(delegate{ mockSrv.Start(); }).Throw(new NetworkException());
+ ...
+
+
+
+
+ Get the method options for the last method call on the mockInstance.
+
+
+
+
+ Interface to validate that a method call is correct.
+
+
+
+
+ Validate the arguments for the method.
+ This method can be called numerous times, so be careful about side effects
+
+ The arguments with which the method was called
+
+
+
+ Add an actual method call to this expectation
+
+
+
+
+ Returns the return value or throw the exception and setup any output / ref parameters
+ that has been set.
+
+
+
+
+ Gets the error message.
+
+
+
+
+
+
+ Range of expected calls
+
+
+
+
+ Number of call actually made for this method
+
+
+
+
+ If this expectation is still waiting for calls.
+
+
+
+
+ The return value for a method matching this expectation
+
+
+
+
+ Gets or sets the exception to throw on a method matching this expectation.
+
+
+
+
+ Gets a value indicating whether this instance's action is staisfied.
+ A staisfied instance means that there are no more requirements from
+ this method. A method with non void return value must register either
+ a return value or an exception to throw.
+
+
+
+
+ Gets the method this expectation is for.
+
+
+
+
+ Gets or sets what special condtions there are for this method
+ repeating.
+
+
+
+
+ Gets a value indicating whether this expectation was satisfied
+
+
+
+
+ Specify whatever this expectation has a return value set
+ You can't check ReturnValue for this because a valid return value include null.
+
+
+
+
+ An action to execute when the method is matched.
+
+
+
+
+ Set the out / ref parameters for the method call.
+ The indexing is zero based and ignores any non out/ref parameter.
+ It is possible not to pass all the parameters. This method can be called only once.
+
+
+
+
+ Documentation Message
+
+
+
+
+ Gets the invocation for this expectation
+
+ The invocation.
+
+
+
+ Abstract class that holds common information for
+ expectations.
+
+
+
+
+ Number of actuall calls made that passed this expectation
+
+
+
+
+ Range of expected calls that should pass this expectation.
+
+
+
+
+ The return value for a method matching this expectation
+
+
+
+
+ The exception to throw on a method matching this expectation.
+
+
+
+
+ The method this expectation is for.
+
+
+
+
+ The return value for this method was set
+
+
+
+
+ Whether this method will repeat
+ unlimited number of times.
+
+
+
+
+ A delegate that will be run when the
+ expectation is matched.
+
+
+
+
+ The arguments that matched this expectation.
+
+
+
+
+ Documentation message
+
+
+
+
+ The method originalInvocation
+
+
+
+
+ Get the hash code
+
+
+
+
+ Add an actual method call to this expectation
+
+
+
+
+ Returns the return value or throw the exception and setup output / ref parameters
+
+
+
+
+ Validate the arguments for the method on the child methods
+
+ The arguments with which the method was called
+
+
+
+ Creates a new instance.
+
+ The originalInvocation for this method, required because it contains the generic type infromation
+
+
+
+ Creates a new instance.
+
+ Expectation.
+
+
+
+ Validate the arguments for the method on the child methods
+
+ The arguments with which the method was called
+
+
+
+ Determines if this object equal to obj
+
+
+
+
+ The error message for these arguments
+
+
+
+
+ Asserts that the delegate has the same parameters as the expectation's method call
+
+
+
+
+ Setter for the outpur / ref parameters for this expecataion.
+ Can only be set once.
+
+
+
+
+ Specify whatever this expectation has a return value set
+ You can't check ReturnValue for this because a valid return value include null.
+
+
+
+
+ Gets the method this expectation is for.
+
+
+
+
+ Gets the originalInvocation for this expectation
+
+ The originalInvocation.
+
+
+
+ Gets or sets what special condtions there are for this method
+
+
+
+
+ Range of expected calls
+
+
+
+
+ Number of call actually made for this method
+
+
+
+
+ If this expectation is still waiting for calls.
+
+
+
+
+ Gets a value indicating whether this expectation was satisfied
+
+
+
+
+ The return value for a method matching this expectation
+
+
+
+
+ An action to execute when the method is matched.
+
+
+
+
+ Gets or sets the exception to throw on a method matching this expectation.
+
+
+
+
+ Gets a value indicating whether this instance's action is staisfied.
+ A staisfied instance means that there are no more requirements from
+ this method. A method with non void return value must register either
+ a return value or an exception to throw or an action to execute.
+
+
+
+
+ Documentation message
+
+
+
+
+ Gets the error message.
+
+
+
+
+
+
+ Expectation that matchs any arguments for the method.
+
+
+
+
+ Creates a new instance.
+
+ Invocation for this expectation
+
+
+
+ Creates a new instance.
+
+ Expectation.
+
+
+
+ Validate the arguments for the method.
+
+ The arguments with which the method was called
+
+
+
+ Determines if the object equal to expectation
+
+
+
+
+ Get the hash code
+
+
+
+
+ Gets the error message.
+
+
+
+
+
+
+ Summary description for ArgsEqualExpectation.
+
+
+
+
+ Creates a new instance.
+
+ Expected args.
+ The invocation for this expectation
+
+
+
+ Validate the arguments for the method.
+
+ The arguments with which the method was called
+
+
+
+ Determines if the object equal to expectation
+
+
+
+
+ Get the hash code
+
+
+
+
+ Gets the error message.
+
+
+
+
+
+
+ Get the expected args.
+
+
+
+
+ Call a specified callback to verify the expectation
+
+
+
+
+ Creates a new instance.
+
+ Expectation.
+ Callback.
+
+
+
+ Creates a new instance.
+
+ Invocation for this expectation
+ Callback.
+
+
+
+ Validate the arguments for the method on the child methods
+
+ The arguments with which the method was called
+
+
+
+ Determines if the object equal to expectation
+
+
+
+
+ Get the hash code
+
+
+
+
+ Gets the error message.
+
+
+
+
+
+
+ Expect the method's arguments to match the contraints
+
+
+
+
+ Creates a new instance.
+
+ Invocation for this expectation
+ Constraints.
+
+
+
+ Creates a new instance.
+
+ Expectation.
+ Constraints.
+
+
+
+ Validate the arguments for the method.
+
+ The arguments with which the method was called
+
+
+
+ Determines if the object equal to expectation
+
+
+
+
+ Get the hash code
+
+
+
+
+ Gets the error message.
+
+
+
+
+
+
+ Log expectations - allows to see what is going on inside Rhino Mocks
+
+
+
+
+ Logs the expectation as is was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the expectation as it was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the unexpected method call.
+
+ The invocation.
+ The message.
+
+
+
+ Doesn't log anything, just makes happy noises
+
+
+
+
+ Logs the expectation as is was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the expectation as it was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the unexpected method call.
+
+ The invocation.
+ The message.
+
+
+
+ Operation on a remoting proxy
+
+
+ It is not possible to directly communicate to a real proxy via transparent proxy.
+ Transparent proxy impersonates a user type and only methods of that user type are callable.
+ The only methods that are guaranteed to exist on any transparent proxy are methods defined
+ in Object: namely ToString(), GetHashCode(), and Equals()).
+
+ These three methods are the only way to tell the real proxy to do something.
+ Equals() is the most suitable of all, since it accepts an arbitrary object parameter.
+ The RemotingProxy code is built so that if it is compared to an IRemotingProxyOperation,
+ transparentProxy.Equals(operation) will call operation.Process(realProxy).
+ This way we can retrieve a real proxy from transparent proxy and perform
+ arbitrary operation on it.
+
+
+
+
+ Generates remoting proxies and provides utility functions
+
+
+
+
+ Create the proxy using remoting
+
+
+
+
+ Check whether an object is a transparent proxy with a RemotingProxy behind it
+
+ Object to check
+ true if the object is a transparent proxy with a RemotingProxy instance behind it, false otherwise
+ We use Equals() method to communicate with the real proxy behind the object.
+ See IRemotingProxyOperation for more details
+
+
+
+ Retrieve a mocked object from a transparent proxy
+
+ Transparent proxy with a RemotingProxy instance behind it
+ Mocked object associated with the proxy
+ We use Equals() method to communicate with the real proxy behind the object.
+ See IRemotingProxyOperation for more details
+
+
+
+ Implementation of IInvocation based on remoting proxy
+
+ Some methods are marked NotSupported since they either don't make sense
+ for remoting proxies, or they are never called by Rhino Mocks
+
+
+
+ Rudimetry implementation that simply logs methods calls as text.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Logs the expectation as is was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the expectation as it was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the unexpected method call.
+
+ The invocation.
+ The message.
+
+
+
+ Different actions on this mock
+
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Verify that this mock expectations have passed.
+
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Set the exception to throw when Verify is called.
+ This is used to report exception that may have happened but where caught in the code.
+ This way, they are reported anyway when Verify() is called.
+
+
+
+
+ Gets the matching verify state for this state
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Records all the expectations for a mock
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Set the exception to throw when Verify is called.
+ This is used to report exception that may have happened but where caught in the code.
+ This way, they are reported anyway when Verify() is called.
+
+
+
+
+ Creates a new instance.
+
+ Repository.
+ The proxy that generates the method calls
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Verify that this mock expectations have passed.
+
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Asserts the previous method is closed (had an expectation set on it so we can replay it correctly)
+
+
+
+
+ Gets the last expectation.
+
+
+
+
+ Gets the total method calls count.
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Gets the matching verify state for this state
+
+
+
+
+ Behave like a stub, all properties and events acts normally, methods calls
+ return default values by default (but can use expectations to set them up), etc.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The proxy that generates the method calls
+ Repository.
+
+
+
+ We don't care much about expectations here, so we will remove the exepctation if
+ it is not closed.
+
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+
+
+ Validate all expectations on a mock
+
+
+
+
+ The repository for this state
+
+
+
+
+ The proxy object for this state
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Creates a new instance.
+
+ The previous state for this method
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Add a method call for this state' mock.
+ This allows derived method to cleanly get a the setupresult behavior while adding
+ their own.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Set the exception to throw when Verify is called.
+ This is used to report exception that may have happened but where caught in the code.
+ This way, they are reported anyway when Verify() is called.
+
+
+
+
+ Verify that this mock expectations have passed.
+
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Gets the matching verify state for this state
+
+
+
+
+ Validate expectations on recorded methods, but in general completely ignoring them.
+ Similar to except that it would return a
+ when BackToRecord is called.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The previous state for this method
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Write rhino mocks log info to the trace
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ if set to true [log recorded].
+ if set to true [log replayed].
+ if set to true [log unexpected].
+
+
+
+ Logs the expectation as is was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the expectation as it was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the unexpected method call.
+
+ The invocation.
+ The message.
+
+
+
+ Writes log information as stack traces about rhino mocks activity
+
+
+
+
+ Allows to redirect output to a different location.
+
+
+
+
+ Logs the expectation as is was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the expectation as it was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the unexpected method call.
+
+ The invocation.
+ The message.
+
+
+
+ Marker interface used to indicate that this is a partial mock.
+
+
+
+
+ Options for CallOriginalMethod
+
+
+
+
+ No expectation is created, the method will be called directly
+
+
+
+
+ Normal expectation is created, but when the method is later called, it will also call the original method
+
+
+
+
+ Adds optional new usage:
+ using(mockRepository.Record()) {
+ Expect.Call(mock.Method()).Return(retVal);
+ }
+ using(mockRepository.Playback()) {
+ // Execute code
+ }
+ N.B. mockRepository.ReplayAll() and mockRepository.VerifyAll()
+ calls are taken care of by Record/Playback
+
+
+ Creates proxied instances of types.
+
+
+
+
+ Delegate: CreateMockState
+ This is used internally to cleanly handle the creation of different
+ RecordMockStates.
+
+
+
+
+ This is used to record the last repository that has a method called on it.
+
+
+
+
+ this is used to get to the last proxy on this repository.
+
+
+
+
+ For mock delegates, maps the proxy instance from intercepted invocations
+ back to the delegate that was originally returned to client code, if any.
+
+
+
+
+ All the proxies in the mock repositories
+
+
+
+
+ This is here because we can't put it in any of the recorders, since repeatable methods
+ have no orderring, and if we try to handle them using the usual manner, we would get into
+ wierd situations where repeatable method that was defined in an orderring block doesn't
+ exists until we enter this block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a new instance.
+
+
+
+
+ Move the repository to ordered mode
+
+
+
+
+ Move the repository to un-ordered mode
+
+
+
+
+ Creates a mock for the specified type.
+
+ Type.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Creates a remoting mock for the specified type.
+
+ Type.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Creates a remoting mock for the specified type.
+
+
+
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+
+
+ Creates a mock from several types, with strict semantics.
+ Only may be a class.
+
+
+
+
+ Creates a mock from several types, with strict semantics.
+ Only may be a class.
+
+ The main type to mock.
+ Extra interface types to mock.
+ Arguments for the class' constructor, if mocking a concrete class.
+
+
+
+ Creates a mock from several types, with dynamic semantics.
+ Only may be a class.
+
+ The main type to mock.
+ Extra interface types to mock.
+
+
+
+ Creates a mock from several types, with dynamic semantics.
+ Only may be a class.
+
+ The main type to mock.
+ Extra interface types to mock.
+ Arguments for the class' constructor, if mocking a concrete class.
+
+
+
+ Creates a dynamic mock for the specified type.
+
+ Type.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Creates a dynamic mock for the specified type.
+
+ Type.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Creates a dynamic mock for the specified type.
+
+
+
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+
+
+ Creates a mock object that defaults to calling the class methods.
+
+ Type.
+ Arguments for the class' constructor.
+
+
+
+ Creates a mock object that defaults to calling the class methods.
+
+ Type.
+ Extra interface types to mock.
+
+
+
+ Creates a mock object that defaults to calling the class methods.
+
+ Type.
+ Extra interface types to mock.
+ Arguments for the class' constructor.
+
+
+
+ Creates a mock object using remoting proxies
+
+ Type to mock - must be MarshalByRefObject
+ Mock object
+ Proxy mock can mock non-virtual methods, but not static methods
+ Creates the mock state for this proxy
+
+
+
+ Cause the mock state to change to replay, any further call is compared to the
+ ones that were called in the record state.
+
+ the object to move to replay state
+
+
+
+ Move the mocked object back to record state.
+ Will delete all current expectations!
+
+
+
+
+ Move the mocked object back to record state.
+ Will delete all current expectations, but allows more granularity about how
+ it would behave with regard to the object state.
+
+
+
+
+ Verify that all the expectations for this object were fulfilled.
+
+ the object to verify the expectations for
+
+
+
+ Get the method options for the last call on
+ mockedInstance.
+
+ The mock object
+ Method options for the last call
+
+
+
+ Maps an invocation proxy back to the mock object instance that was originally
+ returned to client code which might have been a delegate to this proxy.
+
+ The mock object proxy from the intercepted invocation
+ The mock object
+
+
+
+ This is provided to allow advance extention functionality, where Rhino Mocks standard
+ functionality is not enough.
+
+ The type to mock
+ Delegate that create the first state of the mocked object (usualy the record state).
+ Additional types to be implemented, this can be only interfaces
+ optional arguments for the constructor
+
+
+
+
+
+ Method: GetMockedObject
+ Get an IProxy from a mocked object instance, or throws if the
+ object is not a mock object.
+
+
+
+
+ Method: GetMockedObjectOrNull
+ Get an IProxy from a mocked object instance, or null if the
+ object is not a mock object.
+
+
+
+
+ Pops the recorder.
+
+
+
+
+ Pushes the recorder.
+
+ New recorder.
+
+
+
+ All the mock objects in this repository will be moved
+ to record state.
+
+
+
+
+ All the mock objects in this repository will be moved
+ to record state.
+
+
+
+
+ Replay all the mocks from this repository
+
+
+
+
+ Verify all the mocks from this repository
+
+
+
+
+ Set the exception to be thrown when verified is called.
+
+
+
+
+ Creates a mock for the spesified type.
+
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Creates a dynamic mock for the specified type.
+
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Creates a mock object from several types.
+
+
+
+
+ Create a mock object from several types with dynamic semantics.
+
+
+
+
+ Create a mock object from several types with partial semantics.
+
+
+
+
+ Create a mock object from several types with strict semantics.
+
+ Extra interface types to mock.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Create a mock object from several types with dynamic semantics.
+
+ Extra interface types to mock.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Create a mock object from several types with partial semantics.
+
+ Extra interface types to mock.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Create a mock object with from a class that defaults to calling the class methods
+
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Create a stub object, one that has properties and events ready for use, and
+ can have methods called on it. It requires an explicit step in order to create
+ an expectation for a stub.
+
+ The arguments for constructor.
+
+
+
+ Create a stub object, one that has properties and events ready for use, and
+ can have methods called on it. It requires an explicit step in order to create
+ an expectation for a stub.
+
+ The type.
+ The arguments for constructor.
+
+
+
+
+
+ Generates a stub without mock repository
+
+ The arguments for constructor.
+
+
+
+
+
+ Generates the stub without mock repository
+
+ The type.
+ The arguments for constructor.
+
+
+
+ Gets the recorder.
+
+
+
+
+
+
+ Gets the replayer for this repository.
+
+
+
+
+
+
+ Gets the last proxy which had a method call.
+
+
+
+
+ Utility class for dealing with messing generics scenarios.
+
+
+
+
+ There are issues with trying to get this to work correctly with open generic types, since this is an edge case,
+ I am letting the runtime handle it.
+
+
+
+
+ Gets the real type, including de-constructing and constructing the type of generic
+ methods parameters.
+
+ The type.
+ The invocation.
+
+
+
+
+
+ Because we need to support complex types here (simple generics were handled above) we
+ need to be aware of the following scenarios:
+ List[T] and List[Foo[T]]
+
+
+
+
+ ExpectationsList
+
+
+
+
+ Dictionary
+
+
+
+
+ Dictionary class
+
+
+
+
+ Create a new instance of ProxyStateDictionary
+
+
+
+ Interface to allows to call a method and immediatly get it's options.
+
+
+
+
+ Get the method options for the call
+
+ The method call should go here, the return value is ignored
+
+
+
+ Allows to call a method and immediatly get it's options.
+
+
+
+
+ Creates a new instance.
+
+
+
+
+ Get the method options for the call
+
+ The method call should go here, the return value is ignored
+
+
+
+ Allows to call a method and immediatly get it's options.
+ Set the expected number for the call to Any()
+
+
+
+
+ Creates a new instance.
+
+ Proxy.
+ Mocked instance.
+
+
+
+ Get the method options for the call
+
+ The method call should go here, the return value is ignored
+
+
+
+ This class is reponsible for taking a delegate and creating a wrapper
+ interface around it, so it can be mocked.
+
+
+
+
+ The scope for all the delegate interfaces create by this mock repositroy.
+
+
+
+
+ Gets a type with an "Invoke" method suitable for use as a target of the
+ specified delegate type.
+
+
+
+
+
+
+
+
+ Raise events for all subscribers for an event
+
+
+
+
+ Raise the event
+
+
+
+
+ The most common form for the event handler signature
+
+
+
+
+ Raise events for all subscribers for an event
+
+
+
+
+ Create an event raise for the specified event on this instance.
+
+
+
+
+ Creates a new instance of EventRaiser
+
+
+
+ Raise the event
+
+
+
+
+ The most common signature for events
+ Here to allow intellisense to make better guesses about how
+ it should suggest parameters.
+
+
+
+
+ Allows to define what would happen when a method
+ is called.
+
+
+
+
+ Set the return value for the method.
+
+ The object the method will return
+ IRepeat that defines how many times the method will return this value
+
+
+
+ Throws the specified exception when the method is called.
+
+ Exception to throw
+
+
+
+ Ignores the arguments for this method. Any argument will be matched
+ againt this method.
+
+
+
+
+ Add constraints for the method's arguments.
+
+
+
+
+ Set a callback method for the last call
+
+
+
+
+ Set a delegate to be called when the expectation is matched.
+ The delegate return value will be returned from the expectation.
+
+
+
+
+ Call the original method on the class, bypassing the mocking layers.
+
+
+
+
+
+
+ Call the original method on the class, optionally bypassing the mocking layers.
+
+
+
+
+
+
+ Use the property as a simple property, getting/setting the values without
+ causing mock expectations.
+
+
+
+
+ Get an event raiser for the last subscribed event.
+
+
+
+
+ Set the parameter values for out and ref parameters.
+ This is done using zero based indexing, and _ignoring_ any non out/ref parameter.
+
+
+
+
+ Documentation message for the expectation
+
+ Message
+
+
+
+ Better syntax to define repeats.
+
+
+
+
+ Allows to specify the number of time for method calls
+
+
+
+
+ Repeat the method twice.
+
+
+
+
+ Repeat the method once.
+
+
+
+
+ Repeat the method at least once, then repeat as many time as it would like.
+
+
+
+
+ Repeat the method any number of times.
+ This has special affects in that this method would now ignore orderring.
+
+
+
+
+ Set the range to repeat an action.
+
+ Min.
+ Max.
+
+
+
+ Set the amount of times to repeat an action.
+
+
+
+
+ This method must not appear in the replay state.
+ This has special affects in that this method would now ignore orderring.
+
+
+
+
+ Allows to define what would happen when a method
+ is called.
+
+
+
+
+ Creates a new instance.
+
+ the repository for this expectation
+ the recorder for this proxy
+ the proxy for this expectation
+ Expectation.
+
+
+
+ Add constraints for the method's arguments.
+
+
+
+
+ Set a callback method for the last call
+
+
+
+
+ Set a delegate to be called when the expectation is matched.
+ The delegate return value will be returned from the expectation.
+
+
+
+
+ Set the return value for the method.
+
+ The object the method will return
+ IRepeat that defines how many times the method will return this value
+
+
+
+ Throws the specified exception when the method is called.
+
+ Exception to throw
+
+
+
+ Ignores the arguments for this method. Any argument will be matched
+ againt this method.
+
+
+
+
+ Call the original method on the class, bypassing the mocking layers.
+
+
+
+
+
+
+ Call the original method on the class, optionally bypassing the mocking layers
+
+
+
+
+
+
+ Use the property as a simple property, getting/setting the values without
+ causing mock expectations.
+
+
+
+
+ Gets the event raiser for the last event
+
+
+
+
+ Set the parameter values for out and ref parameters.
+ This is done using zero based indexing, and _ignoring_ any non out/ref parameter.
+
+
+
+
+ Repeat the method twice.
+
+
+
+
+ Repeat the method once.
+
+
+
+
+ Repeat the method at least once, then repeat as many time as it would like.
+
+
+
+
+ This method must not appear in the replay state.
+
+
+
+
+ Documentation message for the expectation
+
+ Message
+
+
+
+ Repeat the method any number of times.
+
+
+
+
+ Set the range to repeat an action.
+
+ Min.
+ Max.
+
+
+
+ Set the amount of times to repeat an action.
+
+
+
+
+ Better syntax to define repeats.
+
+
+
+
+ This class will provide hash code for hashtables without needing
+ to call the GetHashCode() on the object, which may very well be mocked.
+ This class has no state so it is a singelton to avoid creating a lot of objects
+ that does the exact same thing. See flyweight patterns.
+
+
+
+
+ Get the hash code for a proxy object without calling GetHashCode()
+ on the object.
+
+
+
+
+ Compares two instances of mocked objects
+
+
+
+
+ Compare two mocked objects
+
+
+
+
+ The next hash code value for a mock object.
+ This is safe for multi threading.
+
+
+
+
+ The sole instance of
+
+
+
+ Interface to find the repository of a mocked object
+
+
+
+
+ Return true if it should call the original method on the object
+ instead of pass it to the message chain.
+
+ The method to call
+
+
+
+ Register a method to be called on the object directly
+
+
+
+
+ Register a property on the object that will behave as a simple property
+
+
+
+
+ Check if the method was registered as a property method.
+
+
+
+
+ Do get/set on the property, according to need.
+
+
+
+
+ Do add/remove on the event
+
+
+
+
+ Get the subscribers of a spesific event
+
+
+
+
+ Gets the declaring type of the method, taking into acccount the possible generic
+ parameters that it was created with.
+
+
+
+
+ Clears the state of the object, remove original calls, property behavior, subscribed events, etc.
+
+
+
+
+ The unique hash code of this mock, which is not related
+ to the value of the GetHashCode() call on the object.
+
+
+
+
+ Gets the repository.
+
+
+
+
+ Gets the implemented types by this mocked object
+
+ The implemented.
+
+
+
+ This is a dummy type that is used merely to give DynamicProxy the proxy instance that
+ it needs to create IProxy's types.
+
+
+
+
+ Create a new instance of
+
+
+
+ Return true if it should call the original method on the object
+ instead of pass it to the message chain.
+
+ The method to call
+
+
+
+ Register a method to be called on the object directly
+
+
+
+
+ Register a property on the object that will behave as a simple property
+
+
+
+
+ Check if the method was registered as a property method.
+
+
+
+
+ Do get/set on the property, according to need.
+
+
+
+
+ Do add/remove on the event
+
+
+
+
+ Get the subscribers of a spesific event
+
+
+
+
+ Gets the declaring type of the method, taking into acccount the possible generic
+ parameters that it was created with.
+
+
+
+
+ Clears the state of the object, remove original calls, property behavior, subscribed events, etc.
+
+
+
+
+ The unique hash code of this proxy, which is not related
+ to the value of the GetHashCode() call on the object.
+
+
+
+
+ Gets the repository.
+
+
+
+
+ Gets the implemented types by this mocked object
+
+ The implemented.
+
+
+
+ Range for expected method calls
+
+
+
+
+ Creates a new instance.
+
+ Min.
+ Max.
+
+
+
+ Return the string representation of this range.
+
+
+
+
+ Gets or sets the min.
+
+
+
+
+
+
+ Gets or sets the max.
+
+
+
+
+
+
+ Records all the expectations for a mock and
+ return a ReplayDynamicMockState when Replay()
+ is called.
+
+
+
+
+ Creates a new instance.
+
+ Repository.
+ The proxy that generates the method calls
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Records all the expectations for a mock and
+ return a ReplayPartialMockState when Replay()
+ is called.
+
+
+
+
+ Creates a new instance.
+
+ Repository.
+ The proxy that generates the method calls
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Options for special repeat option
+
+
+
+
+ This method can be called only as many times as the IMethodOptions.Expect allows.
+
+
+
+
+ This method should never be called
+
+
+
+
+ This method can be call any number of times
+
+
+
+
+ This method will call the original method
+
+
+
+
+ This method will call the original method, bypassing the mocking layer
+
+
+
+
+ This method will simulate simple property behavior
+
+
+
+
+ Validate all expectations on a mock and ignores calls to
+ any method that was not setup properly.
+
+
+
+
+ Creates a new instance.
+
+ The previous state for this method
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Validate all expectations on a mock and ignores calls to
+ any method that was not setup properly.
+
+
+
+
+ Creates a new instance.
+
+ The previous state for this method
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Summary description for RhinoInterceptor.
+
+
+
+
+ Creates a new instance.
+
+
+
+
+ Intercept a method call and direct it to the repository.
+
+
+
+
+ Validate arguments for methods
+
+
+
+
+ Validate that the passed argument is not null.
+
+ The object to validate
+ The name of the argument
+
+ If the obj is null, an ArgumentNullException with the passed name
+ is thrown.
+
+
+
+
+ Validate that the arguments are equal.
+
+ Expected args.
+ Actual Args.
+
+
+
+ Validate that the two argument are equals, including validation for
+ when the arguments are collections, in which case it will validate their values.
+
+
+
+
+ This method is safe for use even if any of the objects is a mocked object
+ that override equals.
+
+
+
+
+ Throw an object already verified when accessed
+
+
+
+
+ Create a new instance of VerifiedMockState
+
+ The previous mock state, used to get the initial record state
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Verify that this mock expectations have passed.
+
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Set the exception to throw when Verify is called.
+ This is used to report exception that may have happened but where caught in the code.
+ This way, they are reported anyway when Verify() is called.
+
+
+
+
+ Gets the matching verify state for this state
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Records the actions on all the mocks created by a repository.
+
+
+
+
+ Records the specified call with the specified args on the mocked object.
+
+
+
+
+ Get the expectation for this method on this object with this arguments
+
+
+
+
+ This check the methods that were setup using the SetupResult.For()
+ or LastCall.Repeat.Any() and that bypass the whole expectation model.
+
+
+
+
+ Gets the all expectations for a mocked object and method combination,
+ regardless of the expected arguments / callbacks / contraints.
+
+ Mocked object.
+ Method.
+ List of all relevant expectation
+
+
+
+ Gets the all expectations for proxy.
+
+ Mocked object.
+ List of all relevant expectation
+
+
+
+ Removes all the repeatable expectations for proxy.
+
+ Mocked object.
+
+
+
+ Replaces the old expectation with the new expectation for the specified proxy/method pair.
+ This replace ALL expectations that equal to old expectations.
+
+ Proxy.
+ Method.
+ Old expectation.
+ New expectation.
+
+
+
+ Adds the recorder and turn it into the active recorder.
+
+ Recorder.
+
+
+
+ Moves to previous recorder.
+
+
+
+
+ Gets the recorded expectation or null.
+
+
+
+
+ Gets the next expected calls string.
+
+
+
+
+ Moves to parent recorder.
+
+
+
+
+ Set the expectation so it can repeat any number of times.
+
+
+
+
+ Removes the expectation from the recorder
+
+
+
+
+ Clear the replayer to call (and all its chain of replayers)
+ This also removes it from the list of expectations, so it will never be considered again
+
+
+
+
+ Get the expectation for this method on this object with this arguments
+
+
+
+
+ Gets a value indicating whether this instance has expectations that weren't satisfied yet.
+
+
+ true if this instance has expectations; otherwise, false.
+
+
+
+
+ Allows to set various options for the last method call on
+ a specified object.
+ If the method has a return value, it's recommended to use Expect
+
+
+
+
+ Allows to get an interface to work on the last call.
+
+ The mocked object
+ Interface that allows to set options for the last method call on this object
+
+
+
+ Set the return value for the method.
+
+ The object the method will return
+ IRepeat that defines how many times the method will return this value
+
+
+
+ Set the return value for the method. This overload is needed for LastCall.Return(null)
+
+ The object the method will return
+ IRepeat that defines how many times the method will return this value
+
+
+
+ Throws the specified exception when the method is called.
+
+ Exception to throw
+
+
+
+ Ignores the arguments for this method. Any argument will be matched
+ againt this method.
+
+
+
+
+ Add constraints for the method's arguments.
+
+
+
+
+ Set a callback method for the last call
+
+
+
+
+ Call the original method on the class, bypassing the mocking layers, for the last call.
+
+
+
+
+ Call the original method on the class, optionally bypassing the mocking layers, for the last call.
+
+
+
+
+ Set a delegate to be called when the expectation is matched.
+ The delegate return value will be returned from the expectation.
+
+
+
+
+ Gets an interface that will raise the last event when called.
+
+
+
+
+ Set the parameter values for out and ref parameters.
+ This is done using zero based indexing, and _ignoring_ any non out/ref parameter.
+
+
+
+
+ Documentation message for the expectation
+
+ Message
+
+
+
+ Use the property as a simple property, getting/setting the values without
+ causing mock expectations.
+
+
+
+
+ Better syntax to define repeats.
+
+
+
+
+ Base class for method recorders, handle delegating to inner recorder if needed.
+
+
+
+
+ List of the expected actions on for this recorder
+ The legal values are:
+ * Expectations
+ * Method Recorders
+
+
+
+
+ The current recorder.
+
+
+
+
+ The current replayer;
+
+
+
+
+ The parent recorder of this one, may be null.
+
+
+
+
+ This contains a list of all the replayers that should be ignored
+ for a spesific method call. A replayer gets into this list by calling
+ ClearReplayerToCall() on its parent. This list is Clear()ed on each new invocation.
+
+
+
+
+ All the repeatable methods calls.
+
+
+
+
+ Counts the recursion depth of the current expectation search stack
+
+
+
+
+ Creates a new instance.
+
+
+
+
+ Creates a new instance.
+
+ Parent recorder.
+ Repeatable methods
+
+
+
+ Records the specified call with the specified args on the mocked object.
+
+
+
+
+ Get the expectation for this method on this object with this arguments
+
+
+
+
+ Gets the all expectations for a mocked object and method combination,
+ regardless of the expected arguments / callbacks / contraints.
+
+ Mocked object.
+ Method.
+ List of all relevant expectation
+
+
+
+ Gets the all expectations for proxy.
+
+ Mocked object.
+ List of all relevant expectation
+
+
+
+ Replaces the old expectation with the new expectation for the specified proxy/method pair.
+ This replace ALL expectations that equal to old expectations.
+
+ Proxy.
+ Method.
+ Old expectation.
+ New expectation.
+
+
+
+ Remove the all repeatable expectations for proxy.
+
+ Mocked object.
+
+
+
+ Set the expectation so it can repeat any number of times.
+
+
+
+
+ Removes the expectation from the recorder
+
+
+
+
+ Adds the recorder and turn it into the active recorder.
+
+ Recorder.
+
+
+
+ Moves to previous recorder.
+
+
+
+
+ Moves to parent recorder.
+
+
+
+
+ Gets the recorded expectation or null.
+
+
+
+
+ Clear the replayer to call (and all its chain of replayers).
+ This also removes it from the list of expectations, so it will never be considered again
+
+
+
+
+ Get the expectation for this method on this object with this arguments
+
+
+
+
+ Gets the next expected calls string.
+
+
+
+
+ Handles the real getting of the recorded expectation or null.
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Should this replayer be considered valid for this call?
+
+
+
+
+ This check the methods that were setup using the SetupResult.For()
+ or LastCall.Repeat.Any() and that bypass the whole expectation model.
+
+
+
+
+ Gets a value indicating whether this instance has expectations that weren't satisfied yet.
+
+
+ true if this instance has expectations; otherwise, false.
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Unordered collection of method records, any expectation that exist
+ will be matched.
+
+
+
+
+ The parent recorder we have redirected to.
+ Useful for certain edge cases in orderring.
+ See: FieldProblem_Entropy for the details.
+
+
+
+
+ Creates a new instance.
+
+ Parent recorder.
+ Repeatable methods
+
+
+
+ Creates a new instance.
+
+
+
+
+ Records the specified call with the specified args on the mocked object.
+
+ Mocked object.
+ Method.
+ Expectation.
+
+
+
+ Get the expectation for this method on this object with this arguments
+
+ Invocation for this method
+ Mocked object.
+ Method.
+ Args.
+ True is the call was recorded, false otherwise
+
+
+
+ Gets the all expectations for a mocked object and method combination,
+ regardless of the expected arguments / callbacks / contraints.
+
+ Mocked object.
+ Method.
+ List of all relevant expectation
+
+
+
+ Gets the all expectations for proxy.
+
+ Mocked object.
+ List of all relevant expectation
+
+
+
+ Replaces the old expectation with the new expectation for the specified proxy/method pair.
+ This replace ALL expectations that equal to old expectations.
+
+ Proxy.
+ Method.
+ Old expectation.
+ New expectation.
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Handles the real getting of the recorded expectation or null.
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Gets the next expected calls string.
+
+
+
+
+ Create an exception for an unexpected method call.
+
+
+
+
+ Gets a value indicating whether this instance has expectations that weren't satisfied yet.
+
+
+ true if this instance has expectations; otherwise, false.
+
+
+
+
+ Ordered collection of methods, methods must arrive in specified order
+ in order to pass.
+
+
+
+
+ Creates a new instance.
+
+ Parent recorder.
+ Repetable methods
+
+
+
+ Creates a new instance.
+
+
+
+
+ Handles the real getting of the recorded expectation or null.
+
+
+
+
+ Get the expectation for this method on this object with this arguments
+
+
+
+
+ Gets the next expected calls string.
+
+
+
+
+ Hold an expectation for a method call on an object
+
+
+
+
+ Creates a new instance.
+
+ Proxy.
+ Method.
+ Expectation.
+
+
+
+ Determains if the object equal to this instance
+
+ Obj.
+
+
+
+
+
+ Gets the hash code.
+
+
+
+
+
+
+ Gets the proxy.
+
+
+
+
+
+
+ Gets the method.
+
+
+
+
+
+
+ Gets the expectation.
+
+
+
+
+
+
+ Holds a pair of mocked object and a method
+ and allows to compare them against each other.
+ This allows us to have a distinction between mockOne.MyMethod() and
+ mockTwo.MyMethod()...
+
+
+
+
+ Creates a new instance.
+
+ Proxy.
+ Method.
+
+
+
+ Determains whatever obj equals to this instance.
+ ProxyMethodPairs are equals when they point to the same /instance/ of
+ an object, and to the same method.
+
+ Obj.
+
+
+
+
+
+ Gets the hash code.
+
+
+
+
+
+
+ Gets the proxy.
+
+
+
+
+
+
+ Gets the method.
+
+
+
+
+
+
+ Change the recorder from ordered to unordered and vice versa
+
+
+
+
+ Creates a new instance.
+
+
+
+
+ Disposes this instance.
+
+
+
+
+ Accessor for the current mocker
+
+
+
+
+ The current mocker
+
+
+
+
+ Used for [assembly: InternalsVisibleTo(RhinoMocks.StrongName)]
+ Used for [assembly: InternalsVisibleTo(RhinoMocks.NormalName)]
+
+
+
+
+ Strong name for the Dynamic Proxy assemblies. Used for InternalsVisibleTo specification.
+
+
+
+
+ Normal name for dynamic proxy assemblies. Used for InternalsVisibleTo specification.
+
+
+
+
+ Logs all method calls for methods
+
+
+
+
+ Setup method calls to repeat any number of times.
+
+
+
+
+ Get the method options and set the last method call to repeat
+ any number of times.
+ This also means that the method would transcend ordering
+
+
+
+
+ Get the method options for the last method call on the mockInstance and set it
+ to repeat any number of times.
+ This also means that the method would transcend ordering
+
+
+
+
+ Utility class for working with method calls.
+
+
+
+
+ Delegate to format the argument for the string representation of
+ the method call.
+
+
+
+
+ Return the string representation of a method call and its arguments.
+
+ The method
+ The method arguments
+ Invocation of the method, used to get the generics arguments
+ Delegate to format the parameter
+ The string representation of this method call
+
+
+
+ Return the string representation of a method call and its arguments.
+
+ The invocation of the method, used to get the generic parameters
+ The method
+ The method arguments
+ The string representation of this method call
+
+
+
+ Utility to get the default value for a type
+
+
+
+
+ The default value for a type.
+ Null for reference types and void
+ 0 for value types.
+ First element for enums
+ Note that we need to get the value even for opened generic types, such as those from
+ generic methods.
+
+ Type.
+ The invocation.
+ the default value
+
+
+
+ Allows easier access to MockRepository, works closely with Mocker.Current to
+ allow access to a context where the mock repository is automatially verified at
+ the end of the code block.
+
+
+
+
+ A method with no arguments and no return value that will be called under the mock context.
+
+
+
+
+ Interface to verify previously defined expectations
+
+
+
+
+ Verifies if a piece of code
+
+
+
+
+ FluentMocker implements some kind of fluent interface attempt
+ for saying "With the Mocks [mocks], Expecting (in same order) [things] verify [that]."
+
+
+
+
+ Defines unordered expectations
+
+ A delegate describing the expectations
+ an IMockVerifier
+
+
+
+ Defines ordered expectations
+
+ A delegate describing the expectations
+ an IMockVerifier
+
+
+
+ Verifies previously defined expectations
+
+
+
+
+ Initialize a code block where Mocker.Current is initialized.
+ At the end of the code block, all the expectation will be verified.
+ This overload will create a new MockRepository.
+
+ The code that will be executed under the mock context
+
+
+
+ Initialize a code block where Mocker.Current is initialized.
+ At the end of the code block, all the expectation will be verified.
+ This overload will create a new MockRepository.
+
+ The mock repository to use, at the end of the code block, VerifyAll() will be called on the repository.
+ The code that will be executed under the mock context
+
+
+
+ Create a FluentMocker
+
+ The mock repository to use.
+
+
+
+ Wraps a reference that is passed
+ ByRef and provides indirect load/store support.
+
+
+
+
+ Summary description for NewArrayExpression.
+
+
+
+
+
+
+
+
+ Here we try to match a constructor argument to its value.
+ Since we can't get the values from the assembly, we use some heuristics to get it.
+ a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument
+ b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string).
+
+
+
+
+ We have the following rules here.
+ Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that
+ we can convert it.
+
+
+
+
+ Attributes can only accept simple types, so we return null for null,
+ if the value is passed as string we call to string (should help with converting),
+ otherwise, we use the value as is (enums, integer, etc).
+
+
+
+
+ Provides appropriate Ldc.X opcode for the type of primitive value to be loaded.
+
+
+
+
+ Provides appropriate Ldind.X opcode for
+ the type of primitive value to be loaded indirectly.
+
+
+
+
+ Inspect the base method for generic definitions
+ and set the return type and the parameters
+ accordingly
+
+
+
+
+ Emits a load opcode of the appropriate kind for a constant string or
+ primitive value.
+
+
+
+
+
+
+
+
+ Emits a load opcode of the appropriate kind for the constant default value of a
+ type, such as 0 for value types and null for reference types.
+
+
+
+
+ Emits a load indirect opcode of the appropriate type for a value or object reference.
+ Pops a pointer off the evaluation stack, dereferences it and loads
+ a value of the specified type.
+
+
+
+
+
+
+
+
+ Emits a store indirectopcode of the appropriate type for a value or object reference.
+ Pops a value of the specified type and a pointer off the evaluation stack, and
+ stores the value.
+
+
+
+
+
+
+
+
+ Summary description for PropertiesCollection.
+
+
+
+
+ Provides appropriate Stind.X opcode
+ for the type of primitive value to be stored indirectly.
+
+
+
+
+ Base class that exposes the common functionalities
+ to proxy generation.
+
+
+ TODO:
+ - Use the interceptor selector if provided
+ - Add tests and fixes for 'leaking this' problem
+ - Mixin support
+
+
+
+
+ Used by dinamically implement
+
+
+
+
+
+ Generates a parameters constructor that initializes the proxy
+ state with just to make it non-null.
+
+ This constructor is important to allow proxies to be XML serializable
+
+
+
+
+ If callbackMethod is null the InvokeOnTarget implementation
+ is just the code to throw an exception
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If callbackMethod is null the InvokeOnTarget implementation
+ is just the code to throw an exception
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If true the invocation will implement the IChangeProxyTarget interface
+
+
+
+
+
+ Generates the constructor for the nested class that extends
+
+
+
+
+
+
+
+
+
+
+
+
+ Improvement: this cache should be static. We should generate a
+ type constructor instead
+
+
+
+
+ Performs some basic screening and invokes the
+ to select methods.
+
+
+
+
+
+
+
+
+
+
+ Checks if the method is public or protected.
+
+
+
+
+
+
+
+
+ Attributes should be replicated if they are non-inheritable,
+ but there are some special cases where the attributes means
+ something to the CLR, where they should be skipped.
+
+
+
+
+ Checks if the method has the same signature as a method that was marked as
+ one that should generate a new vtable slot.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the target.
+ The interfaces.
+ The options.
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The emitter.
+ The add method.
+ The remove method.
+ The attributes.
+
+
+
+
+
+
+
+ Finds the type of the method on target.
+
+ The method on interface.
+ Type of the proxy target.
+
+
+
+
+
+ Checks whether the given types are the same. This is
+ more complicated than it looks.
+
+
+
+
+
+
+
+
+
+
+ This is used by the ProxyObjectReference class durin de-serialiation, to know
+ which generator it should use
+
+
+
+
+ Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue
+ where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded.
+
+
+
+
+ Handles the deserialization of proxies.
+
+
+
+
+ Resets the used for deserialization to a new scope.
+
+ This is useful for test cases.
+
+
+
+ Resets the used for deserialization to a given .
+
+ The scope to be used for deserialization.
+ By default, the deserialization process uses a different scope than the rest of the application, which can lead to multiple proxies
+ being generated for the same type. By explicitly setting the deserialization scope to the application's scope, this can be avoided.
+
+
+
+ Gets the used for deserialization.
+
+ As has no way of automatically determining the scope used by the application (and the application
+ might use more than one scope at the same time), uses a dedicated scope instance for deserializing proxy
+ types. This instance can be reset and set to a specific value via and .
+
+
+
+ Used during the target type inspection process.
+ Implementors have a chance to interfere in the
+ proxy generation process
+
+
+
+
+ Invoked by the generation process to know if
+ the specified member should be proxied
+
+
+
+
+
+
+
+
+
+
+ Invoked by the generation process to notify that a
+ member wasn't marked as virtual.
+
+
+
+
+
+
+
+
+ Invoked by the generation process to notify
+ that the whole process is completed.
+
+
+
+
+ Abstracts the implementation of proxy constructions
+
+
+
+
+ Implementors should return a proxy for the specified type.
+
+ The proxy base class.
+ The proxy generation options.
+ The generated proxy type.
+
+
+
+ Implementors should return a proxy for the specified
+ type and interfaces. The interfaces must be only "mark" interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+ Implementors should return a proxy for the specified
+ interface that 'proceeds' executions to the
+ specified target.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implementors should return a proxy for the specified
+ interface that delegate all executions to the
+ specified interceptor(s).
+
+
+
+
+
+
+
+
+
+
+
+
+ Implementors should return a proxy for the specified
+ interface that delegate all executions to the
+ specified interceptor(s) and uses an instance of the interface
+ as their targets, rather than a class. All IInvocation's
+ should then implement IChangeProxyTarget.
+
+
+
+
+
+
+
+
+
+
+ Gets the module scope used by this builder for generating code.
+
+ The module scope used by this builder.
+
+
+
+ Determines whether this assembly has internals visisble to dynamic proxy.
+
+ The asm.
+
+
+
+ Determines whether the specified method is internal.
+
+ The method.
+
+ true if the specified method is internal; otherwise, false.
+
+
+
+
+ Summary description for ModuleScope.
+
+
+
+
+ The default file name used when the assembly is saved using .
+
+
+
+
+ The default assembly (simple) name used for the assemblies generated by a instance.
+
+
+
+
+ Initializes a new instance of the class; assemblies created by this instance will not be saved.
+
+
+
+
+ Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance
+ should be saved.
+
+ If set to true saves the generated module.
+
+
+
+ Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance
+ should be saved and what simple names are to be assigned to them.
+
+ If set to true saves the generated module.
+ The simple name of the strong-named assembly generated by this .
+ The path and file name of the manifest module of the strong-named assembly generated by this .
+ The simple name of the weak-named assembly generated by this .
+ The path and file name of the manifest module of the weak-named assembly generated by this .
+
+
+
+ Returns a type from this scope's type cache, or null if the key cannot be found.
+
+ The key to be looked up in the cache.
+ The type from this scope's type cache matching the key, or null if the key cannot be found
+
+
+
+ Registers a type in this scope's type cache.
+
+ The key to be associated with the type.
+ The type to be stored in the cache.
+
+
+
+ Gets the key pair used to sign the strong-named assembly generated by this .
+
+
+
+
+
+
+ Gets the specified module generated by this scope, creating a new one if none has yet been generated.
+
+ If set to true, a strong-named module is returned; otherwise, a weak-named module is returned.
+ A strong-named or weak-named module generated by this scope, as specified by the parameter.
+
+
+
+ Gets the strong-named module generated by this scope, creating a new one if none has yet been generated.
+
+ A strong-named module generated by this scope.
+
+
+
+ Gets the weak-named module generated by this scope, creating a new one if none has yet been generated.
+
+ A weak-named module generated by this scope.
+
+
+
+ Saves the generated assembly with the name and directory information given when this instance was created (or with
+ the and current directory if none was given).
+
+
+
+ This method stores the generated assembly in the directory passed as part of the module information specified when this instance was
+ constructed (if any, else the current directory is used). If both a strong-named and a weak-named assembly
+ have been generated, it will throw an exception; in this case, use the overload.
+
+
+ If this was created without indicating that the assembly should be saved, this method does nothing.
+
+
+ Both a strong-named and a weak-named assembly have been generated.
+ The path of the generated assembly file, or null if no file has been generated.
+
+
+
+ Saves the specified generated assembly with the name and directory information given when this instance was created
+ (or with the and current directory if none was given).
+
+ True if the generated assembly with a strong name should be saved (see );
+ false if the generated assembly without a strong name should be saved (see .
+
+
+ This method stores the specified generated assembly in the directory passed as part of the module information specified when this instance was
+ constructed (if any, else the current directory is used).
+
+
+ If this was created without indicating that the assembly should be saved, this method does nothing.
+
+
+ No assembly has been generated that matches the parameter.
+
+ The path of the generated assembly file, or null if no file has been generated.
+
+
+
+ Users of this should use this lock when accessing the cache.
+
+
+
+
+ Gets the strong-named module generated by this scope, or if none has yet been generated.
+
+ The strong-named module generated by this scope, or if none has yet been generated.
+
+
+
+ Gets the file name of the strongly named module generated by this scope.
+
+ The file name of the strongly named module generated by this scope.
+
+
+
+ Gets the directory where the strongly named module generated by this scope will be saved, or if the current directory
+ is used.
+
+ The directory where the strongly named module generated by this scope will be saved when is called
+ (if this scope was created to save modules).
+
+
+
+ Gets the weak-named module generated by this scope, or if none has yet been generated.
+
+ The weak-named module generated by this scope, or if none has yet been generated.
+
+
+
+ Gets the file name of the weakly named module generated by this scope.
+
+ The file name of the weakly named module generated by this scope.
+
+
+
+ Gets the directory where the weakly named module generated by this scope will be saved, or if the current directory
+ is used.
+
+ The directory where the weakly named module generated by this scope will be saved when is called
+ (if this scope was created to save modules).
+
+
+
+ ProxyBuilder that persists the generated type.
+
+
+ The saved assembly contains just the last generated type.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Saves the generated assembly to a physical file. Note that this renders the unusable.
+
+ The path of the generated assembly file, or null if no assembly has been generated.
+ This method does not support saving multiple files. If both a signed and an unsigned module have been generated, use the
+ respective methods of the .
+
+
+
+ Initializes a new instance of the class.
+
+ The hook.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The builder.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates the class proxy.
+
+ Type of the target.
+ The interfaces.
+ The interceptors.
+
+
+
+
+
+ Creates the class proxy.
+
+ Type of the target.
+ The interceptors.
+ The constructor args.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates the class proxy.
+
+ Type of the target.
+ The interfaces.
+ The options.
+ The constructor args.
+ The interceptors.
+
+
+
+
+
+ Gets the proxy builder instance.
+
+ The proxy builder.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For interface proxies, this will point to the
+ on the target class
+
+
+
+
+ Base for Attributes that want to express lifestyle
+ chosen by the component.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ Gets or sets the lifestyle.
+
+ The lifestyle.
+
+
+
+ This attribute is usefull only when you want to register all components
+ on an assembly as a batch process.
+ By doing so, the batch register will look
+ for this attribute to distinguish components from other classes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ The service.
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ The service.
+ The lifestyle.
+
+
+
+ Gets the service.
+
+ The service.
+
+
+
+ Gets the key.
+
+ The key.
+
+
+
+ Associates a custom component with a component
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the component activator.
+
+
+
+ Gets the type of the component activator.
+
+ The type of the component activator.
+
+
+
+ Specifies the proxying behavior for a component.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether the generated
+ interface proxy should inherit from .
+
+
+
+
+ Determines if the component requires a single interface proxy.
+
+
+ true if the component requires a single interface proxy.
+
+
+
+ Gets or sets the additional interfaces used during proxy generation.
+
+
+
+
+ Marks as property to be skipped and not be wired
+ by the IoC container
+
+
+
+
+ Used to declare that a component wants interceptors acting on it.
+
+
+
+
+ Constructs the InterceptorAttribute pointing to
+ a key to a interceptor
+
+
+
+
+
+
+ Constructs the InterceptorAttribute pointing to
+ a service
+
+
+
+
+
+
+ Indicates that the target components wants a
+ singleton lifestyle.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Indicates that the target components wants a
+ transient lifestyle.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Indicates that the target components wants a
+ per thread lifestyle.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Indicates that the target components wants a
+ per web request lifestyle.
+
+
+
+
+ Indicates that the target components wants a
+ pooled lifestyle.
+
+
+
+
+ Initializes a new instance of the class
+ using the default initial pool size (5) and the max pool size (15).
+
+
+
+
+ Initializes a new instance of the class.
+
+ Initial size of the pool.
+ Max pool size.
+
+
+
+ Gets the initial size of the pool.
+
+ The initial size of the pool.
+
+
+
+ Gets the maximum pool size.
+
+ The size of the max pool.
+
+
+
+ Indicates that the target components wants a
+ custom lifestyle.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The lifestyle handler.
+
+
+
+ Gets the type of the lifestyle handler.
+
+ The type of the lifestyle handler.
+
+
+
+ New interface that is going to be used by DynamicProxy 2
+
+
+
+
+ New interface that is going to be used by DynamicProxy 2
+
+
+
+
+ Returns the concrete instantiation of , with any generic parameters bound to real types.
+
+ The concrete instantiation of , or if not a generic method.
+ Can be slower than calling .
+
+
+
+ Returns the concrete instantiation of , with any generic parameters bound to real types.
+
+ The concrete instantiation of , or if not a generic method.
+ Can be slower than calling .
+
+
+
+
+
+
+
+
+
+ The generic arguments of the method, or null if not a generic method.
+
+
+
+
+
+
+
+
+ For interface proxies, this will point to the
+ on the target class
+
+
+
+
+ Interceptors might implement this to receive the
+ ComponentModel on behalf of the component where the
+ interceptor is acting.
+
+
+
+
+ Get the proxy target (note that null is a valid target!)
+
+
+
+
+
+
+ Gets the interceptors for the proxy
+
+
+
+
+
+
+ Abstract representation of a vertex.
+
+
+
+
+ The nodes that dependes on this node
+
+
+
+
+ The nodes that this node depends
+
+
+
+
+ The node has not been visited yet
+
+
+
+
+ This node is in the process of being visited
+
+
+
+
+ This now was visited
+
+
+
+
+ Represents a collection of objects
+ which are guaranted to be unique
+ and holds a color for them
+
+
+
+
+ Holds a timestamp (integer)
+ for a given item
+
+
+
+
+ Returns the node at the specified index.
+
+ The lookup index.
+ The node at the specified index.
+
+ If the specified is greater than the
+ number of objects within the list.
+
+
+
+
+ Validates the specified index.
+
+ The lookup index.
+
+ If the index is invalid.
+
+
+
+
+ Lifecycle interface. If implemented by a component,
+ the method Initialized will be invoked by the container
+ before making the component available to the external world.
+
+
+
+
+ Implementors should perform any initialization logic.
+
+
+
+
+ Only called for components that
+ belongs to a pool when the component
+ comes back to the pool.
+
+
+
+
+ Implementors should perform any
+ initialization/clean up.
+
+
+
+
+ Interface for components that wish to be started by the container
+
+
+
+
+ Starts this instance.
+
+
+
+
+ Stops this instance.
+
+
+
+
+ Manages the instantiation of s.
+
+
+
+
+ Creates a new logger, getting the logger name from the specified type.
+
+
+
+
+ Creates a new logger.
+
+
+
+
+ Creates a new logger, getting the logger name from the specified type.
+
+
+
+
+ Creates a new logger.
+
+
+
+
+ Provides a factory that can produce either or
+ classes.
+
+
+
+
+ Creates a new extended logger, getting the logger name from the specified type.
+
+
+
+
+ Creates a new extended logger.
+
+
+
+
+ Creates a new extended logger, getting the logger name from the specified type.
+
+
+
+
+ Creates a new extended logger.
+
+
+
+
+ Creates a new extended logger, getting the logger name from the specified type.
+
+
+
+
+ Creates a new extended logger.
+
+
+
+
+ Creates a new extended logger, getting the logger name from the specified type.
+
+
+
+
+ Creates a new extended logger.
+
+
+
+
+ Gets the configuration file.
+
+ i.e. log4net.config
+
+
+
+
+
+ Gets the configuration file.
+
+ i.e. log4net.config
+
+
+
+
+
+ Summary description for ConsoleFactory.
+
+
+
+
+ NullLogFactory used when logging is turned off.
+
+
+
+
+ Creates an instance of ILogger with the specified name.
+
+ Name.
+
+
+
+
+
+ Creates an instance of ILogger with the specified name and LoggerLevel.
+
+ Name.
+ Level.
+
+
+
+
+
+ Creates outputing
+ to files. The name of the file is derived from the log name
+ plus the 'log' extension.
+
+
+
+
+ Manages logging.
+
+
+ This is a facade for the different logging subsystems.
+ It offers a simplified interface that follows IOC patterns
+ and a simplified priority/level/severity abstraction.
+
+
+
+
+ Logs a debug message.
+
+ The message to log
+
+
+
+ Logs a debug message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs a debug message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The message to log
+
+
+
+ Logs an info message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs an info message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The message to log
+
+
+
+ Logs a warn message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs a warn message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The message to log
+
+
+
+ Logs an error message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs an error message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The message to log
+
+
+
+ Logs a fatal message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs a fatal message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal error message.
+
+ The Message
+
+
+
+ Logs a fatal error message.
+
+ The Message
+ The Exception
+
+
+
+ Logs a fatal error message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Create a new child logger.
+ The name of the child logger is [current-loggers-name].[passed-in-name]
+
+ The Subname of this logger.
+ The New ILogger instance.
+ If the name has an empty element name.
+
+
+
+ Determines if messages of priority "debug" will be logged.
+
+ True if "debug" messages will be logged.
+
+
+
+ Determines if messages of priority "info" will be logged.
+
+ True if "info" messages will be logged.
+
+
+
+ Determines if messages of priority "warn" will be logged.
+
+ True if "warn" messages will be logged.
+
+
+
+ Determines if messages of priority "error" will be logged.
+
+ True if "error" messages will be logged.
+
+
+
+ Determines if messages of priority "fatal" will be logged.
+
+ True if "fatal" messages will be logged.
+
+
+
+ Determines if messages of priority "fatalError" will be logged.
+
+ True if "fatalError" messages will be logged.
+
+
+
+ The Level Filtered Logger class. This is a base clase which
+ provides a LogLevel attribute and reroutes all functions into
+ one Log method.
+
+
+
+
+ Creates a new LevelFilteredLogger.
+
+
+
+
+ Keep the instance alive in a remoting scenario
+
+
+
+
+
+
+ Logs a debug message.
+
+ The message to log
+
+
+
+ Logs a debug message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs a debug message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Logs an info message.
+
+ The message to log
+
+
+
+ Logs an info message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs an info message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Logs a warn message.
+
+ The message to log
+
+
+
+ Logs a warn message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs a warn message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Logs an error message.
+
+ The message to log
+
+
+
+ Logs an error message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs an error message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Logs a fatal message.
+
+ The message to log
+
+
+
+ Logs a fatal message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs a fatal message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Logs a fatal error message.
+
+ The Message
+
+
+
+ Logs a fatal error message.
+
+ The Message
+ The Exception
+
+
+
+ Logs a fatal error message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Implementors output the log content by implementing this method only.
+ Note that exception can be null
+
+
+
+
+
+
+
+
+
+
+
+
+ The LoggerLevel that this logger
+ will be using. Defaults to LoggerLevel.Off
+
+
+
+ The name that this logger will be using.
+ Defaults to String.Empty
+
+
+
+ Determines if messages of priority "debug" will be logged.
+
+
+ true if log level flags include the bit
+
+
+
+ Determines if messages of priority "info" will be logged.
+
+
+ true if log level flags include the bit
+
+
+
+ Determines if messages of priority "warn" will be logged.
+
+
+ true if log level flags include the bit
+
+
+
+ Determines if messages of priority "error" will be logged.
+
+
+ true if log level flags include the bit
+
+
+
+ Determines if messages of priority "fatal" will be logged.
+
+
+ true if log level flags include the bit
+
+
+
+ Determines if messages of priority "fatal" will be logged.
+
+
+ true if log level flags include the bit
+
+
+
+ The Logger sending everything to the standard output streams.
+ This is mainly for the cases when you have a utility that
+ does not have a logger to supply.
+
+
+
+
+ Creates a new ConsoleLogger with the Level
+ set to LoggerLevel.Debug and the Name
+ set to String.Empty.
+
+
+
+
+ Creates a new ConsoleLogger with the Name
+ set to String.Empty.
+
+ The logs Level.
+
+
+
+ Creates a new ConsoleLogger with the Level
+ set to LoggerLevel.Debug.
+
+ The logs Name.
+
+
+
+ Creates a new ConsoleLogger.
+
+ The logs Name.
+ The logs Level.
+
+
+
+ A Common method to log.
+
+ The level of logging
+ The name of the logger
+ The Message
+ The Exception
+
+
+
+ Returns a new ConsoleLogger with the name
+ added after this loggers name, with a dot in between.
+
+ The added hierarchical name.
+ A new ConsoleLogger.
+
+
+
+ The Logger using standart Diagnostics namespace.
+
+
+
+
+ Creates a logger based on .
+
+
+
+
+
+
+
+ Creates a logger based on .
+
+
+
+
+
+
+
+
+
+
+ Creates a logger based on .
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides an interface that supports and
+ allows the storage and retrieval of Contexts. These are supported in
+ both log4net and NLog.
+
+
+
+
+ Exposes the Global Context of the extended logger.
+
+
+
+
+ Exposes the Thread Context of the extended logger.
+
+
+
+
+ Exposes the Thread Stack of the extended logger.
+
+
+
+
+ The Null Logger class. This is useful for implementations where you need
+ to provide a logger to a utility class, but do not want any output from it.
+ It also helps when you have a utility that does not have a logger to supply.
+
+
+
+
+ Creates a new NullLogger.
+
+
+
+
+ No-op.
+
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ Returns this NullLogger.
+
+ Ignored
+ This ILogger instance.
+
+
+
+ No-op.
+
+ false
+
+
+
+ No-op.
+
+ false
+
+
+
+ No-op.
+
+ false
+
+
+
+ No-op.
+
+ false
+
+
+
+ No-op.
+
+ false
+
+
+
+ No-op.
+
+ false
+
+
+
+ Returns empty context properties.
+
+
+
+
+ Returns empty context properties.
+
+
+
+
+ Returns empty context stacks.
+
+
+
+
+ Interface for Context Properties implementations
+
+
+
+ This interface defines a basic property get set accessor.
+
+
+ Based on the ContextPropertiesBase of log4net, by Nicko Cadell.
+
+
+
+
+
+ Gets or sets the value of a property
+
+
+ The value for the property with the specified key
+
+
+
+ Gets or sets the value of a property
+
+
+
+
+
+ The Stream Logger class. This class can stream log information
+ to any stream, it is suitable for storing a log file to disk,
+ or to a MemoryStream for testing your components.
+
+
+ This logger is not thread safe.
+
+
+
+
+ Creates a new StreamLogger with default encoding
+ and buffer size. Initial Level is set to Debug.
+
+
+ The name of the log.
+
+
+ The stream that will be used for logging,
+ seeking while the logger is alive
+
+
+
+
+ Creates a new StreamLogger with default buffer size.
+ Initial Level is set to Debug.
+
+
+ The name of the log.
+
+
+ The stream that will be used for logging,
+ seeking while the logger is alive
+
+
+ The encoding that will be used for this stream.
+
+
+
+
+ Creates a new StreamLogger.
+ Initial Level is set to Debug.
+
+
+ The name of the log.
+
+
+ The stream that will be used for logging,
+ seeking while the logger is alive
+
+
+ The encoding that will be used for this stream.
+
+
+ The buffer size that will be used for this stream.
+
+
+
+
+ Creates a new StreamLogger with
+ Debug as default Level.
+
+ The name of the log.
+ The StreamWriter the log will write to.
+
+
+
+ The WebLogger sends everything to the HttpContext.Trace
+
+
+ Trace must be enabled on the Asp.Net configuration file (web.config or machine.config)
+
+
+
+
+ Creates a new WebLogger with the priority set to DEBUG.
+
+
+
+
+ Creates a new WebLogger.
+
+ The Log level typecode.
+
+
+
+ Creates a new WebLogger.
+
+ The Log name.
+
+
+
+ Creates a new WebLogger.
+
+ The Log name.
+ The Log level typecode.
+
+
+
+ A Common method to log.
+
+ The level of logging
+ The Log name.
+ The Message
+ The Exception
+
+
+
+ Just returns this logger (WebLogger is not hierarchical).
+
+ Ignored
+ This ILogger instance.
+
+
+
+ Tries to get the current http context's trace context.
+
+ The current http context's trace context or null if none is
+ available
+
+
+
+ Supporting Logger levels.
+
+
+
+
+ Logging will be off
+
+
+
+
+ Fatal logging level
+
+
+
+
+ Error logging level
+
+
+
+
+ Warn logging level
+
+
+
+
+ Info logging level
+
+
+
+
+ Debug logging level
+
+
+
+
+ Pendent
+
+
+
+
+ Deserializes the specified node into an abstract representation of configuration.
+
+ The node.
+
+
+
+
+
+ If a config value is an empty string we return null, this is to keep
+ backward compability with old code
+
+
+
+
+ Summary description for IConfiguration.
+
+
+ is a interface encapsulating a configuration node
+ used to retrieve configuration values.
+
+
+
+
+ Gets the value of the node and converts it
+ into specified .
+
+ The
+
+ The Default value returned if the convertion fails.
+
+ The Value converted into the specified type.
+
+
+
+ Gets the name of the node.
+
+
+ The Name of the node.
+
+
+
+
+ Gets the value of the node.
+
+
+ The Value of the node.
+
+
+
+
+ Gets an of
+ elements containing all node children.
+
+ The Collection of child nodes.
+
+
+
+ Gets an of the configuration attributes.
+
+
+
+
+ This is an abstract implementation
+ that deals with methods that can be abstracted away
+ from underlying implementations.
+
+
+
+ AbstractConfiguration makes easier to implementers
+ to create a new version of
+
+
+
+
+ Gets the value of the node and converts it
+ into specified .
+
+ The
+
+ The Default value returned if the convertion fails.
+
+ The Value converted into the specified type.
+
+
+
+ Gets the name of the .
+
+
+ The Name of the .
+
+
+
+
+ Gets the value of .
+
+
+ The Value of the .
+
+
+
+
+ Gets all child nodes.
+
+ The of child nodes.
+
+
+
+ Gets node attributes.
+
+
+ All attributes of the node.
+
+
+
+
+ A collection of objects.
+
+
+
+
+ Creates a new instance of ConfigurationCollection.
+
+
+
+
+ Creates a new instance of ConfigurationCollection.
+
+
+
+
+ Creates a new instance of ConfigurationCollection.
+
+
+
+
+ Adds an .
+
+ The to add.
+
+ The index at which the new element was inserted.
+
+
+
+
+ Adds an array of .
+
+ The Array of to add.
+
+
+
+ Adds a .
+
+ The to add.
+
+
+
+ Copies the elements to a one-dimensional instance at the specified index.
+
+
+ The one-dimensional must have zero-based indexing.
+
+ The zero-based index in array at which copying begins.
+
+
+
+ Gets a value indicating whether the contains
+ in the collection.
+
+ The to locate.
+
+ if the is contained in the collection;
+ otherwise, .
+
+
+
+
+ Removes a specific from the
+ collection.
+
+ The to remove from the collection.
+
+ is not found in the collection.
+
+
+
+
+ Represents the entry at the specified index of the .
+
+
+ The zero-based index of the entry to locate in the collection.
+
+
+ The entry at the specified index of the collection.
+
+
+ is outside the valid range of indexes for the collection.
+
+
+
+
+ Summary description for MutableConfiguration.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ Enumeration used to mark the component's lifestyle.
+
+
+
+
+ No lifestyle specified.
+
+
+
+
+ Singleton components are instantiated once, and shared
+ between all clients.
+
+
+
+
+ Thread components have a unique instance per thread.
+
+
+
+
+ Transient components are created on demand.
+
+
+
+
+ Optimization of transient components that keeps
+ instance in a pool instead of always creating them.
+
+
+
+
+ Any other logic to create/release components.
+
+
+
+
+ PerWebRequest components are created once per Http Request
+
+
+
+
+
+
+
+
+ Represents the collection of information and
+ meta information collected about a component.
+
+
+
+ Name (key) of the component
+
+
+ Service exposed
+
+
+ Implementation for the service
+
+
+ Extended properties
+
+
+ Lifestyle for the component
+
+
+ Custom lifestyle, if any
+
+
+ Custom activator, if any
+
+
+ Dependencies the kernel must resolve
+
+
+ All available constructors
+
+
+ All potential properties that can be setted by the kernel
+
+
+ Steps of lifecycle
+
+
+ External parameters
+
+
+ Configuration node associated
+
+
+ Interceptors associated
+
+
+ /// Custom dependencies///
+
+
+
+ Constructs a ComponentModel
+
+
+
+
+ Sets or returns the component key
+
+
+
+
+ Gets or sets the service exposed.
+
+ The service.
+
+
+
+ Gets or sets the component implementation.
+
+ The implementation.
+
+
+
+ Gets or sets a value indicating whether the component requires generic arguments.
+
+
+ true if generic arguments are required; otherwise, false.
+
+
+
+
+ Gets or sets the extended properties.
+
+ The extended properties.
+
+
+
+ Gets the constructors candidates.
+
+ The constructors.
+
+
+
+ Gets the properties set.
+
+ The properties.
+
+
+
+ Gets or sets the configuration.
+
+ The configuration.
+
+
+
+ Gets the lifecycle steps.
+
+ The lifecycle steps.
+
+
+
+ Gets or sets the lifestyle type.
+
+ The type of the lifestyle.
+
+
+
+ Gets or sets the strategy for
+ inspecting public properties
+ on the components
+
+
+
+
+ Gets or sets the custom lifestyle.
+
+ The custom lifestyle.
+
+
+
+ Gets or sets the custom component activator.
+
+ The custom component activator.
+
+
+
+ Gets the interceptors.
+
+ The interceptors.
+
+
+
+ Gets the parameter collection.
+
+ The parameters.
+
+
+
+ Dependencies are kept within constructors and
+ properties. Others dependencies must be
+ registered here, so the kernel (as a matter
+ of fact the handler) can check them
+
+
+
+
+ Gets or sets the custom dependencies.
+
+ The custom dependencies.
+
+
+
+ Represents a constructor of the component
+ that the container can use to initialize it properly.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The constructor info.
+ The dependencies.
+
+
+
+ Gets the ConstructorInfo (from reflection).
+
+ The constructor.
+
+
+
+ Gets the dependencies this constructor candidate exposes.
+
+ The dependencies.
+
+
+
+ Collection of
+
+
+
+ Adds the specified candidate.
+
+ The candidate.
+
+
+
+ Clears this instance.
+
+
+
+
+ Gets the fewer arguments candidate.
+
+ The fewer arguments candidate.
+
+
+
+ Represents a dependency (other component or a
+ fixed value available through external configuration).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+ The dependency key.
+ Type of the target.
+ if set to true [is optional].
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+ Serves as a hash function for a particular type, suitable
+ for use in hashing algorithms and data structures like a hash table.
+
+
+ A hash code for the current .
+
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ if the specified is equal to the
+ current ; otherwise, .
+
+
+
+
+ Gets or sets the type of the dependency.
+
+ The type of the dependency.
+
+
+
+ Gets or sets the dependency key.
+
+ The dependency key.
+
+
+
+ Gets the type of the target.
+
+ The type of the target.
+
+
+
+ Gets or sets whether this dependency is optional.
+
+
+ true if this dependency is optional; otherwise, false.
+
+
+
+
+ Collection of .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The dependencies.
+
+
+
+ Initializes a new instance of the class.
+
+ The dependencies.
+
+
+
+ Adds the specified model.
+
+ The model.
+
+
+
+ Removes the specified model.
+
+ The model.
+
+
+
+ Clears this instance.
+
+
+
+
+ Determines whether this collection contains the the specified model.
+
+ The model.
+
+ true if the collection contains the specified model; otherwise, false.
+
+
+
+
+ Represents an reference to a Interceptor component.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The component key.
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the service.
+
+
+
+ Gets an for the component key.
+
+ The component key.
+ The
+
+
+
+ Gets an for the service.
+
+ The service.
+ The
+
+
+
+ Gets the type of the service.
+
+ The type of the service.
+
+
+
+ Gets the interceptor component key.
+
+ The component key.
+
+
+
+ Gets the type of the reference.
+
+ The type of the reference.
+
+
+
+ Collection of
+
+
+
+ Adds the specified interceptor.
+
+ The interceptor.
+
+
+
+ Adds the the specified interceptor as the first.
+
+ The interceptor.
+
+
+
+ Adds the the specified interceptor as the last.
+
+ The interceptor.
+
+
+
+ Inserts the specified interceptor at the specified index.
+
+ The index.
+ The interceptor.
+
+
+
+ When implemented by a class, copies the elements of
+ the to an , starting at a particular index.
+
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is .
+
+ is less than zero.
+
+
+ is multidimensional.
+ -or-
+
+ is equal to or greater than the length of .
+ -or-
+ The number of elements in the source is greater than the available space from to the end of the destination .
+
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+
+ Returns an enumerator that can iterate through a collection.
+
+
+ An
+ that can be used to iterate through the collection.
+
+
+
+
+ Adds the interceptor to the end of the interceptors list if it does not exist already.
+
+ The interceptor reference.
+
+
+
+ Gets a value indicating whether this instance has interceptors.
+
+
+ true if this instance has interceptors; otherwise, false.
+
+
+
+
+ Gets the number of
+ elements contained in the .
+
+
+
+
+
+
+ Gets an object that
+ can be used to synchronize access to the .
+
+
+
+
+
+
+ Gets a value
+ indicating whether access to the is synchronized
+ (thread-safe).
+
+
+
+
+
+
+ Represents a collection of ordered lifecycle steps.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Returns all steps for the commission phase
+
+
+
+
+
+
+ Returns all steps for the decommission phase
+
+
+
+
+
+
+ Adds a step to the commission or decomission phases.
+
+
+
+
+
+
+
+
+ Copies the elements of
+ the to an , starting at a particular index.
+
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is .
+
+ is less than zero.
+
+
+ is multidimensional.
+ -or-
+
+ is equal to or greater than the length of .
+ -or-
+ The number of elements in the source is greater than the available space from to the end of the destination .
+
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+
+ Returns an enumerator that can iterate through a collection.
+
+
+ An
+ that can be used to iterate through the collection.
+
+
+
+
+ Gets a value indicating whether this instance has commission steps.
+
+
+ true if this instance has commission steps; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance has decommission steps.
+
+
+ true if this instance has decommission steps; otherwise, false.
+
+
+
+
+ Gets the number of
+ elements contained in the .
+
+
+
+
+
+
+ Gets an object that
+ can be used to synchronize access to the .
+
+
+
+
+
+
+ Gets a value
+ indicating whether access to the is synchronized
+ (thread-safe).
+
+
+
+
+
+
+ Represents meta information associated with a method
+ (not yet defined)
+
+
+
+
+ Initializes a new instance of the class.
+
+ The config node.
+
+
+
+ Gets the config node.
+
+ The config node.
+
+
+
+ Collection of
+
+
+
+ Adds the specified model.
+
+ The model.
+
+
+
+ Gets the method info2 model.
+
+ The method info2 model.
+
+
+
+ Represents a parameter. Usually the parameter
+ comes from the external world, ie, an external configuration.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ The value.
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ The value.
+
+
+
+ Gets the name.
+
+ The name.
+
+
+
+ Gets the value.
+
+ The value.
+
+
+
+ Gets the config value.
+
+ The config value.
+
+
+
+ Collection of
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Adds the specified name.
+
+ The name.
+ The value.
+
+
+
+ Adds the specified name.
+
+ The name.
+ The config node.
+
+
+
+ Determines whether this collection contains the specified key.
+
+ The key.
+
+ true if yes; otherwise, false.
+
+
+
+
+ Adds the specified key.
+
+
+ Not implemented
+
+ The key.
+ The value.
+
+
+
+ Clears this instance.
+
+
+ Not implemented
+
+
+
+
+ Removes the specified key.
+
+ The key.
+
+ Not implemented
+
+
+
+
+ Copy the content to the specified array
+
+ target array
+ target index
+
+ Not implemented
+
+
+
+
+ Returns an enumerator that can iterate through a collection.
+
+
+ An
+ that can be used to iterate through the collection.
+
+
+
+
+ Gets the keys.
+
+ The keys.
+
+ Not implemented
+
+
+
+
+ Gets the values.
+
+ The values.
+
+ Not implemented
+
+
+
+
+ Gets a value indicating whether this instance is read only.
+
+
+ true if this instance is read only; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is fixed size.
+
+
+ true if this instance is fixed size; otherwise, false.
+
+
+
+
+ Gets the with the specified key.
+
+
+
+
+
+
+ Gets the count.
+
+ The count.
+
+
+
+ Gets the sync root.
+
+ The sync root.
+
+
+
+ Gets a value indicating whether this instance is synchronized.
+
+
+ true if this instance is synchronized; otherwise, false.
+
+
+
+
+ Represents a property and the respective dependency.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The property info.
+ The dependency.
+
+
+
+ Gets the property.
+
+ The property.
+
+
+
+ Gets the dependency.
+
+ The dependency.
+
+
+
+ Collection of
+
+
+
+ Adds the specified property.
+
+ The property.
+
+
+
+ Clears this instance.
+
+
+
+
+ Finds a PropertySet the by PropertyInfo.
+
+ The info.
+
+
+
+
+
+ Represents a 'streamable' resource. Can
+ be a file, a resource in an assembly.
+
+
+
+
+ Returns a reader for the stream
+
+
+ It's up to the caller to dispose the reader.
+
+
+
+
+
+
+ Returns a reader for the stream
+
+
+ It's up to the caller to dispose the reader.
+
+
+
+
+
+
+
+
+ Returns an instance of
+ created according to the relativePath
+ using itself as the root.
+
+
+
+
+
+
+
+
+
+
+ Only valid for resources that
+ can be obtained through relative paths
+
+
+
+
+
+
+
+
+ This returns a new stream instance each time it is called.
+ It is the responsability of the caller to dispose of this stream
+
+
+
+
+ Depicts the contract for resource factories.
+
+
+
+
+ Used to check whether the resource factory
+ is able to deal with the given resource
+ identifier.
+
+
+ Implementors should return true
+ only if the given identificator is supported
+ by the resource factory
+
+
+
+
+
+
+
+
+ Creates an instance
+ for the given resource identifier
+
+
+
+
+
+
+
+
+ Creates an instance
+ for the given resource identifier
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adapts a static string content as an
+
+
+
+ Enable access to files on network shares
+
+
+
+
+ Defines that the implementation wants a
+ in order to
+ access other components. The creator must be aware
+ that the component might (or might not) implement
+ the interface.
+
+
+ Used by Castle Project components to, for example,
+ gather logging factories
+
+
+
+
+ Increments IServiceProvider with a generic service resolution operation.
+
+
+
+
+ This interface should be implemented by classes
+ that are available in a bigger context, exposing
+ the container to different areas in the same application.
+
+ For example, in Web application, the (global) HttpApplication
+ subclasses should implement this interface to expose
+ the configured container
+
+
+
+
+ General purpose class to represent a standard pair of values.
+
+ Type of the first value
+ Type of the second value
+
+
+
+ Constructs a pair with its values
+
+
+
+
+
+
+
+
+ Pendent
+
+
+
+
+ Initializes a new instance of the class.
+
+ The target.
+
+
+
+ Determines whether the object contains an element with the specified key.
+
+ The key to locate in the object.
+
+ true if the contains an element with the key; otherwise, false.
+
+
+ is null.
+
+
+
+ Adds an element with the provided key and value to the object.
+
+ The to use as the key of the element to add.
+ The to use as the value of the element to add.
+
+ is null.
+ An element with the same key already exists in the object.
+ The is read-only.-or- The has a fixed size.
+
+
+
+ Removes all elements from the object.
+
+ The object is read-only.
+
+
+
+ Removes the element with the specified key from the object.
+
+ The key of the element to remove.
+
+ is null.
+ The object is read-only.-or- The has a fixed size.
+
+
+
+ Copies the elements of the to an , starting at a particular index.
+
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is null.
+
+ is less than zero.
+
+ is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source is greater than the available space from to the end of the destination .
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Gets or sets the with the specified key.
+
+
+
+
+
+
+ Gets an object containing the keys of the object.
+
+
+
+ An object containing the keys of the object.
+
+
+
+ Gets an object containing the values in the object.
+
+
+
+ An object containing the values in the object.
+
+
+
+ Gets a value indicating whether the object is read-only.
+
+
+
+ true if the object is read-only; otherwise, false.
+
+
+
+ Gets a value indicating whether the object has a fixed size.
+
+
+
+ true if the object has a fixed size; otherwise, false.
+
+
+
+ Gets the number of elements contained in the .
+
+
+
+ The number of elements contained in the .
+
+
+
+ Gets an object that can be used to synchronize access to the .
+
+
+
+ An object that can be used to synchronize access to the .
+
+
+
+ Gets a value indicating whether access to the is synchronized (thread safe).
+
+
+
+ true if access to the is synchronized (thread safe); otherwise, false.
+
+
+
\ No newline at end of file
diff --git a/lib/Mono/2.0/System.Web.Extensions.dll b/lib/Mono/2.0/System.Web.Extensions.dll
new file mode 100644
index 00000000..11fdd5c9
Binary files /dev/null and b/lib/Mono/2.0/System.Web.Extensions.dll differ
diff --git a/lib/Mono/2.0/nunit.core.dll b/lib/Mono/2.0/nunit.core.dll
new file mode 100644
index 00000000..96068142
Binary files /dev/null and b/lib/Mono/2.0/nunit.core.dll differ
diff --git a/lib/Mono/2.0/nunit.core.interfaces.dll b/lib/Mono/2.0/nunit.core.interfaces.dll
new file mode 100644
index 00000000..caf4a598
Binary files /dev/null and b/lib/Mono/2.0/nunit.core.interfaces.dll differ
diff --git a/lib/Mono/2.0/nunit.framework.dll b/lib/Mono/2.0/nunit.framework.dll
new file mode 100644
index 00000000..1c87f11b
Binary files /dev/null and b/lib/Mono/2.0/nunit.framework.dll differ
diff --git a/lib/Mono/2.0/nunit.framework.xml b/lib/Mono/2.0/nunit.framework.xml
new file mode 100644
index 00000000..286c69d9
--- /dev/null
+++ b/lib/Mono/2.0/nunit.framework.xml
@@ -0,0 +1,9897 @@
+
+
+
+ nunit.framework
+
+
+
+
+ TypeConstraint is the abstract base for constraints
+ that take a Type as their expected value.
+
+
+
+
+ The Constraint class is the base of all built-in constraints
+ within NUnit. It provides the operator overloads used to combine
+ constraints.
+
+
+
+
+ The IConstraintExpression interface is implemented by all
+ complete and resolvable constraints and expressions.
+
+
+
+
+ Return the top-level constraint for this expression
+
+
+
+
+
+ Static UnsetObject used to detect derived constraints
+ failing to set the actual value.
+
+
+
+
+ The actual value being tested against a constraint
+
+
+
+
+ The display name of this Constraint for use by ToString()
+
+
+
+
+ Argument fields used by ToString();
+
+
+
+
+ The builder holding this constraint
+
+
+
+
+ Construct a constraint with no arguments
+
+
+
+
+ Construct a constraint with one argument
+
+
+
+
+ Construct a constraint with two arguments
+
+
+
+
+ Sets the ConstraintBuilder holding this constraint
+
+
+
+
+ Write the failure message to the MessageWriter provided
+ as an argument. The default implementation simply passes
+ the constraint and the actual value to the writer, which
+ then displays the constraint description and the value.
+
+ Constraints that need to provide additional details,
+ such as where the error occured can override this.
+
+ The MessageWriter on which to display the message
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Test whether the constraint is satisfied by an
+ ActualValueDelegate that returns the value to be tested.
+ The default implementation simply evaluates the delegate
+ but derived classes may override it to provide for delayed
+ processing.
+
+ An ActualValueDelegate
+ True for success, false for failure
+
+
+
+ Test whether the constraint is satisfied by a given reference.
+ The default implementation simply dereferences the value but
+ derived classes may override it to provide for delayed processing.
+
+ A reference to the value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ Default override of ToString returns the constraint DisplayName
+ followed by any arguments within angle brackets.
+
+
+
+
+
+ This operator creates a constraint that is satisfied only if both
+ argument constraints are satisfied.
+
+
+
+
+ This operator creates a constraint that is satisfied if either
+ of the argument constraints is satisfied.
+
+
+
+
+ This operator creates a constraint that is satisfied if the
+ argument constraint is not satisfied.
+
+
+
+
+ Returns a DelayedConstraint with the specified delay time.
+
+ The delay in milliseconds.
+
+
+
+
+ Returns a DelayedConstraint with the specified delay time
+ and polling interval.
+
+ The delay in milliseconds.
+ The interval at which to test the constraint.
+
+
+
+
+ The display name of this Constraint for use by ToString().
+ The default value is the name of the constraint with
+ trailing "Constraint" removed. Derived classes may set
+ this to another name in their constructors.
+
+
+
+
+ Returns a ConstraintExpression by appending And
+ to the current constraint.
+
+
+
+
+ Returns a ConstraintExpression by appending And
+ to the current constraint.
+
+
+
+
+ Returns a ConstraintExpression by appending Or
+ to the current constraint.
+
+
+
+
+ Class used to detect any derived constraints
+ that fail to set the actual value in their
+ Matches override.
+
+
+
+
+ The expected Type used by the constraint
+
+
+
+
+ Construct a TypeConstraint for a given Type
+
+
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. TypeConstraints override this method to write
+ the name of the type.
+
+ The writer on which the actual value is displayed
+
+
+
+ ExactTypeConstraint is used to test that an object
+ is of the exact type provided in the constructor
+
+
+
+
+ Construct an ExactTypeConstraint for a given Type
+
+ The expected Type.
+
+
+
+ Test that an object is of the exact type specified
+
+ The actual value.
+ True if the tested object is of the exact type provided, otherwise false.
+
+
+
+ Write the description of this constraint to a MessageWriter
+
+ The MessageWriter to use
+
+
+
+ InstanceOfTypeConstraint is used to test that an object
+ is of the same type provided or derived from it.
+
+
+
+
+ Construct an InstanceOfTypeConstraint for the type provided
+
+ The expected Type
+
+
+
+ Test whether an object is of the specified type or a derived type
+
+ The object to be tested
+ True if the object is of the provided type or derives from it, otherwise false.
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+ The MessageWriter to use
+
+
+
+ AssignableFromConstraint is used to test that an object
+ can be assigned from a given Type.
+
+
+
+
+ Construct an AssignableFromConstraint for the type provided
+
+
+
+
+
+ Test whether an object can be assigned from the specified type
+
+ The object to be tested
+ True if the object can be assigned a value of the expected Type, otherwise false.
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+ The MessageWriter to use
+
+
+
+ AssignableToConstraint is used to test that an object
+ can be assigned to a given Type.
+
+
+
+
+ Construct an AssignableToConstraint for the type provided
+
+
+
+
+
+ Test whether an object can be assigned to the specified type
+
+ The object to be tested
+ True if the object can be assigned a value of the expected Type, otherwise false.
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+ The MessageWriter to use
+
+
+
+ ConstraintBuilder maintains the stacks that are used in
+ processing a ConstraintExpression. An OperatorStack
+ is used to hold operators that are waiting for their
+ operands to be reognized. a ConstraintStack holds
+ input constraints as well as the results of each
+ operator applied.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Appends the specified operator to the expression by first
+ reducing the operator stack and then pushing the new
+ operator on the stack.
+
+ The operator to push.
+
+
+
+ Appends the specified constraint to the expresson by pushing
+ it on the constraint stack.
+
+ The constraint to push.
+
+
+
+ Sets the top operator right context.
+
+ The right context.
+
+
+
+ Reduces the operator stack until the topmost item
+ precedence is greater than or equal to the target precedence.
+
+ The target precedence.
+
+
+
+ Resolves this instance, returning a Constraint. If the builder
+ is not currently in a resolvable state, an exception is thrown.
+
+ The resolved constraint
+
+
+
+ Gets a value indicating whether this instance is resolvable.
+
+
+ true if this instance is resolvable; otherwise, false.
+
+
+
+
+ OperatorStack is a type-safe stack for holding ConstraintOperators
+
+
+
+
+ Initializes a new instance of the class.
+
+ The builder.
+
+
+
+ Pushes the specified operator onto the stack.
+
+ The op.
+
+
+
+ Pops the topmost operator from the stack.
+
+
+
+
+
+ Gets a value indicating whether this is empty.
+
+ true if empty; otherwise, false.
+
+
+
+ Gets the topmost operator without modifying the stack.
+
+ The top.
+
+
+
+ ConstraintStack is a type-safe stack for holding Constraints
+
+
+
+
+ Initializes a new instance of the class.
+
+ The builder.
+
+
+
+ Pushes the specified constraint. As a side effect,
+ the constraint's builder field is set to the
+ ConstraintBuilder owning this stack.
+
+ The constraint.
+
+
+
+ Pops this topmost constrait from the stack.
+ As a side effect, the constraint's builder
+ field is set to null.
+
+
+
+
+
+ Gets a value indicating whether this is empty.
+
+ true if empty; otherwise, false.
+
+
+
+ Gets the topmost constraint without modifying the stack.
+
+ The topmost constraint
+
+
+
+ ThrowsConstraint is used to test the exception thrown by
+ a delegate by applying a constraint to it.
+
+
+
+
+ Abstract base class used for prefixes
+
+
+
+
+ The base constraint
+
+
+
+
+ Construct given a base constraint
+
+
+
+
+
+ Initializes a new instance of the class,
+ using a constraint to be applied to the exception.
+
+ A constraint to apply to the caught exception.
+
+
+
+ Executes the code of the delegate and captures any exception.
+ If a non-null base constraint was provided, it applies that
+ constraint to the exception.
+
+ A delegate representing the code to be tested
+ True if an exception is thrown and the constraint succeeds, otherwise false
+
+
+
+ Converts an ActualValueDelegate to a TestDelegate
+ before calling the primary overload.
+
+
+
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ Returns the string representation of this constraint
+
+
+
+
+ Get the actual exception thrown - used by Assert.Throws.
+
+
+
+
+ ThrowsNothingConstraint tests that a delegate does not
+ throw an exception.
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True if no exception is thrown, otherwise false
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ CollectionConstraint is the abstract base class for
+ constraints that operate on collections.
+
+
+
+
+ Construct an empty CollectionConstraint
+
+
+
+
+ Construct a CollectionConstraint
+
+
+
+
+
+ Determines whether the specified enumerable is empty.
+
+ The enumerable.
+
+ true if the specified enumerable is empty; otherwise, false.
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Protected method to be implemented by derived classes
+
+
+
+
+
+
+ CollectionItemsEqualConstraint is the abstract base class for all
+ collection constraints that apply some notion of item equality
+ as a part of their operation.
+
+
+
+
+ Construct an empty CollectionConstraint
+
+
+
+
+ Construct a CollectionConstraint
+
+
+
+
+
+ Flag the constraint to use the supplied IComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied Comparison object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IEqualityComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IEqualityComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Compares two collection members for equality
+
+
+
+
+ Return a new CollectionTally for use in making tests
+
+ The collection to be included in the tally
+
+
+
+ Flag the constraint to ignore case and return self.
+
+
+
+
+ CollectionTally counts (tallies) the number of
+ occurences of each object in one or more enumerations.
+
+
+
+
+ Construct a CollectionTally object from a comparer and a collection
+
+
+
+
+ Try to remove an object from the tally
+
+ The object to remove
+ True if successful, false if the object was not found
+
+
+
+ Try to remove a set of objects from the tally
+
+ The objects to remove
+ True if successful, false if any object was not found
+
+
+
+ The number of objects remaining in the tally
+
+
+
+
+ EmptyCollectionConstraint tests whether a collection is empty.
+
+
+
+
+ Check that the collection is empty
+
+
+
+
+
+
+ Write the constraint description to a MessageWriter
+
+
+
+
+
+ UniqueItemsConstraint tests whether all the items in a
+ collection are unique.
+
+
+
+
+ Check that all items are unique.
+
+
+
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+
+
+
+
+ CollectionContainsConstraint is used to test whether a collection
+ contains an expected object as a member.
+
+
+
+
+ Construct a CollectionContainsConstraint
+
+
+
+
+
+ Test whether the expected item is contained in the collection
+
+
+
+
+
+
+ Write a descripton of the constraint to a MessageWriter
+
+
+
+
+
+ CollectionEquivalentCOnstraint is used to determine whether two
+ collections are equivalent.
+
+
+
+
+ Construct a CollectionEquivalentConstraint
+
+
+
+
+
+ Test whether two collections are equivalent
+
+
+
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+
+
+
+
+ CollectionSubsetConstraint is used to determine whether
+ one collection is a subset of another
+
+
+
+
+ Construct a CollectionSubsetConstraint
+
+ The collection that the actual value is expected to be a subset of
+
+
+
+ Test whether the actual collection is a subset of
+ the expected collection provided.
+
+
+
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+
+
+
+
+ CollectionOrderedConstraint is used to test whether a collection is ordered.
+
+
+
+
+ Construct a CollectionOrderedConstraint
+
+
+
+
+ Modifies the constraint to use an IComparer and returns self.
+
+
+
+
+ Modifies the constraint to use an IComparer<T> and returns self.
+
+
+
+
+ Modifies the constraint to use a Comparison<T> and returns self.
+
+
+
+
+ Modifies the constraint to test ordering by the value of
+ a specified property and returns self.
+
+
+
+
+ Test whether the collection is ordered
+
+
+
+
+
+
+ Write a description of the constraint to a MessageWriter
+
+
+
+
+
+ Returns the string representation of the constraint.
+
+
+
+
+
+ If used performs a reverse comparison
+
+
+
+
+ EmptyDirectoryConstraint is used to test that a directory is empty
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ SubDirectoryConstraint is used to test that one directory is a subdirectory of another.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The dir info.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Builds a list of DirectoryInfo objects, recursing where necessary
+
+ directory to recurse
+ list of DirectoryInfo objects from the top level
+
+
+
+ private method to determine whether a directory is within the path
+
+ top-level directory to search
+ directory to search for
+ true if found, false if not
+
+
+
+ Method to compare two DirectoryInfo objects
+
+ first directory to compare
+ second directory to compare
+ true if equivalent, false if not
+
+
+
+ PathConstraint serves as the abstract base of constraints
+ that operate on paths and provides several helper methods.
+
+
+
+
+ The expected path used in the constraint
+
+
+
+
+ Flag indicating whether a caseInsensitive comparison should be made
+
+
+
+
+ Construct a PathConstraint for a give expected path
+
+ The expected path
+
+
+
+ Returns the string representation of this constraint
+
+
+
+
+ Canonicalize the provided path
+
+
+ The path in standardized form
+
+
+
+ Test whether two paths are the same
+
+ The first path
+ The second path
+
+
+
+
+ Test whether one path is the same as or under another path
+
+ The first path - supposed to be the parent path
+ The second path - supposed to be the child path
+
+
+
+
+ Modifies the current instance to be case-insensitve
+ and returns it.
+
+
+
+
+ Modifies the current instance to be case-sensitve
+ and returns it.
+
+
+
+
+ Summary description for SamePathConstraint.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected path
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ SamePathOrUnderConstraint tests that one path is under another
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected path
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ PropertyExistsConstraint tests that a named property
+ exists on the object provided through Match.
+
+ Originally, PropertyConstraint provided this feature
+ in addition to making optional tests on the vaue
+ of the property. The two constraints are now separate.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name of the property.
+
+
+
+ Test whether the property exists for a given object
+
+ The object to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter.
+
+ The writer on which the actual value is displayed
+
+
+
+ Returns the string representation of the constraint.
+
+
+
+
+
+ PropertyConstraint extracts a named property and uses
+ its value as the actual value for a chained constraint.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ The constraint to apply to the property.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ Returns the string representation of the constraint.
+
+
+
+
+
+ ConstraintExpression represents a compound constraint in the
+ process of being constructed from a series of syntactic elements.
+
+ Individual elements are appended to the expression as they are
+ reognized. Once an actual Constraint is appended, the expression
+ returns a resolvable Constraint.
+
+
+
+
+ ConstraintExpressionBase is the abstract base class for the
+ generated ConstraintExpression class, which represents a
+ compound constraint in the process of being constructed
+ from a series of syntactic elements.
+
+ NOTE: ConstraintExpressionBase is aware of some of its
+ derived classes, which is an apparent violation of
+ encapsulation. Ideally, these classes would be a
+ single class, but they must be separated in order to
+ allow parts to be generated under .NET 1.x and to
+ provide proper user feedback in syntactically
+ aware IDEs.
+
+
+
+
+ The ConstraintBuilder holding the elements recognized so far
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the
+ class passing in a ConstraintBuilder, which may be pre-populated.
+
+ The builder.
+
+
+
+ Returns a string representation of the expression as it
+ currently stands. This should only be used for testing,
+ since it has the side-effect of resolving the expression.
+
+
+
+
+
+ Appends an operator to the expression and returns the
+ resulting expression itself.
+
+
+
+
+ Appends a self-resolving operator to the expression and
+ returns a new ResolvableConstraintExpression.
+
+
+
+
+ Appends a constraint to the expression and returns that
+ constraint, which is associated with the current state
+ of the expression being built.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the
+ class passing in a ConstraintBuilder, which may be pre-populated.
+
+ The builder.
+
+
+
+ Returns a new PropertyConstraintExpression, which will either
+ test for the existence of the named property on the object
+ being tested or apply any following constraint to that property.
+
+
+
+
+ Returns a new AttributeConstraint checking for the
+ presence of a particular attribute on an object.
+
+
+
+
+ Returns a new AttributeConstraint checking for the
+ presence of a particular attribute on an object.
+
+
+
+
+ Returns the constraint provided as an argument - used to allow custom
+ custom constraints to easily participate in the syntax.
+
+
+
+
+ Returns the constraint provided as an argument - used to allow custom
+ custom constraints to easily participate in the syntax.
+
+
+
+
+ Returns a constraint that tests two items for equality
+
+
+
+
+ Returns a constraint that tests that two references are the same object
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the actual
+ value is of the exact type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual
+ value is of the exact type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is a collection containing the same elements as the
+ collection supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is a subset of the collection supplied as an argument.
+
+
+
+
+ Returns a new CollectionContainsConstraint checking for the
+ presence of a particular object in the collection.
+
+
+
+
+ Returns a new CollectionContainsConstraint checking for the
+ presence of a particular object in the collection.
+
+
+
+
+ Returns a new ContainsConstraint. This constraint
+ will, in turn, make use of the appropriate second-level
+ constraint, depending on the type of the actual argument.
+ This overload is only used if the item sought is a string,
+ since any other type implies that we are looking for a
+ collection member.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value matches the Regex pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value matches the Regex pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the path provided
+ is the same as an expected path after canonicalization.
+
+
+
+
+ Returns a constraint that tests whether the path provided
+ is the same path or under an expected path after canonicalization.
+
+
+
+
+ Returns a constraint that tests whether the actual value falls
+ within a specified range.
+
+
+
+
+ Returns a ConstraintExpression that negates any
+ following constraint.
+
+
+
+
+ Returns a ConstraintExpression that negates any
+ following constraint.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them succeed.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if at least one of them succeeds.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them fail.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Length property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Count property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Message property of the object being tested.
+
+
+
+
+ With is currently a NOP - reserved for future use.
+
+
+
+
+ Returns a constraint that tests for null
+
+
+
+
+ Returns a constraint that tests for True
+
+
+
+
+ Returns a constraint that tests for False
+
+
+
+
+ Returns a constraint that tests for NaN
+
+
+
+
+ Returns a constraint that tests for empty
+
+
+
+
+ Returns a constraint that tests whether a collection
+ contains all unique items.
+
+
+
+
+ Returns a constraint that tests whether an object graph is serializable in binary format.
+
+
+
+
+ Returns a constraint that tests whether an object graph is serializable in xml format.
+
+
+
+
+ Returns a constraint that tests whether a collection is ordered
+
+
+
+
+ RangeConstraint tests whethe two values are within a
+ specified range.
+
+
+
+
+ Initializes a new instance of the class.
+
+ From.
+ To.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Modifies the constraint to use an IComparer and returns self.
+
+
+
+
+ Modifies the constraint to use an IComparer<T> and returns self.
+
+
+
+
+ Modifies the constraint to use a Comparison<T> and returns self.
+
+
+
+
+ EqualConstraint is able to compare an actual value with the
+ expected value provided in its constructor. Two objects are
+ considered equal if both are null, or if both have the same
+ value. NUnit has special semantics for some object types.
+
+
+
+
+ If true, strings in error messages will be clipped
+
+
+
+
+ NUnitEqualityComparer used to test equality.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected value.
+
+
+
+ Flag the constraint to use a tolerance when determining equality.
+
+ Tolerance value to be used
+ Self.
+
+
+
+ Flag the constraint to use the supplied IComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied Comparison object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IEqualityComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IEqualityComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write a failure message. Overridden to provide custom
+ failure messages for EqualConstraint.
+
+ The MessageWriter to write to
+
+
+
+ Write description of this constraint
+
+ The MessageWriter to write to
+
+
+
+ Display the failure information for two collections that did not match.
+
+ The MessageWriter on which to display
+ The expected collection.
+ The actual collection
+ The depth of this failure in a set of nested collections
+
+
+
+ Displays a single line showing the types and sizes of the expected
+ and actual collections or arrays. If both are identical, the value is
+ only shown once.
+
+ The MessageWriter on which to display
+ The expected collection or array
+ The actual collection or array
+ The indentation level for the message line
+
+
+
+ Displays a single line showing the point in the expected and actual
+ arrays at which the comparison failed. If the arrays have different
+ structures or dimensions, both values are shown.
+
+ The MessageWriter on which to display
+ The expected array
+ The actual array
+ Index of the failure point in the underlying collections
+ The indentation level for the message line
+
+
+
+ Flag the constraint to ignore case and return self.
+
+
+
+
+ Flag the constraint to suppress string clipping
+ and return self.
+
+
+
+
+ Flag the constraint to compare arrays as collections
+ and return self.
+
+
+
+
+ Switches the .Within() modifier to interpret its tolerance as
+ a distance in representable values (see remarks).
+
+ Self.
+
+ Ulp stands for "unit in the last place" and describes the minimum
+ amount a given value can change. For any integers, an ulp is 1 whole
+ digit. For floating point values, the accuracy of which is better
+ for smaller numbers and worse for larger numbers, an ulp depends
+ on the size of the number. Using ulps for comparison of floating
+ point results instead of fixed tolerances is safer because it will
+ automatically compensate for the added inaccuracy of larger numbers.
+
+
+
+
+ Switches the .Within() modifier to interpret its tolerance as
+ a percentage that the actual values is allowed to deviate from
+ the expected value.
+
+ Self
+
+
+
+ Causes the tolerance to be interpreted as a TimeSpan in days.
+
+ Self
+
+
+
+ Causes the tolerance to be interpreted as a TimeSpan in hours.
+
+ Self
+
+
+
+ Causes the tolerance to be interpreted as a TimeSpan in minutes.
+
+ Self
+
+
+
+ Causes the tolerance to be interpreted as a TimeSpan in seconds.
+
+ Self
+
+
+
+ Causes the tolerance to be interpreted as a TimeSpan in milliseconds.
+
+ Self
+
+
+
+ Causes the tolerance to be interpreted as a TimeSpan in clock ticks.
+
+ Self
+
+
+
+ NotConstraint negates the effect of some other constraint
+
+
+
+
+ Initializes a new instance of the class.
+
+ The base constraint to be negated.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for if the base constraint fails, false if it succeeds
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a MessageWriter.
+
+ The writer on which the actual value is displayed
+
+
+
+ AllItemsConstraint applies another constraint to each
+ item in a collection, succeeding if they all succeed.
+
+
+
+
+ Construct an AllItemsConstraint on top of an existing constraint
+
+
+
+
+
+ Apply the item constraint to each item in the collection,
+ failing if any item fails.
+
+
+
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+
+
+
+
+ SomeItemsConstraint applies another constraint to each
+ item in a collection, succeeding if any of them succeeds.
+
+
+
+
+ Construct a SomeItemsConstraint on top of an existing constraint
+
+
+
+
+
+ Apply the item constraint to each item in the collection,
+ succeeding if any item succeeds.
+
+
+
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+
+
+
+
+ NoItemConstraint applies another constraint to each
+ item in a collection, failing if any of them succeeds.
+
+
+
+
+ Construct a SomeItemsConstraint on top of an existing constraint
+
+
+
+
+
+ Apply the item constraint to each item in the collection,
+ failing if any item fails.
+
+
+
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+
+
+
+
+ ContainsConstraint tests a whether a string contains a substring
+ or a collection contains an object. It postpones the decision of
+ which test to use until the type of the actual argument is known.
+ This allows testing whether a string is contained in a collection
+ or as a substring of another string using the same syntax.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Flag the constraint to ignore case and return self.
+
+
+
+
+ Static methods used in creating messages
+
+
+
+
+ Static string used when strings are clipped
+
+
+
+
+ Returns the representation of a type as used in NUnitLite.
+ This is the same as Type.ToString() except for arrays,
+ which are displayed with their declared sizes.
+
+
+
+
+
+
+ Converts any control characters in a string
+ to their escaped representation.
+
+ The string to be converted
+ The converted string
+
+
+
+ Return the a string representation for a set of indices into an array
+
+ Array of indices for which a string is needed
+
+
+
+ Get an array of indices representing the point in a collection or
+ array corresponding to a single int index into the collection.
+
+ The collection to which the indices apply
+ Index in the collection
+ Array of indices
+
+
+
+ Clip a string to a given length, starting at a particular offset, returning the clipped
+ string with ellipses representing the removed parts
+
+ The string to be clipped
+ The maximum permitted length of the result string
+ The point at which to start clipping
+ The clipped string
+
+
+
+ Clip the expected and actual strings in a coordinated fashion,
+ so that they may be displayed together.
+
+
+
+
+
+
+
+
+ Shows the position two strings start to differ. Comparison
+ starts at the start index.
+
+ The expected string
+ The actual string
+ The index in the strings at which comparison should start
+ Boolean indicating whether case should be ignored
+ -1 if no mismatch found, or the index where mismatch found
+
+
+
+ BasicConstraint is the abstract base for constraints that
+ perform a simple comparison to a constant value.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected.
+ The description.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ NullConstraint tests that the actual value is null
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ TrueConstraint tests that the actual value is true
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ FalseConstraint tests that the actual value is false
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ NaNConstraint tests that the actual value is a double or float NaN
+
+
+
+
+ Test that the actual value is an NaN
+
+
+
+
+
+
+ Write the constraint description to a specified writer
+
+
+
+
+
+ MessageWriter is the abstract base for classes that write
+ constraint descriptions and messages in some form. The
+ class has separate methods for writing various components
+ of a message, allowing implementations to tailor the
+ presentation as needed.
+
+
+
+
+ Construct a MessageWriter given a culture
+
+
+
+
+ Method to write single line message with optional args, usually
+ written to precede the general failure message.
+
+ The message to be written
+ Any arguments used in formatting the message
+
+
+
+ Method to write single line message with optional args, usually
+ written to precede the general failure message, at a givel
+ indentation level.
+
+ The indentation level of the message
+ The message to be written
+ Any arguments used in formatting the message
+
+
+
+ Display Expected and Actual lines for a constraint. This
+ is called by MessageWriter's default implementation of
+ WriteMessageTo and provides the generic two-line display.
+
+ The constraint that failed
+
+
+
+ Display Expected and Actual lines for given values. This
+ method may be called by constraints that need more control over
+ the display of actual and expected values than is provided
+ by the default implementation.
+
+ The expected value
+ The actual value causing the failure
+
+
+
+ Display Expected and Actual lines for given values, including
+ a tolerance value on the Expected line.
+
+ The expected value
+ The actual value causing the failure
+ The tolerance within which the test was made
+
+
+
+ Display the expected and actual string values on separate lines.
+ If the mismatch parameter is >=0, an additional line is displayed
+ line containing a caret that points to the mismatch point.
+
+ The expected string value
+ The actual string value
+ The point at which the strings don't match or -1
+ If true, case is ignored in locating the point where the strings differ
+ If true, the strings should be clipped to fit the line
+
+
+
+ Writes the text for a connector.
+
+ The connector.
+
+
+
+ Writes the text for a predicate.
+
+ The predicate.
+
+
+
+ Writes the text for an expected value.
+
+ The expected value.
+
+
+
+ Writes the text for a modifier
+
+ The modifier.
+
+
+
+ Writes the text for an actual value.
+
+ The actual value.
+
+
+
+ Writes the text for a generalized value.
+
+ The value.
+
+
+
+ Writes the text for a collection value,
+ starting at a particular point, to a max length
+
+ The collection containing elements to write.
+ The starting point of the elements to write
+ The maximum number of elements to write
+
+
+
+ Abstract method to get the max line length
+
+
+
+
+ Modes in which the tolerance value for a comparison can
+ be interpreted.
+
+
+
+
+ The tolerance was created with a value, without specifying
+ how the value would be used. This is used to prevent setting
+ the mode more than once and is generally changed to Linear
+ upon execution of the test.
+
+
+
+
+ The tolerance is used as a numeric range within which
+ two compared values are considered to be equal.
+
+
+
+
+ Interprets the tolerance as the percentage by which
+ the two compared values my deviate from each other.
+
+
+
+
+ Compares two values based in their distance in
+ representable numbers.
+
+
+
+
+ The Tolerance class generalizes the notion of a tolerance
+ within which an equality test succeeds. Normally, it is
+ used with numeric types, but it can be used with any
+ type that supports taking a difference between two
+ objects and comparing that difference to a value.
+
+
+
+
+ Constructs a linear tolerance of a specdified amount
+
+
+
+
+ Constructs a tolerance given an amount and ToleranceMode
+
+
+
+
+ Tests that the current Tolerance is linear with a
+ numeric value, throwing an exception if it is not.
+
+
+
+
+ Returns an empty Tolerance object, equivalent to
+ specifying an exact match.
+
+
+
+
+ Gets the ToleranceMode for the current Tolerance
+
+
+
+
+ Gets the value of the current Tolerance instance.
+
+
+
+
+ Returns a new tolerance, using the current amount as a percentage.
+
+
+
+
+ Returns a new tolerance, using the current amount in Ulps.
+
+
+
+
+ Returns a new tolerance with a TimeSpan as the amount, using
+ the current amount as a number of days.
+
+
+
+
+ Returns a new tolerance with a TimeSpan as the amount, using
+ the current amount as a number of hours.
+
+
+
+
+ Returns a new tolerance with a TimeSpan as the amount, using
+ the current amount as a number of minutes.
+
+
+
+
+ Returns a new tolerance with a TimeSpan as the amount, using
+ the current amount as a number of seconds.
+
+
+
+
+ Returns a new tolerance with a TimeSpan as the amount, using
+ the current amount as a number of milliseconds.
+
+
+
+
+ Returns a new tolerance with a TimeSpan as the amount, using
+ the current amount as a number of clock ticks.
+
+
+
+
+ Returns true if the current tolerance is empty.
+
+
+
+
+ The Numerics class contains common operations on numeric values.
+
+
+
+
+ Checks the type of the object, returning true if
+ the object is a numeric type.
+
+ The object to check
+ true if the object is a numeric type
+
+
+
+ Checks the type of the object, returning true if
+ the object is a floating point numeric type.
+
+ The object to check
+ true if the object is a floating point numeric type
+
+
+
+ Checks the type of the object, returning true if
+ the object is a fixed point numeric type.
+
+ The object to check
+ true if the object is a fixed point numeric type
+
+
+
+ Test two numeric values for equality, performing the usual numeric
+ conversions and using a provided or default tolerance. If the tolerance
+ provided is Empty, this method may set it to a default tolerance.
+
+ The expected value
+ The actual value
+ A reference to the tolerance in effect
+ True if the values are equal
+
+
+
+ Compare two numeric values, performing the usual numeric conversions.
+
+ The expected value
+ The actual value
+ The relationship of the values to each other
+
+
+
+ EmptyConstraint tests a whether a string or collection is empty,
+ postponing the decision about which test is applied until the
+ type of the actual argument is known.
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ StringConstraint is the abstract base for constraints
+ that operate on strings. It supports the IgnoreCase
+ modifier for string operations.
+
+
+
+
+ The expected value
+
+
+
+
+ Indicates whether tests should be case-insensitive
+
+
+
+
+ Constructs a StringConstraint given an expected value
+
+ The expected value
+
+
+
+ Modify the constraint to ignore case in matching.
+
+
+
+
+ EmptyStringConstraint tests whether a string is empty.
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ NullEmptyStringConstraint tests whether a string is either null or empty.
+
+
+
+
+ Constructs a new NullOrEmptyStringConstraint
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ SubstringConstraint can test whether a string contains
+ the expected substring.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ StartsWithConstraint can test whether a string starts
+ with an expected substring.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected string
+
+
+
+ Test whether the constraint is matched by the actual value.
+ This is a template method, which calls the IsMatch method
+ of the derived class.
+
+
+
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ EndsWithConstraint can test whether a string ends
+ with an expected substring.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected string
+
+
+
+ Test whether the constraint is matched by the actual value.
+ This is a template method, which calls the IsMatch method
+ of the derived class.
+
+
+
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ RegexConstraint can test whether a string matches
+ the pattern provided.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The pattern.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Abstract base class for constraints that compare values to
+ determine if one is greater than, equal to or less than
+ the other.
+
+
+
+
+ The value against which a comparison is to be made
+
+
+
+
+ If true, less than returns success
+
+
+
+
+ if true, equal returns success
+
+
+
+
+ if true, greater than returns success
+
+
+
+
+ The predicate used as a part of the description
+
+
+
+
+ ComparisonAdapter to be used in making the comparison
+
+
+
+
+ Initializes a new instance of the class.
+
+ The value against which to make a comparison.
+ if set to true less succeeds.
+ if set to true equal succeeds.
+ if set to true greater succeeds.
+ String used in describing the constraint.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Modifies the constraint to use an IComparer and returns self
+
+
+
+
+ Modifies the constraint to use an IComparer<T> and returns self
+
+
+
+
+ Modifies the constraint to use a Comparison<T> and returns self
+
+
+
+
+ Tests whether a value is greater than the value supplied to its constructor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected value.
+
+
+
+ Tests whether a value is greater than or equal to the value supplied to its constructor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected value.
+
+
+
+ Tests whether a value is less than the value supplied to its constructor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected value.
+
+
+
+ Tests whether a value is less than or equal to the value supplied to its constructor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected value.
+
+
+
+ SameAsConstraint tests whether an object is identical to
+ the object passed to its constructor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected object.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ BinaryConstraint is the abstract base of all constraints
+ that combine two other constraints in some fashion.
+
+
+
+
+ The first constraint being combined
+
+
+
+
+ The second constraint being combined
+
+
+
+
+ Construct a BinaryConstraint from two other constraints
+
+ The first constraint
+ The second constraint
+
+
+
+ AndConstraint succeeds only if both members succeed.
+
+
+
+
+ Create an AndConstraint from two other constraints
+
+ The first constraint
+ The second constraint
+
+
+
+ Apply both member constraints to an actual value, succeeding
+ succeeding only if both of them succeed.
+
+ The actual value
+ True if the constraints both succeeded
+
+
+
+ Write a description for this contraint to a MessageWriter
+
+ The MessageWriter to receive the description
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ OrConstraint succeeds if either member succeeds
+
+
+
+
+ Create an OrConstraint from two other constraints
+
+ The first constraint
+ The second constraint
+
+
+
+ Apply the member constraints to an actual value, succeeding
+ succeeding as soon as one of them succeeds.
+
+ The actual value
+ True if either constraint succeeded
+
+
+
+ Write a description for this contraint to a MessageWriter
+
+ The MessageWriter to receive the description
+
+
+
+ Helper class with properties and methods that supply
+ a number of constraints used in Asserts.
+
+
+
+
+ Returns a new PropertyConstraintExpression, which will either
+ test for the existence of the named property on the object
+ being tested or apply any following constraint to that property.
+
+
+
+
+ Returns a new AttributeConstraint checking for the
+ presence of a particular attribute on an object.
+
+
+
+
+ Returns a new AttributeConstraint checking for the
+ presence of a particular attribute on an object.
+
+
+
+
+ Returns a constraint that tests two items for equality
+
+
+
+
+ Returns a constraint that tests that two references are the same object
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the actual
+ value is of the exact type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual
+ value is of the exact type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is a collection containing the same elements as the
+ collection supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is a subset of the collection supplied as an argument.
+
+
+
+
+ Returns a new CollectionContainsConstraint checking for the
+ presence of a particular object in the collection.
+
+
+
+
+ Returns a new CollectionContainsConstraint checking for the
+ presence of a particular object in the collection.
+
+
+
+
+ Returns a new ContainsConstraint. This constraint
+ will, in turn, make use of the appropriate second-level
+ constraint, depending on the type of the actual argument.
+ This overload is only used if the item sought is a string,
+ since any other type implies that we are looking for a
+ collection member.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value matches the Regex pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value matches the Regex pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value matches the pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the path provided
+ is the same as an expected path after canonicalization.
+
+
+
+
+ Returns a constraint that tests whether the path provided
+ is the same path or under an expected path after canonicalization.
+
+
+
+
+ Returns a constraint that tests whether the actual value falls
+ within a specified range.
+
+
+
+
+ Returns a ConstraintExpression that negates any
+ following constraint.
+
+
+
+
+ Returns a ConstraintExpression that negates any
+ following constraint.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them succeed.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if at least one of them succeeds.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them fail.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Length property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Count property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Message property of the object being tested.
+
+
+
+
+ Returns a constraint that tests for null
+
+
+
+
+ Returns a constraint that tests for True
+
+
+
+
+ Returns a constraint that tests for False
+
+
+
+
+ Returns a constraint that tests for NaN
+
+
+
+
+ Returns a constraint that tests for empty
+
+
+
+
+ Returns a constraint that tests whether a collection
+ contains all unique items.
+
+
+
+
+ Returns a constraint that tests whether an object graph is serializable in binary format.
+
+
+
+
+ Returns a constraint that tests whether an object graph is serializable in xml format.
+
+
+
+
+ Returns a constraint that tests whether a collection is ordered
+
+
+
+
+ Applies a delay to the match so that a match can be evaluated in the future.
+
+
+
+
+ Creates a new DelayedConstraint
+
+ The inner constraint two decorate
+ The time interval after which the match is performed
+ If the value of is less than 0
+
+
+
+ Creates a new DelayedConstraint
+
+ The inner constraint two decorate
+ The time interval after which the match is performed
+ The time interval used for polling
+ If the value of is less than 0
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for if the base constraint fails, false if it succeeds
+
+
+
+ Test whether the constraint is satisfied by a delegate
+
+ The delegate whose value is to be tested
+ True for if the base constraint fails, false if it succeeds
+
+
+
+ Test whether the constraint is satisfied by a given reference.
+ Overridden to wait for the specified delay period before
+ calling the base constraint with the dereferenced value.
+
+ A reference to the value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a MessageWriter.
+
+ The writer on which the actual value is displayed
+
+
+
+ Returns the string representation of the constraint.
+
+
+
+
+ NUnitComparer encapsulates NUnit's default behavior
+ in comparing two objects.
+
+
+
+
+ Compares two objects
+
+
+
+
+
+
+
+ Returns the default NUnitComparer.
+
+
+
+
+ Delegate used to delay evaluation of the actual value
+ to be used in evaluating a constraint
+
+
+
+
+ NUnitEqualityComparer encapsulates NUnit's handling of
+ equality tests between objects.
+
+
+
+
+ If true, all string comparisons will ignore case
+
+
+
+
+ If true, arrays will be treated as collections, allowing
+ those of different dimensions to be compared
+
+
+
+
+ If non-zero, equality comparisons within the specified
+ tolerance will succeed.
+
+
+
+
+ Comparison object used in comparisons for some constraints.
+
+
+
+
+ Compares two objects for equality.
+
+
+
+
+ Helper method to compare two arrays
+
+
+
+
+ Method to compare two DirectoryInfo objects
+
+ first directory to compare
+ second directory to compare
+ true if equivalent, false if not
+
+
+
+ Returns the default NUnitEqualityComparer
+
+
+
+
+ Gets and sets a flag indicating whether case should
+ be ignored in determining equality.
+
+
+
+
+ Gets and sets a flag indicating that arrays should be
+ compared as collections, without regard to their shape.
+
+
+
+
+ Gets and sets an external comparer to be used to
+ test for equality. It is applied to members of
+ collections, in place of NUnit's own logic.
+
+
+
+
+ Gets and sets a tolerance used to compare objects of
+ certin types.
+
+
+
+
+ Gets the list of failure points for the last Match performed.
+
+
+
+
+ ComparisonAdapter class centralizes all comparisons of
+ values in NUnit, adapting to the use of any provided
+ IComparer, IComparer<T> or Comparison<T>
+
+
+
+
+ Returns a ComparisonAdapter that wraps an IComparer
+
+
+
+
+ Returns a ComparisonAdapter that wraps an IComparer<T>
+
+
+
+
+ Returns a ComparisonAdapter that wraps a Comparison<T>
+
+
+
+
+ Compares two objects
+
+
+
+
+ Gets the default ComparisonAdapter, which wraps an
+ NUnitComparer object.
+
+
+
+
+ Construct a ComparisonAdapter for an IComparer
+
+
+
+
+ Compares two objects
+
+
+
+
+
+
+
+ Construct a default ComparisonAdapter
+
+
+
+
+ ComparisonAdapter<T> extends ComparisonAdapter and
+ allows use of an IComparer<T> or Comparison<T>
+ to actually perform the comparison.
+
+
+
+
+ Construct a ComparisonAdapter for an IComparer<T>
+
+
+
+
+ Compare a Type T to an object
+
+
+
+
+ Construct a ComparisonAdapter for a Comparison<T>
+
+
+
+
+ Compare a Type T to an object
+
+
+
+
+ The ConstraintOperator class is used internally by a
+ ConstraintBuilder to represent an operator that
+ modifies or combines constraints.
+
+ Constraint operators use left and right precedence
+ values to determine whether the top operator on the
+ stack should be reduced before pushing a new operator.
+
+
+
+
+ The precedence value used when the operator
+ is about to be pushed to the stack.
+
+
+
+
+ The precedence value used when the operator
+ is on the top of the stack.
+
+
+
+
+ Reduce produces a constraint from the operator and
+ any arguments. It takes the arguments from the constraint
+ stack and pushes the resulting constraint on it.
+
+
+
+
+
+ The syntax element preceding this operator
+
+
+
+
+ The syntax element folowing this operator
+
+
+
+
+ The precedence value used when the operator
+ is about to be pushed to the stack.
+
+
+
+
+ The precedence value used when the operator
+ is on the top of the stack.
+
+
+
+
+ PrefixOperator takes a single constraint and modifies
+ it's action in some way.
+
+
+
+
+ Reduce produces a constraint from the operator and
+ any arguments. It takes the arguments from the constraint
+ stack and pushes the resulting constraint on it.
+
+
+
+
+
+ Returns the constraint created by applying this
+ prefix to another constraint.
+
+
+
+
+
+
+ Negates the test of the constraint it wraps.
+
+
+
+
+ Constructs a new NotOperator
+
+
+
+
+ Returns a NotConstraint applied to its argument.
+
+
+
+
+ Abstract base for operators that indicate how to
+ apply a constraint to items in a collection.
+
+
+
+
+ Constructs a CollectionOperator
+
+
+
+
+ Represents a constraint that succeeds if all the
+ members of a collection match a base constraint.
+
+
+
+
+ Returns a constraint that will apply the argument
+ to the members of a collection, succeeding if
+ they all succeed.
+
+
+
+
+ Represents a constraint that succeeds if any of the
+ members of a collection match a base constraint.
+
+
+
+
+ Returns a constraint that will apply the argument
+ to the members of a collection, succeeding if
+ any of them succeed.
+
+
+
+
+ Represents a constraint that succeeds if none of the
+ members of a collection match a base constraint.
+
+
+
+
+ Returns a constraint that will apply the argument
+ to the members of a collection, succeeding if
+ none of them succeed.
+
+
+
+
+ Represents a constraint that simply wraps the
+ constraint provided as an argument, without any
+ further functionality, but which modifes the
+ order of evaluation because of its precedence.
+
+
+
+
+ Constructor for the WithOperator
+
+
+
+
+ Returns a constraint that wraps its argument
+
+
+
+
+ Abstract base class for operators that are able to reduce to a
+ constraint whether or not another syntactic element follows.
+
+
+
+
+ Operator used to test for the presence of a named Property
+ on an object and optionally apply further tests to the
+ value of that property.
+
+
+
+
+ Constructs a PropOperator for a particular named property
+
+
+
+
+ Reduce produces a constraint from the operator and
+ any arguments. It takes the arguments from the constraint
+ stack and pushes the resulting constraint on it.
+
+
+
+
+
+ Gets the name of the property to which the operator applies
+
+
+
+
+ Operator that tests for the presence of a particular attribute
+ on a type and optionally applies further tests to the attribute.
+
+
+
+
+ Construct an AttributeOperator for a particular Type
+
+ The Type of attribute tested
+
+
+
+ Reduce produces a constraint from the operator and
+ any arguments. It takes the arguments from the constraint
+ stack and pushes the resulting constraint on it.
+
+
+
+
+ Operator that tests that an exception is thrown and
+ optionally applies further tests to the exception.
+
+
+
+
+ Construct a ThrowsOperator
+
+
+
+
+ Reduce produces a constraint from the operator and
+ any arguments. It takes the arguments from the constraint
+ stack and pushes the resulting constraint on it.
+
+
+
+
+ Abstract base class for all binary operators
+
+
+
+
+ Reduce produces a constraint from the operator and
+ any arguments. It takes the arguments from the constraint
+ stack and pushes the resulting constraint on it.
+
+
+
+
+
+ Abstract method that produces a constraint by applying
+ the operator to its left and right constraint arguments.
+
+
+
+
+ Gets the left precedence of the operator
+
+
+
+
+ Gets the right precedence of the operator
+
+
+
+
+ Operator that requires both it's arguments to succeed
+
+
+
+
+ Construct an AndOperator
+
+
+
+
+ Apply the operator to produce an AndConstraint
+
+
+
+
+ Operator that requires at least one of it's arguments to succeed
+
+
+
+
+ Construct an OrOperator
+
+
+
+
+ Apply the operator to produce an OrConstraint
+
+
+
+
+ BinarySerializableConstraint tests whether
+ an object is serializable in binary format.
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ Returns the string representation
+
+
+
+
+ BinarySerializableConstraint tests whether
+ an object is serializable in binary format.
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ Returns the string representation of this constraint
+
+
+
+
+ ResolvableConstraintExpression is used to represent a compound
+ constraint being constructed at a point where the last operator
+ may either terminate the expression or may have additional
+ qualifying constraints added to it.
+
+ It is used, for example, for a Property element or for
+ an Exception element, either of which may be optionally
+ followed by constraints that apply to the property or
+ exception.
+
+
+
+
+ Create a new instance of ResolvableConstraintExpression
+
+
+
+
+ Create a new instance of ResolvableConstraintExpression,
+ passing in a pre-populated ConstraintBuilder.
+
+
+
+
+ Resolve the current expression to a Constraint
+
+
+
+
+ Appends an And Operator to the expression
+
+
+
+
+ Appends an Or operator to the expression.
+
+
+
+
+ EqualityAdapter class handles all equality comparisons
+ that use an IEqualityComparer, IEqualityComparer<T>
+ or a ComparisonAdapter.
+
+
+
+
+ Compares two objects, returning true if they are equal
+
+
+
+
+ Returns an EqualityAdapter that wraps an IComparer.
+
+
+
+
+ Returns an EqualityAdapter that wraps an IEqualityComparer.
+
+
+
+
+ Returns an EqualityAdapter that wraps an IEqualityComparer<T>.
+
+
+
+
+ Returns an EqualityAdapter that wraps an IComparer<T>.
+
+
+
+
+ Returns an EqualityAdapter that wraps a Comparison<T>.
+
+
+
+
+ AttributeExistsConstraint tests for the presence of a
+ specified attribute on a Type.
+
+
+
+
+ Constructs an AttributeExistsConstraint for a specific attribute Type
+
+
+
+
+
+ Tests whether the object provides the expected attribute.
+
+ A Type, MethodInfo, or other ICustomAttributeProvider
+ True if the expected attribute is present, otherwise false
+
+
+
+ Writes the description of the constraint to the specified writer
+
+
+
+
+ AttributeConstraint tests that a specified attribute is present
+ on a Type or other provider and that the value of the attribute
+ satisfies some other constraint.
+
+
+
+
+ Constructs an AttributeConstraint for a specified attriute
+ Type and base constraint.
+
+
+
+
+
+
+ Determines whether the Type or other provider has the
+ expected attribute and if its value matches the
+ additional constraint specified.
+
+
+
+
+ Writes a description of the attribute to the specified writer.
+
+
+
+
+ Writes the actual value supplied to the specified writer.
+
+
+
+
+ Returns a string representation of the constraint.
+
+
+
+ Helper routines for working with floating point numbers
+
+
+ The floating point comparison code is based on this excellent article:
+ http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
+
+
+ "ULP" means Unit in the Last Place and in the context of this library refers to
+ the distance between two adjacent floating point numbers. IEEE floating point
+ numbers can only represent a finite subset of natural numbers, with greater
+ accuracy for smaller numbers and lower accuracy for very large numbers.
+
+
+ If a comparison is allowed "2 ulps" of deviation, that means the values are
+ allowed to deviate by up to 2 adjacent floating point values, which might be
+ as low as 0.0000001 for small numbers or as high as 10.0 for large numbers.
+
+
+
+
+ Compares two floating point values for equality
+ First floating point value to be compared
+ Second floating point value t be compared
+
+ Maximum number of representable floating point values that are allowed to
+ be between the left and the right floating point values
+
+ True if both numbers are equal or close to being equal
+
+
+ Floating point values can only represent a finite subset of natural numbers.
+ For example, the values 2.00000000 and 2.00000024 can be stored in a float,
+ but nothing inbetween them.
+
+
+ This comparison will count how many possible floating point values are between
+ the left and the right number. If the number of possible values between both
+ numbers is less than or equal to maxUlps, then the numbers are considered as
+ being equal.
+
+
+ Implementation partially follows the code outlined here:
+ http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/
+
+
+
+
+ Compares two double precision floating point values for equality
+ First double precision floating point value to be compared
+ Second double precision floating point value t be compared
+
+ Maximum number of representable double precision floating point values that are
+ allowed to be between the left and the right double precision floating point values
+
+ True if both numbers are equal or close to being equal
+
+
+ Double precision floating point values can only represent a limited series of
+ natural numbers. For example, the values 2.0000000000000000 and 2.0000000000000004
+ can be stored in a double, but nothing inbetween them.
+
+
+ This comparison will count how many possible double precision floating point
+ values are between the left and the right number. If the number of possible
+ values between both numbers is less than or equal to maxUlps, then the numbers
+ are considered as being equal.
+
+
+ Implementation partially follows the code outlined here:
+ http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/
+
+
+
+
+
+ Reinterprets the memory contents of a floating point value as an integer value
+
+
+ Floating point value whose memory contents to reinterpret
+
+
+ The memory contents of the floating point value interpreted as an integer
+
+
+
+
+ Reinterprets the memory contents of a double precision floating point
+ value as an integer value
+
+
+ Double precision floating point value whose memory contents to reinterpret
+
+
+ The memory contents of the double precision floating point value
+ interpreted as an integer
+
+
+
+
+ Reinterprets the memory contents of an integer as a floating point value
+
+ Integer value whose memory contents to reinterpret
+
+ The memory contents of the integer value interpreted as a floating point value
+
+
+
+
+ Reinterprets the memory contents of an integer value as a double precision
+ floating point value
+
+ Integer whose memory contents to reinterpret
+
+ The memory contents of the integer interpreted as a double precision
+ floating point value
+
+
+
+ Union of a floating point variable and an integer
+
+
+ The union's value as a floating point variable
+
+
+ The union's value as an integer
+
+
+ The union's value as an unsigned integer
+
+
+ Union of a double precision floating point variable and a long
+
+
+ The union's value as a double precision floating point variable
+
+
+ The union's value as a long
+
+
+ The union's value as an unsigned long
+
+
+
+ Predicate constraint wraps a Predicate in a constraint,
+ returning success if the predicate is true.
+
+
+
+
+ Construct a PredicateConstraint from a predicate
+
+
+
+
+ Determines whether the predicate succeeds when applied
+ to the actual value.
+
+
+
+
+ Writes the description to a MessageWriter
+
+
+
+
+ The TestCaseData class represents a set of arguments
+ and other parameter info to be used for a parameterized
+ test case. It provides a number of instance modifiers
+ for use in initializing the test case.
+
+ Note: Instance modifiers are getters that return
+ the same instance after modifying it's state.
+
+
+
+
+ The ITestCaseData interface is implemented by a class
+ that is able to return complete testcases for use by
+ a parameterized test method.
+
+ NOTE: This interface is used in both the framework
+ and the core, even though that results in two different
+ types. However, sharing the source code guarantees that
+ the various implementations will be compatible and that
+ the core is able to reflect successfully over the
+ framework implementations of ITestCaseData.
+
+
+
+
+ Gets the argument list to be provided to the test
+
+
+
+
+ Gets the expected result
+
+
+
+
+ Gets the expected exception Type
+
+
+
+
+ Gets the FullName of the expected exception
+
+
+
+
+ Gets the name to be used for the test
+
+
+
+
+ Gets the description of the test
+
+
+
+
+ The argument list to be provided to the test
+
+
+
+
+ The expected result to be returned
+
+
+
+
+ The expected exception Type
+
+
+
+
+ The FullName of the expected exception
+
+
+
+
+ The name to be used for the test
+
+
+
+
+ The description of the test
+
+
+
+
+ A dictionary of properties, used to add information
+ to tests without requiring the class to change.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The arguments.
+
+
+
+ Initializes a new instance of the class.
+
+ The argument.
+
+
+
+ Initializes a new instance of the class.
+
+ The first argument.
+ The second argument.
+
+
+
+ Initializes a new instance of the class.
+
+ The first argument.
+ The second argument.
+ The third argument.
+
+
+
+ Sets the expected result for the test
+
+ The expected result
+ A modified TestCaseData
+
+
+
+ Sets the expected exception type for the test
+
+ Type of the expected exception.
+ The modified TestCaseData instance
+
+
+
+ Sets the expected exception type for the test
+
+ FullName of the expected exception.
+ The modified TestCaseData instance
+
+
+
+ Sets the name of the test case
+
+ The modified TestCaseData instance
+
+
+
+ Sets the description for the test case
+ being constructed.
+
+ The description.
+ The modified TestCaseData instance.
+
+
+
+ Applies a category to the test
+
+
+
+
+
+
+ Applies a named property to the test
+
+
+
+
+
+
+
+ Applies a named property to the test
+
+
+
+
+
+
+
+ Applies a named property to the test
+
+
+
+
+
+
+
+ Gets the argument list to be provided to the test
+
+
+
+
+ Gets the expected result
+
+
+
+
+ Gets the expected exception Type
+
+
+
+
+ Gets the FullName of the expected exception
+
+
+
+
+ Gets the name to be used for the test
+
+
+
+
+ Gets the description of the test
+
+
+
+
+ Gets a list of categories associated with this test.
+
+
+
+
+ Gets the property dictionary for this test
+
+
+
+
+ FactoryAttribute indicates the source to be used to
+ provide test cases for a test method.
+
+
+
+
+ Construct with the name of the factory - for use with languages
+ that don't support params arrays.
+
+ An array of the names of the factories that will provide data
+
+
+
+ Construct with a Type and name - for use with languages
+ that don't support params arrays.
+
+ The Type that will provide data
+ The name of the method, property or field that will provide data
+
+
+
+ The name of a the method, property or fiend to be used as a source
+
+
+
+
+ A Type to be used as a source
+
+
+
+
+ Helper class with properties and methods that supply
+ a number of constraints used in Asserts.
+
+
+
+
+ Returns a new PropertyConstraintExpression, which will either
+ test for the existence of the named property on the object
+ being tested or apply any following constraint to that property.
+
+
+
+
+ Returns a new AttributeConstraint checking for the
+ presence of a particular attribute on an object.
+
+
+
+
+ Returns a new AttributeConstraint checking for the
+ presence of a particular attribute on an object.
+
+
+
+
+ Returns a new CollectionContainsConstraint checking for the
+ presence of a particular object in the collection.
+
+
+
+
+ Returns a ConstraintExpression that negates any
+ following constraint.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them succeed.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if at least one of them succeeds.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them fail.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Length property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Count property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Message property of the object being tested.
+
+
+
+
+ The List class is a helper class with properties and methods
+ that supply a number of constraints used with lists and collections.
+
+
+
+
+ List.Map returns a ListMapper, which can be used to map
+ the original collection to another collection.
+
+
+
+
+
+
+ Enumeration indicating how the expected message parameter is to be used
+
+
+
+ Expect an exact match
+
+
+ Expect a message containing the parameter string
+
+
+ Match the regular expression provided as a parameter
+
+
+ Expect a message that starts with the parameter string
+
+
+
+ ExpectedExceptionAttribute
+
+
+
+
+
+ Constructor for a non-specific exception
+
+
+
+
+ Constructor for a given type of exception
+
+ The type of the expected exception
+
+
+
+ Constructor for a given exception name
+
+ The full name of the expected exception
+
+
+
+ Gets or sets the expected exception type
+
+
+
+
+ Gets or sets the full Type name of the expected exception
+
+
+
+
+ Gets or sets the expected message text
+
+
+
+
+ Gets or sets the user message displayed in case of failure
+
+
+
+
+ Gets or sets the type of match to be performed on the expected message
+
+
+
+
+ Gets the name of a method to be used as an exception handler
+
+
+
+
+ TestCaseAttribute is used to mark parameterized test cases
+ and provide them with their arguments.
+
+
+
+
+ Construct a TestCaseAttribute with a list of arguments.
+ This constructor is not CLS-Compliant
+
+
+
+
+
+ Construct a TestCaseAttribute with a single argument
+
+
+
+
+
+ Construct a TestCaseAttribute with a two arguments
+
+
+
+
+
+
+ Construct a TestCaseAttribute with a three arguments
+
+
+
+
+
+
+
+ Gets the list of arguments to a test case
+
+
+
+
+ Gets or sets the expected result.
+
+ The result.
+
+
+
+ Gets or sets the expected exception.
+
+ The expected exception.
+
+
+
+ Gets or sets the name the expected exception.
+
+ The expected name of the exception.
+
+
+
+ Gets or sets the expected message of the expected exception
+
+ The expected message of the exception.
+
+
+
+ Gets or sets the type of match to be performed on the expected message
+
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the name of the test.
+
+ The name of the test.
+
+
+
+ Thrown when an assertion failed.
+
+
+
+
+
+
+ The error message that explains
+ the reason for the exception
+ The exception that caused the
+ current exception
+
+
+
+ Serialization Constructor
+
+
+
+
+ Thrown when a test executes inconclusively.
+
+
+
+
+ The error message that explains
+ the reason for the exception
+
+
+ The error message that explains
+ the reason for the exception
+ The exception that caused the
+ current exception
+
+
+
+ Serialization Constructor
+
+
+
+
+ Delegate used by tests that execute code and
+ capture any thrown exception.
+
+
+
+
+ The Assert class contains a collection of static methods that
+ implement the most common assertions used in NUnit.
+
+
+
+
+ We don't actually want any instances of this object, but some people
+ like to inherit from it to add other static methods. Hence, the
+ protected constructor disallows any instances of this object.
+
+
+
+
+ The Equals method throws an AssertionException. This is done
+ to make sure there is no mistake by calling this function.
+
+
+
+
+
+
+ override the default ReferenceEquals to throw an AssertionException. This
+ implementation makes sure there is no mistake in calling this function
+ as part of Assert.
+
+
+
+
+
+
+ Helper for Assert.AreEqual(double expected, double actual, ...)
+ allowing code generation to work consistently.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Throws a with the message and arguments
+ that are passed in. This allows a test to be cut short, with a result
+ of success returned to NUnit.
+
+ The message to initialize the with.
+ Arguments to be used in formatting the message
+
+
+
+ Throws a with the message and arguments
+ that are passed in. This allows a test to be cut short, with a result
+ of success returned to NUnit.
+
+ The message to initialize the with.
+
+
+
+ Throws a with the message and arguments
+ that are passed in. This allows a test to be cut short, with a result
+ of success returned to NUnit.
+
+
+
+
+ Throws an with the message and arguments
+ that are passed in. This is used by the other Assert functions.
+
+ The message to initialize the with.
+ Arguments to be used in formatting the message
+
+
+
+ Throws an with the message that is
+ passed in. This is used by the other Assert functions.
+
+ The message to initialize the with.
+
+
+
+ Throws an .
+ This is used by the other Assert functions.
+
+
+
+
+ Throws an with the message and arguments
+ that are passed in. This causes the test to be reported as ignored.
+
+ The message to initialize the with.
+ Arguments to be used in formatting the message
+
+
+
+ Throws an with the message that is
+ passed in. This causes the test to be reported as ignored.
+
+ The message to initialize the with.
+
+
+
+ Throws an .
+ This causes the test to be reported as ignored.
+
+
+
+
+ Throws an with the message and arguments
+ that are passed in. This causes the test to be reported as inconclusive.
+
+ The message to initialize the with.
+ Arguments to be used in formatting the message
+
+
+
+ Throws an with the message that is
+ passed in. This causes the test to be reported as inconclusive.
+
+ The message to initialize the with.
+
+
+
+ Throws an .
+ This causes the test to be reported as Inconclusive.
+
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint expression to be applied
+ An ActualValueDelegate returning the value to be tested
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint expression to be applied
+ An ActualValueDelegate returning the value to be tested
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ An ActualValueDelegate returning the value to be tested
+ A Constraint expression to be applied
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display if the condition is false
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display if the condition is false
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+
+
+
+ Asserts that the code represented by a delegate throws an exception
+ that satisfies the constraint provided.
+
+ A TestDelegate to be executed
+ A ThrowsConstraint used in the test
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ A constraint to be satisfied by the exception
+ A TestSnippet delegate
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ A constraint to be satisfied by the exception
+ A TestSnippet delegate
+ The message that will be displayed on failure
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ A constraint to be satisfied by the exception
+ A TestSnippet delegate
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ The exception Type expected
+ A TestSnippet delegate
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ The exception Type expected
+ A TestSnippet delegate
+ The message that will be displayed on failure
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ The exception Type expected
+ A TestSnippet delegate
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ Type of the expected exception
+ A TestSnippet delegate
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ Type of the expected exception
+ A TestSnippet delegate
+ The message that will be displayed on failure
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ Type of the expected exception
+ A TestSnippet delegate
+
+
+
+ Verifies that a delegate does not throw an exception
+
+ A TestSnippet delegate
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that a delegate does not throw an exception.
+
+ A TestSnippet delegate
+ The message that will be displayed on failure
+
+
+
+ Verifies that a delegate does not throw an exception.
+
+ A TestSnippet delegate
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+
+
+
+ Asserts that a condition is false. If the condition is true the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that a condition is false. If the condition is true the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+
+
+
+ Asserts that a condition is false. If the condition is true the method throws
+ an .
+
+ The evaluated condition
+
+
+
+ Asserts that a condition is false. If the condition is true the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that a condition is false. If the condition is true the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+
+
+
+ Asserts that a condition is false. If the condition is true the method throws
+ an .
+
+ The evaluated condition
+
+
+
+ Verifies that the object that is passed in is not equal to null
+ If the object is null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the object that is passed in is not equal to null
+ If the object is null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+
+
+
+ Verifies that the object that is passed in is not equal to null
+ If the object is null then an
+ is thrown.
+
+ The object that is to be tested
+
+
+
+ Verifies that the object that is passed in is not equal to null
+ If the object is null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the object that is passed in is not equal to null
+ If the object is null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+
+
+
+ Verifies that the object that is passed in is not equal to null
+ If the object is null then an
+ is thrown.
+
+ The object that is to be tested
+
+
+
+ Verifies that the object that is passed in is equal to null
+ If the object is not null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the object that is passed in is equal to null
+ If the object is not null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+
+
+
+ Verifies that the object that is passed in is equal to null
+ If the object is not null then an
+ is thrown.
+
+ The object that is to be tested
+
+
+
+ Verifies that the object that is passed in is equal to null
+ If the object is not null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the object that is passed in is equal to null
+ If the object is not null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+
+
+
+ Verifies that the object that is passed in is equal to null
+ If the object is not null then an
+ is thrown.
+
+ The object that is to be tested
+
+
+
+ Verifies that the double that is passed in is an NaN value.
+ If the object is not NaN then an
+ is thrown.
+
+ The value that is to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the double that is passed in is an NaN value.
+ If the object is not NaN then an
+ is thrown.
+
+ The value that is to be tested
+ The message to display in case of failure
+
+
+
+ Verifies that the double that is passed in is an NaN value.
+ If the object is not NaN then an
+ is thrown.
+
+ The value that is to be tested
+
+
+
+ Verifies that the double that is passed in is an NaN value.
+ If the object is not NaN then an
+ is thrown.
+
+ The value that is to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the double that is passed in is an NaN value.
+ If the object is not NaN then an
+ is thrown.
+
+ The value that is to be tested
+ The message to display in case of failure
+
+
+
+ Verifies that the double that is passed in is an NaN value.
+ If the object is not NaN then an
+ is thrown.
+
+ The value that is to be tested
+
+
+
+ Assert that a string is empty - that is equal to string.Empty
+
+ The string to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Assert that a string is empty - that is equal to string.Empty
+
+ The string to be tested
+ The message to display in case of failure
+
+
+
+ Assert that a string is empty - that is equal to string.Empty
+
+ The string to be tested
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing ICollection
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing ICollection
+ The message to display in case of failure
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing ICollection
+
+
+
+ Assert that a string is not empty - that is not equal to string.Empty
+
+ The string to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Assert that a string is not empty - that is not equal to string.Empty
+
+ The string to be tested
+ The message to display in case of failure
+
+
+
+ Assert that a string is not empty - that is not equal to string.Empty
+
+ The string to be tested
+
+
+
+ Assert that an array, list or other collection is not empty
+
+ An array, list or other collection implementing ICollection
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is not empty
+
+ An array, list or other collection implementing ICollection
+ The message to display in case of failure
+
+
+
+ Assert that an array, list or other collection is not empty
+
+ An array, list or other collection implementing ICollection
+
+
+
+ Assert that a string is either null or equal to string.Empty
+
+ The string to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Assert that a string is either null or equal to string.Empty
+
+ The string to be tested
+ The message to display in case of failure
+
+
+
+ Assert that a string is either null or equal to string.Empty
+
+ The string to be tested
+
+
+
+ Assert that a string is not null or empty
+
+ The string to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Assert that a string is not null or empty
+
+ The string to be tested
+ The message to display in case of failure
+
+
+
+ Assert that a string is not null or empty
+
+ The string to be tested
+
+
+
+ Asserts that an object may be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object may be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+
+
+
+ Asserts that an object may be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+
+
+
+ Asserts that an object may be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object may be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+
+
+
+ Asserts that an object may be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+
+
+
+ Asserts that an object may not be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object may not be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+
+
+
+ Asserts that an object may not be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+
+
+
+ Asserts that an object may not be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object may not be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+
+
+
+ Asserts that an object may not be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two doubles are equal considering a delta. If the
+ expected value is infinity then the delta value is ignored. If
+ they are not equal then an is
+ thrown.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two doubles are equal considering a delta. If the
+ expected value is infinity then the delta value is ignored. If
+ they are not equal then an is
+ thrown.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+ The message to display in case of failure
+
+
+
+ Verifies that two doubles are equal considering a delta. If the
+ expected value is infinity then the delta value is ignored. If
+ they are not equal then an is
+ thrown.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+
+
+
+ Verifies that two doubles are equal considering a delta. If the
+ expected value is infinity then the delta value is ignored. If
+ they are not equal then an is
+ thrown.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two doubles are equal considering a delta. If the
+ expected value is infinity then the delta value is ignored. If
+ they are not equal then an is
+ thrown.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+ The message to display in case of failure
+
+
+
+ Verifies that two doubles are equal considering a delta. If the
+ expected value is infinity then the delta value is ignored. If
+ they are not equal then an is
+ thrown.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+
+
+
+ Verifies that two objects are equal. Two objects are considered
+ equal if both are null, or if both have the same value. NUnit
+ has special semantics for some object types.
+ If they are not equal an is thrown.
+
+ The value that is expected
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two objects are equal. Two objects are considered
+ equal if both are null, or if both have the same value. NUnit
+ has special semantics for some object types.
+ If they are not equal an is thrown.
+
+ The value that is expected
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two objects are equal. Two objects are considered
+ equal if both are null, or if both have the same value. NUnit
+ has special semantics for some object types.
+ If they are not equal an is thrown.
+
+ The value that is expected
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two objects are not equal. Two objects are considered
+ equal if both are null, or if both have the same value. NUnit
+ has special semantics for some object types.
+ If they are equal an is thrown.
+
+ The value that is expected
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two objects are not equal. Two objects are considered
+ equal if both are null, or if both have the same value. NUnit
+ has special semantics for some object types.
+ If they are equal an is thrown.
+
+ The value that is expected
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two objects are not equal. Two objects are considered
+ equal if both are null, or if both have the same value. NUnit
+ has special semantics for some object types.
+ If they are equal an is thrown.
+
+ The value that is expected
+ The actual value
+
+
+
+ Asserts that two objects refer to the same object. If they
+ are not the same an is thrown.
+
+ The expected object
+ The actual object
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that two objects refer to the same object. If they
+ are not the same an is thrown.
+
+ The expected object
+ The actual object
+ The message to display in case of failure
+
+
+
+ Asserts that two objects refer to the same object. If they
+ are not the same an is thrown.
+
+ The expected object
+ The actual object
+
+
+
+ Asserts that two objects do not refer to the same object. If they
+ are the same an is thrown.
+
+ The expected object
+ The actual object
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that two objects do not refer to the same object. If they
+ are the same an is thrown.
+
+ The expected object
+ The actual object
+ The message to display in case of failure
+
+
+
+ Asserts that two objects do not refer to the same object. If they
+ are the same an is thrown.
+
+ The expected object
+ The actual object
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Asserts that an object is contained in a list.
+
+ The expected object
+ The list to be examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is contained in a list.
+
+ The expected object
+ The list to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is contained in a list.
+
+ The expected object
+ The list to be examined
+
+
+
+ Gets the number of assertions executed so far and
+ resets the counter to zero.
+
+
+
+
+ RequiredAddinAttribute may be used to indicate the names of any addins
+ that must be present in order to run some or all of the tests in an
+ assembly. If the addin is not loaded, the entire assembly is marked
+ as NotRunnable.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The required addin.
+
+
+
+ Gets the name of required addin.
+
+ The required addin name.
+
+
+
+ Marks a test to use a combinatorial join of any argument
+ data provided. Since this is the default, the attribute is
+ not needed.
+
+
+
+
+ PropertyAttribute is used to attach information to a test as a name/value pair..
+
+
+
+
+ Construct a PropertyAttribute with a name and string value
+
+ The name of the property
+ The property value
+
+
+
+ Construct a PropertyAttribute with a name and int value
+
+ The name of the property
+ The property value
+
+
+
+ Construct a PropertyAttribute with a name and double value
+
+ The name of the property
+ The property value
+
+
+
+ Constructor for derived classes that set the
+ property dictionary directly.
+
+
+
+
+ Constructor for use by derived classes that use the
+ name of the type as the property name. Derived classes
+ must ensure that the Type of the property value is
+ a standard type supported by the BCL. Any custom
+ types will cause a serialization Exception when
+ in the client.
+
+
+
+
+ Gets the property dictionary for this attribute
+
+
+
+
+ Default constructor
+
+
+
+
+ Marks a test to use a combinatorial join of any argument
+ data provided. Since this is the default, the attribute is
+ not needed.
+
+
+
+
+ Default constructor
+
+
+
+
+ Marks a test to use a combinatorial join of any argument
+ data provided. Since this is the default, the attribute is
+ not needed.
+
+
+
+
+ Default constructor
+
+
+
+
+ Adding this attribute to a method within a
+ class makes the method callable from the NUnit test runner. There is a property
+ called Description which is optional which you can provide a more detailed test
+ description. This class cannot be inherited.
+
+
+
+ [TestFixture]
+ public class Fixture
+ {
+ [Test]
+ public void MethodToTest()
+ {}
+
+ [Test(Description = "more detailed description")]
+ publc void TestDescriptionMethod()
+ {}
+ }
+
+
+
+
+
+ Descriptive text for this test
+
+
+
+
+ [TestFixture]
+ public class ExampleClass
+ {}
+
+
+
+
+ Default constructor
+
+
+
+
+ Construct with a object[] representing a set of arguments.
+ In .NET 2.0, the arguments may later be separated into
+ type arguments and constructor arguments.
+
+
+
+
+
+ Descriptive text for this fixture
+
+
+
+
+ The arguments originally provided to the attribute
+
+
+
+
+ Get or set the type arguments. If not set
+ explicitly, any leading arguments that are
+ Types are taken as type arguments.
+
+
+
+
+ A set of Assert methods operationg on one or more collections
+
+
+
+
+ The Equals method throws an AssertionException. This is done
+ to make sure there is no mistake by calling this function.
+
+
+
+
+
+
+ override the default ReferenceEquals to throw an AssertionException. This
+ implementation makes sure there is no mistake in calling this function
+ as part of Assert.
+
+
+
+
+
+
+ Asserts that all items contained in collection are of the type specified by expectedType.
+
+ IEnumerable containing objects to be considered
+ System.Type that all objects in collection must be instances of
+
+
+
+ Asserts that all items contained in collection are of the type specified by expectedType.
+
+ IEnumerable containing objects to be considered
+ System.Type that all objects in collection must be instances of
+ The message that will be displayed on failure
+
+
+
+ Asserts that all items contained in collection are of the type specified by expectedType.
+
+ IEnumerable containing objects to be considered
+ System.Type that all objects in collection must be instances of
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that all items contained in collection are not equal to null.
+
+ IEnumerable containing objects to be considered
+
+
+
+ Asserts that all items contained in collection are not equal to null.
+
+ IEnumerable containing objects to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that all items contained in collection are not equal to null.
+
+ IEnumerable of objects to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Ensures that every object contained in collection exists within the collection
+ once and only once.
+
+ IEnumerable of objects to be considered
+
+
+
+ Ensures that every object contained in collection exists within the collection
+ once and only once.
+
+ IEnumerable of objects to be considered
+ The message that will be displayed on failure
+
+
+
+ Ensures that every object contained in collection exists within the collection
+ once and only once.
+
+ IEnumerable of objects to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that expected and actual are exactly equal. The collections must have the same count,
+ and contain the exact same objects in the same order.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+
+
+
+ Asserts that expected and actual are exactly equal. The collections must have the same count,
+ and contain the exact same objects in the same order.
+ If comparer is not null then it will be used to compare the objects.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The IComparer to use in comparing objects from each IEnumerable
+
+
+
+ Asserts that expected and actual are exactly equal. The collections must have the same count,
+ and contain the exact same objects in the same order.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that expected and actual are exactly equal. The collections must have the same count,
+ and contain the exact same objects in the same order.
+ If comparer is not null then it will be used to compare the objects.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The IComparer to use in comparing objects from each IEnumerable
+ The message that will be displayed on failure
+
+
+
+ Asserts that expected and actual are exactly equal. The collections must have the same count,
+ and contain the exact same objects in the same order.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that expected and actual are exactly equal. The collections must have the same count,
+ and contain the exact same objects in the same order.
+ If comparer is not null then it will be used to compare the objects.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The IComparer to use in comparing objects from each IEnumerable
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+
+
+
+ Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that expected and actual are not exactly equal.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+
+
+
+ Asserts that expected and actual are not exactly equal.
+ If comparer is not null then it will be used to compare the objects.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The IComparer to use in comparing objects from each IEnumerable
+
+
+
+ Asserts that expected and actual are not exactly equal.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that expected and actual are not exactly equal.
+ If comparer is not null then it will be used to compare the objects.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The IComparer to use in comparing objects from each IEnumerable
+ The message that will be displayed on failure
+
+
+
+ Asserts that expected and actual are not exactly equal.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that expected and actual are not exactly equal.
+ If comparer is not null then it will be used to compare the objects.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The IComparer to use in comparing objects from each IEnumerable
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that expected and actual are not equivalent.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+
+
+
+ Asserts that expected and actual are not equivalent.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that expected and actual are not equivalent.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that collection contains actual as an item.
+
+ IEnumerable of objects to be considered
+ Object to be found within collection
+
+
+
+ Asserts that collection contains actual as an item.
+
+ IEnumerable of objects to be considered
+ Object to be found within collection
+ The message that will be displayed on failure
+
+
+
+ Asserts that collection contains actual as an item.
+
+ IEnumerable of objects to be considered
+ Object to be found within collection
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that collection does not contain actual as an item.
+
+ IEnumerable of objects to be considered
+ Object that cannot exist within collection
+
+
+
+ Asserts that collection does not contain actual as an item.
+
+ IEnumerable of objects to be considered
+ Object that cannot exist within collection
+ The message that will be displayed on failure
+
+
+
+ Asserts that collection does not contain actual as an item.
+
+ IEnumerable of objects to be considered
+ Object that cannot exist within collection
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that superset is not a subject of subset.
+
+ The IEnumerable superset to be considered
+ The IEnumerable subset to be considered
+
+
+
+ Asserts that superset is not a subject of subset.
+
+ The IEnumerable superset to be considered
+ The IEnumerable subset to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that superset is not a subject of subset.
+
+ The IEnumerable superset to be considered
+ The IEnumerable subset to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that superset is a subset of subset.
+
+ The IEnumerable superset to be considered
+ The IEnumerable subset to be considered
+
+
+
+ Asserts that superset is a subset of subset.
+
+ The IEnumerable superset to be considered
+ The IEnumerable subset to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that superset is a subset of subset.
+
+ The IEnumerable superset to be considered
+ The IEnumerable subset to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing IEnumerable
+ The message to be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing IEnumerable
+ The message to be displayed on failure
+
+
+
+ Assert that an array,list or other collection is empty
+
+ An array, list or other collection implementing IEnumerable
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing IEnumerable
+ The message to be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing IEnumerable
+ The message to be displayed on failure
+
+
+
+ Assert that an array,list or other collection is empty
+
+ An array, list or other collection implementing IEnumerable
+
+
+
+ Assert that an array, list or other collection is ordered
+
+ An array, list or other collection implementing IEnumerable
+ The message to be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is ordered
+
+ An array, list or other collection implementing IEnumerable
+ The message to be displayed on failure
+
+
+
+ Assert that an array, list or other collection is ordered
+
+ An array, list or other collection implementing IEnumerable
+
+
+
+ Assert that an array, list or other collection is ordered
+
+ An array, list or other collection implementing IEnumerable
+ A custom comparer to perform the comparisons
+ The message to be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is ordered
+
+ An array, list or other collection implementing IEnumerable
+ A custom comparer to perform the comparisons
+ The message to be displayed on failure
+
+
+
+ Assert that an array, list or other collection is ordered
+
+ An array, list or other collection implementing IEnumerable
+ A custom comparer to perform the comparisons
+
+
+
+ Abstract base class for attributes that apply to parameters
+ and supply data for the parameter.
+
+
+
+
+ Gets the data to be provided to the specified parameter
+
+
+
+
+ ValuesAttribute is used to provide literal arguments for
+ an individual parameter of a test.
+
+
+
+
+ The collection of data to be returned. Must
+ be set by any derived attribute classes.
+
+
+
+
+ Construct with one argument
+
+
+
+
+
+ Construct with two arguments
+
+
+
+
+
+
+ Construct with three arguments
+
+
+
+
+
+
+
+ Construct with an array of arguments
+
+
+
+
+
+ Get the collection of values to be used as arguments
+
+
+
+
+ Thrown when an assertion failed.
+
+
+
+
+ The error message that explains
+ the reason for the exception
+
+
+ The error message that explains
+ the reason for the exception
+ The exception that caused the
+ current exception
+
+
+
+ Serialization Constructor
+
+
+
+
+ Marks a test with a timeout value in milliseconds. The
+ test will be run in a separate thread and cancelled if
+ the timeout is exceeded.
+
+
+
+
+ Construct a TimeoutAttribute given a time in milliseconds
+
+
+
+
+
+ Marks a test that must run in the STA, causing it
+ to run in a separate thread if necessary.
+
+ On methods, you may also use STAThreadAttribute
+ to serve the same purpose.
+
+
+
+
+ Construct a RequiresSTAAttribute
+
+
+
+
+ Marks a test that must run in the MTA, causing it
+ to run in a separate thread if necessary.
+
+ On methods, you may also use MTAThreadAttribute
+ to serve the same purpose.
+
+
+
+
+ Construct a RequiresMTAAttribute
+
+
+
+
+ Marks a test that must run on a separate thread.
+
+
+
+
+ Construct a RequiresThreadAttribute
+
+
+
+
+ Construct a RequiresThreadAttribute, specifying the apartment
+
+
+
+
+ AssertionHelper is an optional base class for user tests,
+ allowing the use of shorter names for constraints and
+ asserts and avoiding conflict with the definition of
+ , from which it inherits much of its
+ behavior, in certain mock object frameworks.
+
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure. Works
+ identically to
+
+ A Constraint to be applied
+ The actual value to test
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure. Works
+ identically to
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure. Works
+ identically to
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint expression to be applied
+ An ActualValueDelegate returning the value to be tested
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint expression to be applied
+ An ActualValueDelegate returning the value to be tested
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ An ActualValueDelegate returning the value to be tested
+ A Constraint expression to be applied
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an . Works Identically to
+ .
+
+ The evaluated condition
+ The message to display if the condition is false
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an . Works Identically to
+ .
+
+ The evaluated condition
+ The message to display if the condition is false
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an . Works Identically to .
+
+ The evaluated condition
+
+
+
+ Asserts that the code represented by a delegate throws an exception
+ that satisfies the constraint provided.
+
+ A TestDelegate to be executed
+ A ThrowsConstraint used in the test
+
+
+
+ Returns a ListMapper based on a collection.
+
+ The original collection
+
+
+
+
+ Attribute used to apply a category to a test
+
+
+
+
+ The name of the category
+
+
+
+
+ Construct attribute for a given category
+
+ The name of the category
+
+
+
+ Protected constructor uses the Type name as the name
+ of the category.
+
+
+
+
+ The name of the category
+
+
+
+
+ RandomAttribute is used to supply a set of random values
+ to a single parameter of a parameterized test.
+
+
+
+
+ Construct a set of doubles from 0.0 to 1.0,
+ specifying only the count.
+
+
+
+
+
+ Construct a set of doubles from min to max
+
+
+
+
+
+
+
+ Construct a set of ints from min to max
+
+
+
+
+
+
+
+ Get the collection of values to be used as arguments
+
+
+
+
+ Attribute used to provide descriptive text about a
+ test case or fixture.
+
+
+
+
+ Construct the attribute
+
+ Text describing the test
+
+
+
+ Gets the test description
+
+
+
+
+ ExplicitAttribute marks a test or test fixture so that it will
+ only be run if explicitly executed from the gui or command line
+ or if it is included by use of a filter. The test will not be
+ run simply because an enclosing suite is run.
+
+
+
+
+ Default constructor
+
+
+
+
+ Constructor with a reason
+
+ The reason test is marked explicit
+
+
+
+ The reason test is marked explicit
+
+
+
+
+ Provides static methods to express the assumptions
+ that must be met for a test to give a meaningful
+ result. If an assumption is not met, the test
+ should produce an inconclusive result.
+
+
+
+
+ The Equals method throws an AssertionException. This is done
+ to make sure there is no mistake by calling this function.
+
+
+
+
+
+
+ override the default ReferenceEquals to throw an AssertionException. This
+ implementation makes sure there is no mistake in calling this function
+ as part of Assert.
+
+
+
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ An ActualValueDelegate returning the value to be tested
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ An ActualValueDelegate returning the value to be tested
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ An ActualValueDelegate returning the value to be tested
+ A Constraint expression to be applied
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display if the condition is false
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display if the condition is false
+
+
+
+ Asserts that a condition is true. If the condition is false the
+ method throws an .
+
+ The evaluated condition
+
+
+
+ Asserts that the code represented by a delegate throws an exception
+ that satisfies the constraint provided.
+
+ A TestDelegate to be executed
+ A ThrowsConstraint used in the test
+
+
+
+ GlobalSettings is a place for setting default values used
+ by the framework in performing asserts.
+
+
+
+
+ Default tolerance for floating point equality
+
+
+
+
+ Helper class with properties and methods that supply
+ a number of constraints used in Asserts.
+
+
+
+
+ Returns a constraint that tests two items for equality
+
+
+
+
+ Returns a constraint that tests that two references are the same object
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the actual
+ value is of the exact type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual
+ value is of the exact type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is a collection containing the same elements as the
+ collection supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is a subset of the collection supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value matches the Regex pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the path provided
+ is the same as an expected path after canonicalization.
+
+
+
+
+ Returns a constraint that tests whether the path provided
+ is the same path or under an expected path after canonicalization.
+
+
+
+
+ Returns a constraint that tests whether the actual value falls
+ within a specified range.
+
+
+
+
+ Returns a ConstraintExpression that negates any
+ following constraint.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them succeed.
+
+
+
+
+ Returns a constraint that tests for null
+
+
+
+
+ Returns a constraint that tests for True
+
+
+
+
+ Returns a constraint that tests for False
+
+
+
+
+ Returns a constraint that tests for NaN
+
+
+
+
+ Returns a constraint that tests for empty
+
+
+
+
+ Returns a constraint that tests whether a collection
+ contains all unique items.
+
+
+
+
+ Returns a constraint that tests whether an object graph is serializable in binary format.
+
+
+
+
+ Returns a constraint that tests whether an object graph is serializable in xml format.
+
+
+
+
+ Returns a constraint that tests whether a collection is ordered
+
+
+
+
+ Interface implemented by a user fixture in order to
+ validate any expected exceptions. It is only called
+ for test methods marked with the ExpectedException
+ attribute.
+
+
+
+
+ Method to handle an expected exception
+
+ The exception to be handled
+
+
+
+ Attribute used to mark a test that is to be ignored.
+ Ignored tests result in a warning message when the
+ tests are run.
+
+
+
+
+ Constructs the attribute without giving a reason
+ for ignoring the test.
+
+
+
+
+ Constructs the attribute giving a reason for ignoring the test
+
+ The reason for ignoring the test
+
+
+
+ The reason for ignoring a test
+
+
+
+
+ Thrown when an assertion failed.
+
+
+
+
+
+
+ The error message that explains
+ the reason for the exception
+ The exception that caused the
+ current exception
+
+
+
+ Serialization Constructor
+
+
+
+
+ Abstract base for Attributes that are used to include tests
+ in the test run based on environmental settings.
+
+
+
+
+ Constructor with no included items specified, for use
+ with named property syntax.
+
+
+
+
+ Constructor taking one or more included items
+
+ Comma-delimited list of included items
+
+
+
+ Name of the item that is needed in order for
+ a test to run. Multiple itemss may be given,
+ separated by a comma.
+
+
+
+
+ Name of the item to be excluded. Multiple items
+ may be given, separated by a comma.
+
+
+
+
+ The reason for including or excluding the test
+
+
+
+
+ PlatformAttribute is used to mark a test fixture or an
+ individual method as applying to a particular platform only.
+
+
+
+
+ Constructor with no platforms specified, for use
+ with named property syntax.
+
+
+
+
+ Constructor taking one or more platforms
+
+ Comma-deliminted list of platforms
+
+
+
+ CultureAttribute is used to mark a test fixture or an
+ individual method as applying to a particular Culture only.
+
+
+
+
+ Constructor with no cultures specified, for use
+ with named property syntax.
+
+
+
+
+ Constructor taking one or more cultures
+
+ Comma-deliminted list of cultures
+
+
+
+ RangeAttribute is used to supply a range of values to an
+ individual parameter of a parameterized test.
+
+
+
+
+ Construct a range of ints using default step of 1
+
+
+
+
+
+
+ Construct a range of ints specifying the step size
+
+
+
+
+
+
+
+ Construct a range of longs
+
+
+
+
+
+
+
+ Construct a range of doubles
+
+
+
+
+
+
+
+ Construct a range of floats
+
+
+
+
+
+
+
+ Summary description for SetCultureAttribute.
+
+
+
+
+ Construct given the name of a culture
+
+
+
+
+
+ ValueSourceAttribute indicates the source to be used to
+ provide data for one parameter of a test method.
+
+
+
+
+ Construct with the name of the factory - for use with languages
+ that don't support params arrays.
+
+ The name of the data source to be used
+
+
+
+ Construct with a Type and name - for use with languages
+ that don't support params arrays.
+
+ The Type that will provide data
+ The name of the method, property or field that will provide data
+
+
+
+ The name of a the method, property or fiend to be used as a source
+
+
+
+
+ A Type to be used as a source
+
+
+
+
+ TextMessageWriter writes constraint descriptions and messages
+ in displayable form as a text stream. It tailors the display
+ of individual message components to form the standard message
+ format of NUnit assertion failure messages.
+
+
+
+
+ Prefix used for the expected value line of a message
+
+
+
+
+ Prefix used for the actual value line of a message
+
+
+
+
+ Length of a message prefix
+
+
+
+
+ Construct a TextMessageWriter
+
+
+
+
+ Construct a TextMessageWriter, specifying a user message
+ and optional formatting arguments.
+
+
+
+
+
+
+ Method to write single line message with optional args, usually
+ written to precede the general failure message, at a givel
+ indentation level.
+
+ The indentation level of the message
+ The message to be written
+ Any arguments used in formatting the message
+
+
+
+ Display Expected and Actual lines for a constraint. This
+ is called by MessageWriter's default implementation of
+ WriteMessageTo and provides the generic two-line display.
+
+ The constraint that failed
+
+
+
+ Display Expected and Actual lines for given values. This
+ method may be called by constraints that need more control over
+ the display of actual and expected values than is provided
+ by the default implementation.
+
+ The expected value
+ The actual value causing the failure
+
+
+
+ Display Expected and Actual lines for given values, including
+ a tolerance value on the expected line.
+
+ The expected value
+ The actual value causing the failure
+ The tolerance within which the test was made
+
+
+
+ Display the expected and actual string values on separate lines.
+ If the mismatch parameter is >=0, an additional line is displayed
+ line containing a caret that points to the mismatch point.
+
+ The expected string value
+ The actual string value
+ The point at which the strings don't match or -1
+ If true, case is ignored in string comparisons
+ If true, clip the strings to fit the max line length
+
+
+
+ Writes the text for a connector.
+
+ The connector.
+
+
+
+ Writes the text for a predicate.
+
+ The predicate.
+
+
+
+ Write the text for a modifier.
+
+ The modifier.
+
+
+
+ Writes the text for an expected value.
+
+ The expected value.
+
+
+
+ Writes the text for an actual value.
+
+ The actual value.
+
+
+
+ Writes the text for a generalized value.
+
+ The value.
+
+
+
+ Writes the text for a collection value,
+ starting at a particular point, to a max length
+
+ The collection containing elements to write.
+ The starting point of the elements to write
+ The maximum number of elements to write
+
+
+
+ Write the generic 'Expected' line for a constraint
+
+ The constraint that failed
+
+
+
+ Write the generic 'Expected' line for a given value
+
+ The expected value
+
+
+
+ Write the generic 'Expected' line for a given value
+ and tolerance.
+
+ The expected value
+ The tolerance within which the test was made
+
+
+
+ Write the generic 'Actual' line for a constraint
+
+ The constraint for which the actual value is to be written
+
+
+
+ Write the generic 'Actual' line for a given value
+
+ The actual value causing a failure
+
+
+
+ Gets or sets the maximum line length for this writer
+
+
+
+
+ Basic Asserts on strings.
+
+
+
+
+ The Equals method throws an AssertionException. This is done
+ to make sure there is no mistake by calling this function.
+
+
+
+
+
+
+ override the default ReferenceEquals to throw an AssertionException. This
+ implementation makes sure there is no mistake in calling this function
+ as part of Assert.
+
+
+
+
+
+
+ Asserts that a string is found within another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string is found within another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that a string is found within another string.
+
+ The expected string
+ The string to be examined
+
+
+
+ Asserts that a string is not found within another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string is found within another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that a string is found within another string.
+
+ The expected string
+ The string to be examined
+
+
+
+ Asserts that a string starts with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string starts with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that a string starts with another string.
+
+ The expected string
+ The string to be examined
+
+
+
+ Asserts that a string does not start with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string does not start with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that a string does not start with another string.
+
+ The expected string
+ The string to be examined
+
+
+
+ Asserts that a string ends with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string ends with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that a string ends with another string.
+
+ The expected string
+ The string to be examined
+
+
+
+ Asserts that a string does not end with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string does not end with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that a string does not end with another string.
+
+ The expected string
+ The string to be examined
+
+
+
+ Asserts that two strings are equal, without regard to case.
+
+ The expected string
+ The actual string
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that two strings are equal, without regard to case.
+
+ The expected string
+ The actual string
+ The message to display in case of failure
+
+
+
+ Asserts that two strings are equal, without regard to case.
+
+ The expected string
+ The actual string
+
+
+
+ Asserts that two strings are not equal, without regard to case.
+
+ The expected string
+ The actual string
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that two strings are Notequal, without regard to case.
+
+ The expected string
+ The actual string
+ The message to display in case of failure
+
+
+
+ Asserts that two strings are not equal, without regard to case.
+
+ The expected string
+ The actual string
+
+
+
+ Asserts that a string matches an expected regular expression pattern.
+
+ The regex pattern to be matched
+ The actual string
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string matches an expected regular expression pattern.
+
+ The regex pattern to be matched
+ The actual string
+ The message to display in case of failure
+
+
+
+ Asserts that a string matches an expected regular expression pattern.
+
+ The regex pattern to be matched
+ The actual string
+
+
+
+ Asserts that a string does not match an expected regular expression pattern.
+
+ The regex pattern to be used
+ The actual string
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string does not match an expected regular expression pattern.
+
+ The regex pattern to be used
+ The actual string
+ The message to display in case of failure
+
+
+
+ Asserts that a string does not match an expected regular expression pattern.
+
+ The regex pattern to be used
+ The actual string
+
+
+
+ Attribute used to mark a class that contains one-time SetUp
+ and/or TearDown methods that apply to all the tests in a
+ namespace or an assembly.
+
+
+
+
+ SetUpFixtureAttribute is used to identify a SetUpFixture
+
+
+
+
+ RepeatAttribute may be applied to test case in order
+ to run it multiple times.
+
+
+
+
+ Construct a RepeatAttribute
+
+ The number of times to run the test
+
+
+
+ Attribute used to mark a static (shared in VB) property
+ that returns a list of tests.
+
+
+
+
+ Attribute used to identify a method that is called
+ immediately after each test is run. The method is
+ guaranteed to be called, even if an exception is thrown.
+
+
+
+
+ The Iz class is a synonym for Is intended for use in VB,
+ which regards Is as a keyword.
+
+
+
+
+ Helper class with properties and methods that supply
+ constraints that operate on exceptions.
+
+
+
+
+ Creates a constraint specifying the exact type of exception expected
+
+
+
+
+ Creates a constraint specifying the exact type of exception expected
+
+
+
+
+ Creates a constraint specifying the type of exception expected
+
+
+
+
+ Creates a constraint specifying the type of exception expected
+
+
+
+
+ Creates a constraint specifying an expected exception
+
+
+
+
+ Creates a constraint specifying that no exception is thrown
+
+
+
+
+ ListMapper is used to transform a collection used as an actual argument
+ producing another collection to be used in the assertion.
+
+
+
+
+ Construct a ListMapper based on a collection
+
+ The collection to be transformed
+
+
+
+ Produces a collection containing all the values of a property
+
+ The collection of property values
+
+
+
+
+ Attribute used to identify a method that is
+ called before any tests in a fixture are run.
+
+
+
+
+ Attribute used to identify a method that is called after
+ all the tests in a fixture have run. The method is
+ guaranteed to be called, even if an exception is thrown.
+
+
+
+
+ The Catch class is used to capture an exception.
+
+
+
+
+ Capture any exception that is thrown by the delegate
+
+ A TestDelegate
+ The exception thrown, or null
+
+
+
+ Helper class with static methods used to supply constraints
+ that operate on strings.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value matches the Regex pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value matches the pattern supplied as an argument.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them succeed.
+
+
+
+
+ Summary description for MaxTimeAttribute.
+
+
+
+
+ Construct a MaxTimeAttribute, given a time in milliseconds.
+
+ The maximum elapsed time in milliseconds
+
+
+
+ Summary description for DirectoryAssert
+
+
+
+
+ The Equals method throws an AssertionException. This is done
+ to make sure there is no mistake by calling this function.
+
+
+
+
+
+
+ override the default ReferenceEquals to throw an AssertionException. This
+ implementation makes sure there is no mistake in calling this function
+ as part of Assert.
+
+
+
+
+
+
+ We don't actually want any instances of this object, but some people
+ like to inherit from it to add other static methods. Hence, the
+ protected constructor disallows any instances of this object.
+
+
+
+
+ Verifies that two directories are equal. Two directories are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A directory containing the value that is expected
+ A directory containing the actual value
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that two directories are equal. Two directories are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A directory containing the value that is expected
+ A directory containing the actual value
+ The message to display if directories are not equal
+
+
+
+ Verifies that two directories are equal. Two directories are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A directory containing the value that is expected
+ A directory containing the actual value
+
+
+
+ Verifies that two directories are equal. Two directories are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A directory path string containing the value that is expected
+ A directory path string containing the actual value
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that two directories are equal. Two directories are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A directory path string containing the value that is expected
+ A directory path string containing the actual value
+ The message to display if directories are not equal
+
+
+
+ Verifies that two directories are equal. Two directories are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A directory path string containing the value that is expected
+ A directory path string containing the actual value
+
+
+
+ Asserts that two directories are not equal. If they are equal
+ an is thrown.
+
+ A directory containing the value that is expected
+ A directory containing the actual value
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that two directories are not equal. If they are equal
+ an is thrown.
+
+ A directory containing the value that is expected
+ A directory containing the actual value
+ The message to display if directories are not equal
+
+
+
+ Asserts that two directories are not equal. If they are equal
+ an is thrown.
+
+ A directory containing the value that is expected
+ A directory containing the actual value
+
+
+
+ Asserts that two directories are not equal. If they are equal
+ an is thrown.
+
+ A directory path string containing the value that is expected
+ A directory path string containing the actual value
+ The message to display if directories are equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that two directories are not equal. If they are equal
+ an is thrown.
+
+ A directory path string containing the value that is expected
+ A directory path string containing the actual value
+ The message to display if directories are equal
+
+
+
+ Asserts that two directories are not equal. If they are equal
+ an is thrown.
+
+ A directory path string containing the value that is expected
+ A directory path string containing the actual value
+
+
+
+ Asserts that the directory is empty. If it is not empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that the directory is empty. If it is not empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+
+
+
+ Asserts that the directory is empty. If it is not empty
+ an is thrown.
+
+ A directory to search
+
+
+
+ Asserts that the directory is empty. If it is not empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that the directory is empty. If it is not empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+
+
+
+ Asserts that the directory is empty. If it is not empty
+ an is thrown.
+
+ A directory to search
+
+
+
+ Asserts that the directory is not empty. If it is empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that the directory is not empty. If it is empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+
+
+
+ Asserts that the directory is not empty. If it is empty
+ an is thrown.
+
+ A directory to search
+
+
+
+ Asserts that the directory is not empty. If it is empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that the directory is not empty. If it is empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+
+
+
+ Asserts that the directory is not empty. If it is empty
+ an is thrown.
+
+ A directory to search
+
+
+
+ Asserts that path contains actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that path contains actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+
+
+
+ Asserts that path contains actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+
+
+
+ Asserts that path contains actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that path contains actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+
+
+
+ Asserts that path contains actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+
+
+
+ Asserts that path does not contain actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that path does not contain actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+
+
+
+ Asserts that path does not contain actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+
+
+
+ Asserts that path does not contain actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that path does not contain actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+
+
+
+ Asserts that path does not contain actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+
+
+
+ The SpecialValue enum is used to represent TestCase arguments
+ that cannot be used as arguments to an Attribute.
+
+
+
+
+ Null represents a null value, which cannot be used as an
+ argument to an attriute under .NET 1.x
+
+
+
+
+ Summary description for FileAssert.
+
+
+
+
+ The Equals method throws an AssertionException. This is done
+ to make sure there is no mistake by calling this function.
+
+
+
+
+
+
+ override the default ReferenceEquals to throw an AssertionException. This
+ implementation makes sure there is no mistake in calling this function
+ as part of Assert.
+
+
+
+
+
+
+ We don't actually want any instances of this object, but some people
+ like to inherit from it to add other static methods. Hence, the
+ protected constructor disallows any instances of this object.
+
+
+
+
+ Verifies that two Streams are equal. Two Streams are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ The expected Stream
+ The actual Stream
+ The message to display if Streams are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that two Streams are equal. Two Streams are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ The expected Stream
+ The actual Stream
+ The message to display if objects are not equal
+
+
+
+ Verifies that two Streams are equal. Two Streams are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ The expected Stream
+ The actual Stream
+
+
+
+ Verifies that two files are equal. Two files are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A file containing the value that is expected
+ A file containing the actual value
+ The message to display if Streams are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that two files are equal. Two files are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A file containing the value that is expected
+ A file containing the actual value
+ The message to display if objects are not equal
+
+
+
+ Verifies that two files are equal. Two files are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A file containing the value that is expected
+ A file containing the actual value
+
+
+
+ Verifies that two files are equal. Two files are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ The path to a file containing the value that is expected
+ The path to a file containing the actual value
+ The message to display if Streams are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that two files are equal. Two files are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ The path to a file containing the value that is expected
+ The path to a file containing the actual value
+ The message to display if objects are not equal
+
+
+
+ Verifies that two files are equal. Two files are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ The path to a file containing the value that is expected
+ The path to a file containing the actual value
+
+
+
+ Asserts that two Streams are not equal. If they are equal
+ an is thrown.
+
+ The expected Stream
+ The actual Stream
+ The message to be displayed when the two Stream are the same.
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that two Streams are not equal. If they are equal
+ an is thrown.
+
+ The expected Stream
+ The actual Stream
+ The message to be displayed when the Streams are the same.
+
+
+
+ Asserts that two Streams are not equal. If they are equal
+ an is thrown.
+
+ The expected Stream
+ The actual Stream
+
+
+
+ Asserts that two files are not equal. If they are equal
+ an is thrown.
+
+ A file containing the value that is expected
+ A file containing the actual value
+ The message to display if Streams are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that two files are not equal. If they are equal
+ an is thrown.
+
+ A file containing the value that is expected
+ A file containing the actual value
+ The message to display if objects are not equal
+
+
+
+ Asserts that two files are not equal. If they are equal
+ an is thrown.
+
+ A file containing the value that is expected
+ A file containing the actual value
+
+
+
+ Asserts that two files are not equal. If they are equal
+ an is thrown.
+
+ The path to a file containing the value that is expected
+ The path to a file containing the actual value
+ The message to display if Streams are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that two files are not equal. If they are equal
+ an is thrown.
+
+ The path to a file containing the value that is expected
+ The path to a file containing the actual value
+ The message to display if objects are not equal
+
+
+
+ Asserts that two files are not equal. If they are equal
+ an is thrown.
+
+ The path to a file containing the value that is expected
+ The path to a file containing the actual value
+
+
+
+ Adding this attribute to a method within a
+ class makes the method callable from the NUnit test runner. There is a property
+ called Description which is optional which you can provide a more detailed test
+ description. This class cannot be inherited.
+
+
+
+ [TestFixture]
+ public class Fixture
+ {
+ [Test]
+ public void MethodToTest()
+ {}
+
+ [Test(Description = "more detailed description")]
+ publc void TestDescriptionMethod()
+ {}
+ }
+
+
+
+
+
+ Randomizer returns a set of random values in a repeatable
+ way, to allow re-running of tests if necessary.
+
+
+
+
+ Get a randomizer for a particular member, returning
+ one that has already been created if it exists.
+ This ensures that the same values are generated
+ each time the tests are reloaded.
+
+
+
+
+ Get a randomizer for a particular parameter, returning
+ one that has already been created if it exists.
+ This ensures that the same values are generated
+ each time the tests are reloaded.
+
+
+
+
+ Construct a randomizer using a random seed
+
+
+
+
+ Construct a randomizer using a specified seed
+
+
+
+
+ Return an array of random doubles between 0.0 and 1.0.
+
+
+
+
+
+
+ Return an array of random doubles with values in a specified range.
+
+
+
+
+ Return an array of random ints with values in a specified range.
+
+
+
+
+ Get a random seed for use in creating a randomizer.
+
+
+
+
+ Used to mark a field for use as a datapoint when executing a theory
+ within the same fixture that requires an argument of the field's Type.
+
+
+
+
+ Used to mark an array as containing a set of datapoints to be used
+ executing a theory within the same fixture that requires an argument
+ of the Type of the array elements.
+
+
+
+
diff --git a/lib/NHibernate12/mono/2.0/Castle.DynamicProxy.dll b/lib/NHibernate12/mono/2.0/Castle.DynamicProxy.dll
new file mode 100644
index 00000000..3feebda1
Binary files /dev/null and b/lib/NHibernate12/mono/2.0/Castle.DynamicProxy.dll differ
diff --git a/lib/NHibernate12/mono/2.0/Castle.DynamicProxy.license.txt b/lib/NHibernate12/mono/2.0/Castle.DynamicProxy.license.txt
new file mode 100644
index 00000000..b7530910
--- /dev/null
+++ b/lib/NHibernate12/mono/2.0/Castle.DynamicProxy.license.txt
@@ -0,0 +1,13 @@
+Copyright 2004-2005 Castle Project - http://www.castleproject.org/
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/lib/NHibernate12/mono/2.0/Iesi.Collections.dll b/lib/NHibernate12/mono/2.0/Iesi.Collections.dll
new file mode 100644
index 00000000..c4cc0373
Binary files /dev/null and b/lib/NHibernate12/mono/2.0/Iesi.Collections.dll differ
diff --git a/lib/NHibernate12/mono/2.0/Iesi.Collections.license.txt b/lib/NHibernate12/mono/2.0/Iesi.Collections.license.txt
new file mode 100644
index 00000000..66c4a8dc
--- /dev/null
+++ b/lib/NHibernate12/mono/2.0/Iesi.Collections.license.txt
@@ -0,0 +1,9 @@
+Copyright © 2002-2004 by Aidant Systems, Inc., and by Jason Smith.
+
+Copied from http://www.codeproject.com/csharp/sets.asp#xx703510xx that was posted by JasonSmith 12:13 2 Jan '04
+
+Feel free to use this code any way you want to. As a favor to me, you can leave the copyright in there. You never know when someone might recognize your name!
+
+If you do use the code in a commercial product, I would appreciate hearing about it. This message serves as legal notice that I won't be suing you for royalties! The code is in the public domain.
+
+On the other hand, I don't provide support. The code is actually simple enough that it shouldn't need it.
diff --git a/lib/NHibernate12/mono/2.0/NHibernate.dll b/lib/NHibernate12/mono/2.0/NHibernate.dll
new file mode 100644
index 00000000..19bc3f9e
Binary files /dev/null and b/lib/NHibernate12/mono/2.0/NHibernate.dll differ
diff --git a/lib/NHibernate12/mono/2.0/NHibernate.license.txt b/lib/NHibernate12/mono/2.0/NHibernate.license.txt
new file mode 100644
index 00000000..8a88d148
--- /dev/null
+++ b/lib/NHibernate12/mono/2.0/NHibernate.license.txt
@@ -0,0 +1,460 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/lib/NHibernate12/mono/2.0/log4net.dll b/lib/NHibernate12/mono/2.0/log4net.dll
new file mode 100644
index 00000000..ffc57e11
Binary files /dev/null and b/lib/NHibernate12/mono/2.0/log4net.dll differ
diff --git a/lib/NHibernate20/mono/2.0/Castle.Core.dll b/lib/NHibernate20/mono/2.0/Castle.Core.dll
new file mode 100644
index 00000000..2464e661
Binary files /dev/null and b/lib/NHibernate20/mono/2.0/Castle.Core.dll differ
diff --git a/lib/NHibernate20/mono/2.0/Castle.DynamicProxy.license.txt b/lib/NHibernate20/mono/2.0/Castle.DynamicProxy.license.txt
new file mode 100644
index 00000000..b7530910
--- /dev/null
+++ b/lib/NHibernate20/mono/2.0/Castle.DynamicProxy.license.txt
@@ -0,0 +1,13 @@
+Copyright 2004-2005 Castle Project - http://www.castleproject.org/
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/lib/NHibernate20/mono/2.0/Castle.DynamicProxy2.dll b/lib/NHibernate20/mono/2.0/Castle.DynamicProxy2.dll
new file mode 100644
index 00000000..83e192e9
Binary files /dev/null and b/lib/NHibernate20/mono/2.0/Castle.DynamicProxy2.dll differ
diff --git a/lib/NHibernate20/mono/2.0/Iesi.Collections.dll b/lib/NHibernate20/mono/2.0/Iesi.Collections.dll
new file mode 100644
index 00000000..107c362c
Binary files /dev/null and b/lib/NHibernate20/mono/2.0/Iesi.Collections.dll differ
diff --git a/lib/NHibernate20/mono/2.0/Iesi.Collections.license.txt b/lib/NHibernate20/mono/2.0/Iesi.Collections.license.txt
new file mode 100644
index 00000000..66c4a8dc
--- /dev/null
+++ b/lib/NHibernate20/mono/2.0/Iesi.Collections.license.txt
@@ -0,0 +1,9 @@
+Copyright © 2002-2004 by Aidant Systems, Inc., and by Jason Smith.
+
+Copied from http://www.codeproject.com/csharp/sets.asp#xx703510xx that was posted by JasonSmith 12:13 2 Jan '04
+
+Feel free to use this code any way you want to. As a favor to me, you can leave the copyright in there. You never know when someone might recognize your name!
+
+If you do use the code in a commercial product, I would appreciate hearing about it. This message serves as legal notice that I won't be suing you for royalties! The code is in the public domain.
+
+On the other hand, I don't provide support. The code is actually simple enough that it shouldn't need it.
diff --git a/lib/NHibernate20/mono/2.0/NHibernate.dll b/lib/NHibernate20/mono/2.0/NHibernate.dll
new file mode 100644
index 00000000..392852e7
Binary files /dev/null and b/lib/NHibernate20/mono/2.0/NHibernate.dll differ
diff --git a/lib/NHibernate20/mono/2.0/NHibernate.license.txt b/lib/NHibernate20/mono/2.0/NHibernate.license.txt
new file mode 100644
index 00000000..8a88d148
--- /dev/null
+++ b/lib/NHibernate20/mono/2.0/NHibernate.license.txt
@@ -0,0 +1,460 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/lib/NHibernate20/mono/2.0/log4net.dll b/lib/NHibernate20/mono/2.0/log4net.dll
new file mode 100644
index 00000000..ffc57e11
Binary files /dev/null and b/lib/NHibernate20/mono/2.0/log4net.dll differ
diff --git a/lib/NHibernate20/mono/2.0/log4net.license.txt b/lib/NHibernate20/mono/2.0/log4net.license.txt
new file mode 100644
index 00000000..29f81d81
--- /dev/null
+++ b/lib/NHibernate20/mono/2.0/log4net.license.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/lib/NHibernate21/mono/2.0/Antlr3.Runtime.dll b/lib/NHibernate21/mono/2.0/Antlr3.Runtime.dll
new file mode 100644
index 00000000..637fc3e3
Binary files /dev/null and b/lib/NHibernate21/mono/2.0/Antlr3.Runtime.dll differ
diff --git a/lib/NHibernate21/mono/2.0/Iesi.Collections.dll b/lib/NHibernate21/mono/2.0/Iesi.Collections.dll
new file mode 100644
index 00000000..b8def765
Binary files /dev/null and b/lib/NHibernate21/mono/2.0/Iesi.Collections.dll differ
diff --git a/lib/NHibernate21/mono/2.0/Iesi.Collections.license.txt b/lib/NHibernate21/mono/2.0/Iesi.Collections.license.txt
new file mode 100644
index 00000000..66c4a8dc
--- /dev/null
+++ b/lib/NHibernate21/mono/2.0/Iesi.Collections.license.txt
@@ -0,0 +1,9 @@
+Copyright © 2002-2004 by Aidant Systems, Inc., and by Jason Smith.
+
+Copied from http://www.codeproject.com/csharp/sets.asp#xx703510xx that was posted by JasonSmith 12:13 2 Jan '04
+
+Feel free to use this code any way you want to. As a favor to me, you can leave the copyright in there. You never know when someone might recognize your name!
+
+If you do use the code in a commercial product, I would appreciate hearing about it. This message serves as legal notice that I won't be suing you for royalties! The code is in the public domain.
+
+On the other hand, I don't provide support. The code is actually simple enough that it shouldn't need it.
diff --git a/lib/NHibernate21/mono/2.0/LinFu.DynamicProxy.dll b/lib/NHibernate21/mono/2.0/LinFu.DynamicProxy.dll
new file mode 100644
index 00000000..22225220
Binary files /dev/null and b/lib/NHibernate21/mono/2.0/LinFu.DynamicProxy.dll differ
diff --git a/lib/NHibernate21/mono/2.0/LinFu.License.txt b/lib/NHibernate21/mono/2.0/LinFu.License.txt
new file mode 100644
index 00000000..e4c8db14
--- /dev/null
+++ b/lib/NHibernate21/mono/2.0/LinFu.License.txt
@@ -0,0 +1,167 @@
+The LinFu Library, (c) 2007 Philip Laureano, is subject to the terms of the following license:
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/lib/NHibernate21/mono/2.0/NHibernate.DomainModel.dll b/lib/NHibernate21/mono/2.0/NHibernate.DomainModel.dll
new file mode 100644
index 00000000..567457b2
Binary files /dev/null and b/lib/NHibernate21/mono/2.0/NHibernate.DomainModel.dll differ
diff --git a/lib/NHibernate21/mono/2.0/NHibernate.DomainModel.xml b/lib/NHibernate21/mono/2.0/NHibernate.DomainModel.xml
new file mode 100644
index 00000000..2c6c6b13
--- /dev/null
+++ b/lib/NHibernate21/mono/2.0/NHibernate.DomainModel.xml
@@ -0,0 +1,1271 @@
+
+
+
+ NHibernate.DomainModel
+
+
+
+
+ Summary description for AuditComponent.
+
+
+
+
+ Summary description for BasicClass.
+
+
+
+
+
+
+
+ NHibernate knows nothing about this Property. This Property
+ is provided so the Test Fixtures can set and get the value of the
+ field _privateField to make sure that NHibernate is reading
+ and writing the field correctly.
+
+
+
+
+ Used to test how NHibernate handles mappings for type="Object"
+ and type="Any"
+
+
+ This class is used in two hbm.xml files.
+
+
+
+
+ Summary description for BasicObject.
+
+
+
+
+ Summary description for BasicSerializable.
+
+
+
+
+ Summary description for BasicTime.
+
+
+
+
+ Summary description for Child.
+
+
+
+
+ Summary description for ClassWithNullColumns.
+
+
+
+
+ Test the ability of CodeDOM bytecode provider to generate code that
+ can set a value type from a null.
+
+
+
+
+ A class that cannot be used with lazy="true" if proxy validation
+ is enabled.
+
+
+
+
+ Summary description for LLParent.
+
+
+
+
+ Summary description for LLChild.
+
+
+
+
+ Summary description for LLChild.
+
+
+
+
+ Summary description for Node.
+
+
+
+
+ This is the only way to hook nodes together right now.
+
+ A Node this Node can go to.
+
+
+
+ The Nodes that lead into this Node.
+
+
+ I would not recommend that mapping of set be made public because
+ under the scene they rely on Dictionaries, but this is in here for
+ testing.
+
+ Any modifications to the "inverse" side should not be persisted - unless
+ the modifications are also made to the non-inverse side.
+
+
+
+
+ The Nodes this Node can go To.
+
+
+ I would not recommend that mapping of set be made public because
+ under the scene they rely on Dictionaries, but this is in here for
+ testing. The DestinationNodes is the Property that controls which
+ modifications get persisted.
+
+
+
+
+ A nullable type that wraps an value.
+
+
+
+
+ A NHibernate for a .
+
+
+
+
+ Abstract type used for implementing NHibernate s for
+ the Nullables library.
+
+
+
+
+ Converts a value of 0 to a DbNull
+
+
+
+
+ Class mapped with optimistic-lock="all"
+
+
+
+
+ Summary description for Parent.
+
+
+
+
+ Summary description for ParentComparer.
+
+
+
+
+ Summary description for SexType.
+
+
+
+
+ Summary description for SimpleComponent.
+
+
+
+
+ Summary description for Team.
+
+
+
+
+ Summary description for UnsavedType.
+
+
+
+
+ POCO for A
+
+
+
+
+ Holder for id
+
+
+
+
+ Holder for name
+
+
+
+
+ Holder for anotherName
+
+
+
+
+ Holder for forward
+
+
+
+
+ Default constructor for class A
+
+
+
+
+ Constructor for class A
+
+ Initial name value
+
+
+
+ Get/set for id
+
+
+
+
+ Get/set for name
+
+
+
+
+ Get/set for anotherName
+
+
+
+
+ POJO for Foo
+
+
+ This class is autogenerated
+
+
+
+
+ Default constructor for class Foo
+
+
+
+
+ Get/set for key
+
+
+
+
+ Get/set for long
+
+
+
+
+ Get/set for integer
+
+
+
+
+ Get/set for float
+
+
+
+
+ Get/set for x
+
+
+
+
+ Get/set for date
+
+
+
+
+ Get/set for timestamp
+
+
+
+
+ Get/set for boolean
+
+
+
+
+ Get/set for bool
+
+
+
+
+ Get/set for null
+
+
+
+
+ Get/set for short
+
+
+
+
+ Get/set for char
+
+
+
+
+ Get/set for zero
+
+
+
+
+ Get/set for int
+
+
+
+
+ Get/set for string
+
+
+
+
+ Get/set for byte
+
+
+
+
+ Get/set for yesno
+
+
+
+
+ Get/set for status
+
+
+
+
+ Get/set for locale
+
+
+
+
+ Get/set for formula
+
+
+
+
+ Get/set for custom
+
+
+
+
+ Get/set for version
+
+
+
+
+ Get/set for foo
+
+
+
+
+ Get/set for dependent
+
+
+
+
+ Gets or sets the component
+
+
+
+
+ Gets or sets the _time
+
+
+
+
+ Gets or sets the _abstract
+
+
+
+
+ Summary description for Assignable.
+
+
+
+
+ POJO for B
+
+
+ This class is autogenerated
+
+
+
+
+ Holder for count
+
+
+
+
+ Holder for map
+
+
+
+
+ Default constructor for class B
+
+
+
+
+ Constructor for class B
+
+ Initial name value
+ Initial count value
+ Initial map value
+
+
+
+ Minimal constructor for class B
+
+ Initial map value
+
+
+
+ Get/set for count
+
+
+
+
+ Get/set for map
+
+
+
+
+ Gets or sets the X
+
+
+
+
+ Gets or sets the _barString
+
+
+
+
+ Gets or sets the _barComponent
+
+
+
+
+ Gets or sets the _baz
+
+
+
+
+ Gets or sets the _name
+
+
+
+
+ Gets or sets the _object
+
+
+
+
+ Summary description for BasicNameable.
+
+
+
+
+ Summary description for INameable.
+
+
+
+
+ Default constructor for class Baz
+
+
+
+
+ Gets or sets the _collectionComponent
+
+
+
+
+ Get/set for Code
+
+
+
+
+ Get/set for count
+
+
+
+
+ Get/set for name
+
+
+
+
+ Get/set for Foo
+
+
+
+
+ Get/set for stringList
+
+
+
+
+ Get/set for fees
+
+
+
+
+ Get/set for customs
+
+
+
+
+ Get/set for topComponents
+
+
+
+
+ Get/set for fooToGlarch
+
+
+
+
+ Get/set for fooComponentToFoo
+
+
+
+
+ Get/set for glarchToFoo
+
+
+
+
+ Get/set for stringDateMap
+
+
+
+
+ Get/set for topGlarchez
+
+
+
+
+ Get/set for cachedMap
+
+
+
+
+ Get/set for stringGlarchMap
+
+
+
+
+ Get/set for anyToAny
+
+
+
+
+ Get/set for manyToAny
+
+
+
+
+ Gets or sets the intArray
+
+
+
+
+ Gets or sets the _components
+
+
+
+
+ Gets or sets the timeArray
+
+
+
+
+ Gets or sets the stringArray
+
+
+
+
+ Gets or sets the fooArray
+
+
+
+
+ Get/set for fooSet
+
+
+
+
+ Get/set for stringSet
+
+
+
+
+ Get/set for topFoos
+
+
+
+
+ Get/set for cascadingBars
+
+
+
+
+ Get/set for cached
+
+
+
+
+ Get/set for sortablez
+
+
+
+
+ Get/set for bag
+
+
+
+
+ Get/set for fooBag
+
+
+
+
+ Get/set for bazez
+
+
+
+
+ Get/set for idFooBag
+
+
+
+
+ Get/set for byteBag
+
+
+
+
+ Get/set for parts
+
+
+
+
+ Summary description for Blobber.
+
+
+
+
+ POJO for C1
+
+
+ This class is autogenerated
+
+
+
+
+ Holder for address
+
+
+
+
+ Holder for d
+
+
+
+
+ Holder for c2
+
+
+
+
+ Holder for c2s
+
+
+
+
+ Default constructor for class C1
+
+
+
+
+ Constructor for class C1
+
+ Initial name value
+ Initial count value
+ Initial map value
+ Initial address value
+ Initial d value
+
+
+
+ Minimal constructor for class C1
+
+ Initial map value
+
+
+
+ Get/set for address
+
+
+
+
+ Get/set for d
+
+
+
+
+ POJO for C2
+
+
+ This class is autogenerated
+
+
+
+
+ Holder for address
+
+
+
+
+ Holder for c1
+
+
+
+
+ Holder for c1s
+
+
+
+
+ Default constructor for class C2
+
+
+
+
+ Constructor for class C2
+
+ Initial name value
+ Initial count value
+ Initial map value
+ Initial address value
+
+
+
+ Minimal constructor for class C2
+
+ Initial map value
+
+
+
+ Get/set for address
+
+
+
+
+ Summary description for Category.
+
+
+
+
+ Summary description for Child.
+
+
+
+
+ Summary description for Circular.
+
+
+
+
+ Summary description for Component.
+
+
+
+
+ Holds the _foos
+
+
+
+
+ Holds the _str
+
+
+
+
+ Holds the _floats
+
+
+
+
+ Gets or sets the _foos
+
+
+
+
+ Gets or sets the _str
+
+
+
+
+ Gets or sets the _floats
+
+
+
+
+ Summary description for Componentizable.
+
+
+
+
+ Default constructor for class CompositeElement
+
+
+
+
+ Constructor for class CompositeElement
+
+ Initial foo value
+ Initial bar value
+
+
+
+ Get/set for foo
+
+
+
+
+ Get/set for bar
+
+
+
+
+ Summary description for Contained.
+
+
+
+
+ Summary description for Custom.
+
+
+
+
+ Summary description for CustomPersister.
+
+
+
+
+ POCO for D
+
+
+
+
+ Default constructor for class D
+
+
+
+
+ Constructor for class D
+
+ Initial id value
+ Initial amount value
+
+
+
+ Minimal constructor for class D
+
+ Initial id value
+
+
+
+ Get/set for id
+
+
+
+
+ Get/set for Amount
+
+
+
+
+ Summary description for Detail.
+
+
+
+
+ Summary description for Down.
+
+
+
+
+ Summary description for Up.
+
+
+
+
+
+
+
+
+ This is important, otherwise the Identifier and Instance don't match inside SessionImpl
+
+
+
+ POCO for E
+
+
+
+
+ Get/set for id
+
+
+
+
+ Get/set for Amount
+
+
+
+
+ Summary description for Eye.
+
+
+
+
+ POJO for FooComponent
+
+
+ This class is autogenerated
+
+
+
+
+ Holder for name
+
+
+
+
+ Holder for count
+
+
+
+
+ Default constructor for class FooComponent
+
+
+
+
+ Constructor for class FooComponent
+
+ Initial name value
+ Initial count value
+
+
+
+ Get/set for name
+
+
+
+
+ Get/set for count
+
+
+
+
+ Summary description for Fumm.
+
+
+
+
+ Gets or sets the _next
+
+
+
+
+ Gets or sets the _order
+
+
+
+
+ Gets or sets the _strings
+
+
+
+
+ Gets or sets the _stringSets
+
+
+
+
+ Gets or sets the _fooComponents
+
+
+
+
+ Gets or sets the _proxyArray
+
+
+
+
+ Gets or sets the _proxySet
+
+
+
+
+ Gets or sets the _immutable
+
+
+
+
+ Gets or sets the _derivedVersion
+
+
+
+
+ Gets or sets the _any
+
+
+
+
+ Gets or sets the _multiple
+
+
+
+
+ Summary description for Holder.
+
+
+
+
+ Summary description for Immutable.
+
+
+
+
+ Summary description for Inner.
+
+
+
+
+ Summary description for InnerKey.
+
+
+
+
+ Summary description for Jay.
+
+
+
+
+ Summary description for Location.
+
+
+
+
+ Summary description for M.
+
+
+
+
+ Summary description for Many.
+
+
+
+
+ Summary description for Master.
+
+
+
+
+ Summary description for Middle.
+
+
+
+
+ Summary description for MiddleKey.
+
+
+
+
+ Summary description for MoreStuff.
+
+
+
+
+ Summary description for N.
+
+
+
+
+ Holds the _nested
+
+
+
+
+ Gets or sets the _nested
+
+
+
+
+ Summary description for One.
+
+
+
+
+ Summary description for Outer.
+
+
+
+
+ Summary description for OuterKey.
+
+
+
+
+ Summary description for Parent.
+
+
+
+
+ Gets or sets the _foo
+
+
+
+
+ Gets or sets the _created
+
+
+
+
+ Gets or sets the _deleted
+
+
+
+
+ Gets or sets the _loaded
+
+
+
+
+ Gets or sets the _stored
+
+
+
+
+ Gets or sets the _key
+
+
+
+
+ Gets or sets the _stuff
+
+
+
+
+ Gets or sets the _fums (<set>)
+
+
+
+
+ Gets or sets the _moreFums
+
+
+
+
+ Gets or sets the _childKey
+
+
+
+
+ Summary description for Result.
+
+
+
+
+ Summary description for Several.
+
+
+
+
+ Summary description for Single.
+
+
+
+
+ POJO for Sortable
+
+
+ This class is autogenerated
+
+
+
+
+ Holder for id
+
+
+
+
+ Holder for name
+
+
+
+
+ Default constructor for class Sortable
+
+
+
+
+ Constructor for class Sortable
+
+ Initial name value
+
+
+
+ Get/set for id
+
+
+
+
+ Get/set for name
+
+
+
+
+ Summary description for Stuff.
+
+
+
+
+ Summary description for SubComponent.
+
+
+
+
+ Summary description for SubDetail.
+
+
+
+
+ Summary description for Vetoer.
+
+
+
+
+ Summary description for W.
+
+
+
+
+ Summary description for X.
+
+
+
+
+ Summary description for Y.
+
+
+
+
+ Summary description for Z.
+
+
+
+
diff --git a/lib/NHibernate21/mono/2.0/NHibernate.Test.dll b/lib/NHibernate21/mono/2.0/NHibernate.Test.dll
new file mode 100644
index 00000000..6e54aa24
Binary files /dev/null and b/lib/NHibernate21/mono/2.0/NHibernate.Test.dll differ
diff --git a/lib/NHibernate21/mono/2.0/NHibernate.dll b/lib/NHibernate21/mono/2.0/NHibernate.dll
new file mode 100644
index 00000000..306a4593
Binary files /dev/null and b/lib/NHibernate21/mono/2.0/NHibernate.dll differ
diff --git a/lib/NHibernate21/mono/2.0/NHibernate.license.txt b/lib/NHibernate21/mono/2.0/NHibernate.license.txt
new file mode 100644
index 00000000..8a88d148
--- /dev/null
+++ b/lib/NHibernate21/mono/2.0/NHibernate.license.txt
@@ -0,0 +1,460 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/lib/NHibernate21/mono/2.0/log4net.dll b/lib/NHibernate21/mono/2.0/log4net.dll
new file mode 100644
index 00000000..ffc57e11
Binary files /dev/null and b/lib/NHibernate21/mono/2.0/log4net.dll differ
diff --git a/lib/NHibernate21/mono/2.0/log4net.license.txt b/lib/NHibernate21/mono/2.0/log4net.license.txt
new file mode 100644
index 00000000..29f81d81
--- /dev/null
+++ b/lib/NHibernate21/mono/2.0/log4net.license.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/src/Spring/Spring.Core/Core/IO/UrlResource.cs b/src/Spring/Spring.Core/Core/IO/UrlResource.cs
index 92facea9..b59e1560 100644
--- a/src/Spring/Spring.Core/Core/IO/UrlResource.cs
+++ b/src/Spring/Spring.Core/Core/IO/UrlResource.cs
@@ -91,6 +91,11 @@ namespace Spring.Core.IO
///
public UrlResource(string resourceName) : base(resourceName)
{
+ if (resourceName.StartsWith("file:///"))
+ {
+ resourceName = resourceName.Substring("file:///".Length);
+ }
+
this._uri = new Uri(resourceName);
_rootLocation = _uri.Host;
if (!_uri.IsDefaultPort)
diff --git a/src/Spring/Spring.Core/Spring.Core.build b/src/Spring/Spring.Core/Spring.Core.build
index 4b2ccd41..0696bc1a 100644
--- a/src/Spring/Spring.Core/Spring.Core.build
+++ b/src/Spring/Spring.Core/Spring.Core.build
@@ -7,7 +7,7 @@
* current.build.defines.csc - framework-specific build defines for C# compiler
-->
-
+
+ /// Use this sort method instead of to overcome
+ /// bugs in Mono.
+ ///
+ public static void Sort(Array array, IComparer comparer)
+ {
+ if (SystemUtils.MonoRuntime)
+ {
+ ArrayList list = new ArrayList(array);
+ list.Sort(comparer);
+ list.ToArray().CopyTo(array, list.Count);
+ return;
+ }
+ Array.Sort(array, comparer);
+ }
///
/// Checks if the given array or collection is null or has no elements.
///
diff --git a/src/Spring/Spring.Core/Util/ConfigXmlDocument.cs b/src/Spring/Spring.Core/Util/ConfigXmlDocument.cs
index 8fa527c4..2aa94c8d 100644
--- a/src/Spring/Spring.Core/Util/ConfigXmlDocument.cs
+++ b/src/Spring/Spring.Core/Util/ConfigXmlDocument.cs
@@ -20,7 +20,9 @@
#region Imports
+using System;
using System.IO;
+using System.Net;
using System.Xml;
#endregion
@@ -122,7 +124,46 @@ namespace Spring.Util
_currentTextPositionHolder.CurrentResourceName = null;
}
}
-
+
+ ///
+ /// Load the document from the given .
+ ///
+ ///The XML source
+ public override void Load(string filePath)
+ {
+ try
+ {
+ Uri baseUri = new Uri(Directory.GetCurrentDirectory());
+ Stream istm = (Stream) new XmlUrlResolver().GetEntity(new Uri(baseUri, filePath), null, typeof (Stream));
+ base.Load(istm);
+ }
+ finally
+ {
+ _currentTextPositionHolder.CurrentResourceName = null;
+ }
+ }
+
+ ///
+ /// Load the document from the given .
+ /// Child nodes will store as their property.
+ ///
+ ///the name of the resource
+ ///The XML source
+ public void Load(string resourceName, string filePath)
+ {
+ try
+ {
+ _currentTextPositionHolder.CurrentResourceName = resourceName;
+ Uri baseUri = new Uri(Directory.GetCurrentDirectory());
+ Stream istm = (Stream) new XmlUrlResolver().GetEntity(new Uri(baseUri, filePath), null, typeof (Stream));
+ base.Load(istm);
+ }
+ finally
+ {
+ _currentTextPositionHolder.CurrentResourceName = null;
+ }
+ }
+
///
/// Load the document from the given .
/// Child nodes will store as their property.
@@ -243,6 +284,5 @@ namespace Spring.Util
_currentTextPositionHolder.CurrentXmlLineInfo = null;
}
}
-
}
}
diff --git a/src/Spring/Spring.Core/Util/ConfigurationUtils.cs b/src/Spring/Spring.Core/Util/ConfigurationUtils.cs
index 436357a0..6db7dc18 100644
--- a/src/Spring/Spring.Core/Util/ConfigurationUtils.cs
+++ b/src/Spring/Spring.Core/Util/ConfigurationUtils.cs
@@ -39,7 +39,7 @@ namespace Spring.Util
/// Avoid BeforeFieldInit pitfall
///
static ConfigurationUtils()
- {}
+ { }
///
/// Parses the configuration section.
@@ -62,7 +62,18 @@ namespace Spring.Util
#if !NET_2_0
return ConfigurationSettings.GetConfig(sectionName.TrimEnd('/'));
#else
- return ConfigurationManager.GetSection(sectionName.TrimEnd('/'));
+ try
+ {
+ return ConfigurationManager.GetSection(sectionName.TrimEnd('/'));
+ }
+ catch (ConfigurationException)
+ {
+ throw;
+ }
+ catch (Exception ex)
+ {
+ throw ConfigurationUtils.CreateConfigurationException(string.Format("Error reading section {0}", sectionName), ex);
+ }
#endif
}
@@ -248,6 +259,11 @@ namespace Spring.Util
public static System.Configuration.Internal.IInternalConfigSystem SetConfigurationSystem(System.Configuration.Internal.IInternalConfigSystem configSystem, bool enforce)
{
FieldInfo s_configSystem = typeof(ConfigurationManager).GetField("s_configSystem", BindingFlags.Static | BindingFlags.NonPublic);
+ // for MONO
+ if (s_configSystem == null)
+ {
+ s_configSystem = typeof(ConfigurationManager).GetField("configSystem", BindingFlags.Static | BindingFlags.NonPublic);
+ }
System.Configuration.Internal.IInternalConfigSystem innerConfigSystem = (System.Configuration.Internal.IInternalConfigSystem)s_configSystem.GetValue(null);
if (configSystem is IChainableConfigSystem)
{
@@ -256,7 +272,20 @@ namespace Spring.Util
try
{
- setConfigurationSystem(configSystem, true);
+ MethodInfo mi = typeof(ConfigurationManager).GetMethod("SetConfigurationSystem", BindingFlags.Static | BindingFlags.NonPublic);
+ if (mi == null)
+ {
+ mi = typeof(ConfigurationManager).GetMethod("ChangeConfigurationSystem", BindingFlags.Static | BindingFlags.NonPublic);
+ mi.Invoke(null, new object[] { configSystem });
+ }
+ else
+ {
+ if (enforce)
+ {
+ ResetConfigurationSystem();
+ }
+ mi.Invoke(null, new object[] { configSystem, true });
+ }
}
catch (InvalidOperationException)
{
@@ -270,16 +299,42 @@ namespace Spring.Util
return innerConfigSystem;
}
- private static T CreateDelegate(MethodInfo method)
+ ///
+ /// Resets the global configuration system instance. Use for unit testing only!
+ ///
+ public static void ResetConfigurationSystem()
{
- return (T)(object)Delegate.CreateDelegate(typeof(T), method);
+#if NET_2_0
+ if (SystemUtils.MonoRuntime)
+ {
+ return;
+ }
+ FieldInfo initStateRef = typeof(ConfigurationManager).GetField("s_initState", BindingFlags.NonPublic | BindingFlags.Static);
+ object notStarted = Activator.CreateInstance(initStateRef.FieldType);
+ initStateRef.SetValue(null, notStarted);
+#endif
+#if NET_1_1
+ FieldInfo initStateRef = typeof(ConfigurationSettings).GetField("_initState",BindingFlags.NonPublic|BindingFlags.Static);
+ object notStarted = Activator.CreateInstance(initStateRef.FieldType);
+ initStateRef.SetValue(null,notStarted);
+#endif
+#if NET_1_0
+ FieldInfo initStateRef = typeof(ConfigurationSettings).GetField("_configurationInitialized",BindingFlags.NonPublic|BindingFlags.Static);
+ FieldInfo configSystemRef = typeof(ConfigurationSettings).GetField("_configSystem",BindingFlags.NonPublic|BindingFlags.Static);
+ initStateRef.SetValue(null,false);
+ configSystemRef.SetValue(null,null);
+#endif
}
-
- private delegate void SetConfigurationSystemHandler(System.Configuration.Internal.IInternalConfigSystem configSystem, bool setComplete);
-
- private static SetConfigurationSystemHandler setConfigurationSystem =
- CreateDelegate(typeof(ConfigurationManager).GetMethod("SetConfigurationSystem"
- , BindingFlags.Static | BindingFlags.NonPublic));
+ // private static T CreateDelegate(MethodInfo method)
+ // {
+ // return (T)(object)Delegate.CreateDelegate(typeof(T), method);
+ // }
+ //
+ // private delegate void SetConfigurationSystemHandler(System.Configuration.Internal.IInternalConfigSystem configSystem, bool setComplete);
+ //
+ // private static SetConfigurationSystemHandler setConfigurationSystem =
+ // CreateDelegate(typeof(ConfigurationManager).GetMethod("SetConfigurationSystem"
+ // , BindingFlags.Static | BindingFlags.NonPublic));
#endif
}
diff --git a/src/Spring/Spring.Core/Util/NumberUtils.cs b/src/Spring/Spring.Core/Util/NumberUtils.cs
index c52a0870..d7994590 100644
--- a/src/Spring/Spring.Core/Util/NumberUtils.cs
+++ b/src/Spring/Spring.Core/Util/NumberUtils.cs
@@ -298,13 +298,19 @@ namespace Spring.Util
else if (n is Byte)
return (Byte)m | (Byte)n;
#if NET_2_0
- else if (n is SByte)
- return ((SByte) m | (SByte) n);
-#endif
- else
+ else if (n is SByte)
{
- throw new ArgumentException(string.Format("'{0}' and/or '{1}' are not one of the supported integral types.", m, n));
+ if (SystemUtils.MonoRuntime)
+ {
+ SByte x = (sbyte) n;
+ SByte y = (sbyte) m;
+ int result = (int) x | (int) y;
+ return SByte.Parse(result.ToString());
+ }
+ return (SByte) ((SByte) m | (SByte) n);
}
+#endif
+ throw new ArgumentException(string.Format("'{0}' and/or '{1}' are not one of the supported integral types.", m, n));
}
///
diff --git a/src/Spring/Spring.Core/Util/ReflectionUtils.cs b/src/Spring/Spring.Core/Util/ReflectionUtils.cs
index 46c791ca..e73d1997 100644
--- a/src/Spring/Spring.Core/Util/ReflectionUtils.cs
+++ b/src/Spring/Spring.Core/Util/ReflectionUtils.cs
@@ -1170,6 +1170,10 @@ namespace Spring.Util
public static Exception UnwrapTargetInvocationException(TargetInvocationException ex)
{
#if NET_2_0
+ if (SystemUtils.MonoRuntime)
+ {
+ return ex.InnerException;
+ }
Exception_InternalPreserveStackTrace.Invoke(ex.InnerException, new Object[] { });
#else
Exception_RemoteStackTraceString.SetValue(ex.InnerException, ex.InnerException.StackTrace + Environment.NewLine);
diff --git a/src/Spring/Spring.Core/Util/SystemUtils.cs b/src/Spring/Spring.Core/Util/SystemUtils.cs
index 7546f0f8..5061160b 100644
--- a/src/Spring/Spring.Core/Util/SystemUtils.cs
+++ b/src/Spring/Spring.Core/Util/SystemUtils.cs
@@ -1,5 +1,5 @@
-#region License
-
+#region License
+
/*
* Copyright 2002-2004 the original author or authors.
*
@@ -14,101 +14,107 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- */
-
-#endregion
-
-#region Imports
-
-using System;
+ */
+
+#endregion
+
+#region Imports
+
+using System;
using System.Reflection;
-using System.Threading;
-
-#endregion
-
-namespace Spring.Util
-{
- ///
- /// Utility class containing miscellaneous system-level functionality.
- ///
- /// Aleksandar Seovic
- public sealed class SystemUtils
- {
- private static bool assemblyResolverRegistered = false;
- private static object assemblyResolverLock = new object();
-
- private static readonly bool isMono = Type.GetType("Mono.Runtime") == null ? false : true;
-
- ///
- /// Registers assembly resolver that iterates over the
- /// assemblies loaded into the current
- /// in order to find an assembly that cannot be resolved.
- ///
- ///
- /// This method has to be called if you need to serialize dynamically
- /// generated types in transient assemblies, such as Spring AOP proxies,
- /// because standard .NET serialization engine always tries to load
- /// assembly from the disk.
- ///
- public static void RegisterLoadedAssemblyResolver()
- {
- if (!assemblyResolverRegistered)
- {
- lock(assemblyResolverLock)
- {
- AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(LoadedAssemblyResolver);
- assemblyResolverRegistered = true;
- }
- }
- }
-
- private static Assembly LoadedAssemblyResolver(object sender, ResolveEventArgs args)
- {
- Assembly[] loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
- foreach (Assembly assembly in loadedAssemblies)
- {
- if (assembly.FullName == args.Name)
- {
- return assembly;
- }
- }
- return null;
- }
-
-
- ///
- /// Returns true if running on Mono
- ///
- /// Tests for the presence of the type Mono.Runtime
- public static bool MonoRuntime
- {
- get { return isMono; }
- }
-
- ///
- /// Gets the thread id for the current thread. Use thread name is available,
- /// otherwise use CurrentThread.GetHashCode() for .NET 1.0/1.1 and
- /// CurrentThread.ManagedThreadId otherwise.
- ///
- /// The thread id.
- public static string ThreadId
- {
- get
- {
- string name = Thread.CurrentThread.Name;
- if (StringUtils.HasText(name))
- {
- return name;
- }
- else
- {
+using System.Threading;
+
+#endregion
+
+namespace Spring.Util
+{
+ ///
+ /// Utility class containing miscellaneous system-level functionality.
+ ///
+ /// Aleksandar Seovic
+ public sealed class SystemUtils
+ {
+ private static bool assemblyResolverRegistered = false;
+ private static readonly object assemblyResolverLock;
+
+ private static readonly bool isMono;
+
+ static SystemUtils()
+ {
+ isMono = Type.GetType("Mono.Runtime") == null ? false : true;
+ assemblyResolverLock = new object();
+ }
+
+ ///
+ /// Registers assembly resolver that iterates over the
+ /// assemblies loaded into the current
+ /// in order to find an assembly that cannot be resolved.
+ ///
+ ///
+ /// This method has to be called if you need to serialize dynamically
+ /// generated types in transient assemblies, such as Spring AOP proxies,
+ /// because standard .NET serialization engine always tries to load
+ /// assembly from the disk.
+ ///
+ public static void RegisterLoadedAssemblyResolver()
+ {
+ if (!assemblyResolverRegistered)
+ {
+ lock (assemblyResolverLock)
+ {
+ AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(LoadedAssemblyResolver);
+ assemblyResolverRegistered = true;
+ }
+ }
+ }
+
+ private static Assembly LoadedAssemblyResolver(object sender, ResolveEventArgs args)
+ {
+ Assembly[] loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
+ foreach (Assembly assembly in loadedAssemblies)
+ {
+ if (assembly.FullName == args.Name)
+ {
+ return assembly;
+ }
+ }
+ return null;
+ }
+
+
+ ///
+ /// Returns true if running on Mono
+ ///
+ /// Tests for the presence of the type Mono.Runtime
+ public static bool MonoRuntime
+ {
+ get { return isMono; }
+ }
+
+ ///
+ /// Gets the thread id for the current thread. Use thread name is available,
+ /// otherwise use CurrentThread.GetHashCode() for .NET 1.0/1.1 and
+ /// CurrentThread.ManagedThreadId otherwise.
+ ///
+ /// The thread id.
+ public static string ThreadId
+ {
+ get
+ {
+ string name = Thread.CurrentThread.Name;
+ if (StringUtils.HasText(name))
+ {
+ return name;
+ }
+ else
+ {
#if NET_1_0 || NET_1_1
return Thread.CurrentThread.GetHashCode().ToString();
-#else
- return Thread.CurrentThread.ManagedThreadId.ToString();
-#endif
- }
- }
- }
- }
+#else
+ return Thread.CurrentThread.ManagedThreadId.ToString();
+#endif
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/test/Spring/Spring.Core.Tests/Context/Support/AbstractApplicationContextTests.cs b/test/Spring/Spring.Core.Tests/Context/Support/AbstractApplicationContextTests.cs
index 3aaca033..add782a0 100644
--- a/test/Spring/Spring.Core.Tests/Context/Support/AbstractApplicationContextTests.cs
+++ b/test/Spring/Spring.Core.Tests/Context/Support/AbstractApplicationContextTests.cs
@@ -356,19 +356,26 @@ namespace Spring.Context.Support
}
[Test]
- [ExpectedException(typeof(CannotLoadObjectTypeException))]
public void ThrowsCannotLoadObjectTypeExceptionOnInvalidTypename()
{
+ try
+ {
MockApplicationContext myContext = new MockApplicationContext("myContext");
DefaultListableObjectFactory objectFactory = (DefaultListableObjectFactory)myContext.ObjectFactory;
XmlObjectDefinitionReader reader = new XmlObjectDefinitionReader(objectFactory);
reader.LoadObjectDefinitions(new StringResource(
- @"
+ @"
"));
myContext.Refresh();
+ }
+ catch (Exception e)
+ {
+// Console.WriteLine(e);
+ Assert.IsInstanceOf(typeof(CannotLoadObjectTypeException), e);
+ }
}
}
}
\ No newline at end of file
diff --git a/test/Spring/Spring.Core.Tests/Context/Support/ContextRegistryTests.cs b/test/Spring/Spring.Core.Tests/Context/Support/ContextRegistryTests.cs
index cdf29c65..6c60b05e 100644
--- a/test/Spring/Spring.Core.Tests/Context/Support/ContextRegistryTests.cs
+++ b/test/Spring/Spring.Core.Tests/Context/Support/ContextRegistryTests.cs
@@ -31,6 +31,7 @@ using Spring.Objects;
using Spring.Proxy;
using Spring.Objects.Factory.Support;
using Spring.Reflection.Dynamic;
+using Spring.Util;
#endregion
@@ -53,6 +54,10 @@ namespace Spring.Context.Support
private static void ResetConfigurationSystem()
{
#if NET_2_0
+ if (SystemUtils.MonoRuntime)
+ {
+ return;
+ }
FieldInfo initStateRef = typeof(ConfigurationManager).GetField("s_initState",BindingFlags.NonPublic|BindingFlags.Static);
object notStarted = Activator.CreateInstance(initStateRef.FieldType);
initStateRef.SetValue(null,notStarted);
diff --git a/test/Spring/Spring.Core.Tests/Context/Support/ResourceSetMessageSourceTests.cs b/test/Spring/Spring.Core.Tests/Context/Support/ResourceSetMessageSourceTests.cs
index bad482b7..6cd7930f 100644
--- a/test/Spring/Spring.Core.Tests/Context/Support/ResourceSetMessageSourceTests.cs
+++ b/test/Spring/Spring.Core.Tests/Context/Support/ResourceSetMessageSourceTests.cs
@@ -32,6 +32,7 @@ using System.Text;
using NUnit.Framework;
using Spring.Globalization;
using Spring.Objects;
+using Spring.Util;
#endregion
@@ -103,27 +104,27 @@ namespace Spring.Context.Support
// Localizaiton fallbacks
- GetMessageLocalizaitonFallbacks(ac);
+ GetMessageLocalizationFallbacks(ac);
// MessageSourceAccessor functionality
MessageSourceAccessor accessor = new MessageSourceAccessor(ac);
Assert.AreEqual("message3", accessor.GetMessage("code3", CultureInfo.CurrentUICulture, (object[])null));
// IMessageSourceResolveable
- Assert.AreEqual("message3", ac.GetMessage("code3", CultureInfo.CurrentUICulture, (object[]) null));
+ Assert.AreEqual("message3", ac.GetMessage("code3", CultureInfo.CurrentUICulture, (object[])null));
IMessageSourceResolvable resolvable = new DefaultMessageSourceResolvable("code3");
-
+
Assert.AreEqual("message3", ac.GetMessage(resolvable, CultureInfo.CurrentUICulture));
- resolvable = new DefaultMessageSourceResolvable(new string[] {"code4", "code3"});
+ resolvable = new DefaultMessageSourceResolvable(new string[] { "code4", "code3" });
Assert.AreEqual("message3", ac.GetMessage(resolvable, CultureInfo.CurrentUICulture));
Assert.AreEqual("message3", ac.GetMessage("code3", CultureInfo.CurrentUICulture, (object[])null));
resolvable = new DefaultMessageSourceResolvable(new string[] { "code4", "code3" });
Assert.AreEqual("message3", ac.GetMessage(resolvable, CultureInfo.CurrentUICulture));
- object[] arguments = new object[] { "Hello", new DefaultMessageSourceResolvable(new string[]{"code1"}) };
+ object[] arguments = new object[] { "Hello", new DefaultMessageSourceResolvable(new string[] { "code1" }) };
Assert.AreEqual("Hello, message1", ac.GetMessage("hello", CultureInfo.CurrentUICulture, arguments));
-
+
// test default message without and with args
Assert.AreEqual("default", ac.GetMessage(null, "default", CultureInfo.CurrentUICulture, null));
@@ -132,7 +133,7 @@ namespace Spring.Context.Support
/* not supported
Assert.AreEqual("{0}, default", ac.GetMessage(null, "{0}, default", CultureInfo.CurrentUICulture, null));
*/
-
+
Assert.AreEqual("Hello, default", ac.GetMessage(null, "{0}, default", CultureInfo.CurrentUICulture, arguments));
// test resolvable with default message, without and with args
@@ -151,7 +152,7 @@ namespace Spring.Context.Support
// test message args
- Assert.AreEqual("Arg1, Arg2", ac.GetMessage("hello", CultureInfo.CurrentUICulture, new object[]{"Arg1", "Arg2"}));
+ Assert.AreEqual("Arg1, Arg2", ac.GetMessage("hello", CultureInfo.CurrentUICulture, new object[] { "Arg1", "Arg2" }));
/* not supported
Assert.AreEqual("{0}, {1}", ac.GetMessage("hello", CultureInfo.CurrentUICulture, null));
@@ -225,7 +226,7 @@ namespace Spring.Context.Support
Assert.AreEqual("ResourceSetMessageSource with ResourceManagers of base names = [Spring.Resources.Spring.Context.Tests]",
messageSource.ToString(), "ToString not as expected");
}
-#if !MONO
+
///
/// Happy day scenario where the requested message key is found and substitutions are made.
///
@@ -233,36 +234,50 @@ namespace Spring.Context.Support
public void ResourceSetMessageSourceGetMessage()
{
messageSource.ResourceManagers = resourceManagerList;
- GetMessageLocalizaitonFallbacks(messageSource);
+ GetMessageLocalizationFallbacks(messageSource);
}
-#endif
- private void GetMessageLocalizaitonFallbacks(IMessageSource msgSource)
+
+ private void GetMessageLocalizationFallbacks(IMessageSource msgSource)
{
- Assert.AreEqual("This is Spring.NET",
+ Assert.AreEqual("Dies ist Spring.NET",
msgSource.GetMessage("MyMessage", new object[] { "Spring", ".NET" }), "message not as expected");
Assert.AreEqual("Isso e Spring.NET",
msgSource.GetMessage("MyMessage", new CultureInfo("pt-BR"), new object[] { "Spring", ".NET" }), "message not as expected");
- Assert.AreEqual("Visual Studio loves Spring.NET",
+ Assert.AreEqual("Visual Studio liebt Spring.NET",
msgSource.GetMessage("MyNewMessage", new object[] { "Spring", ".NET" }), "message not as expected");
// test localization fallbacks
Assert.AreEqual("Visual Studio loves Spring.NET",
msgSource.GetMessage("MyNewMessage", new CultureInfo("pt-BR"), new object[] { "Spring", ".NET" }), "message not as expected");
- Assert.AreEqual("Ovo je Spring.NET",
- msgSource.GetMessage("MyMessage", new CultureInfo(CultureInfoUtils.SerbianLatinCultureName), new object[] { "Spring", ".NET" }), "message not as expected");
+ Assert.AreEqual("Des is Spring.NET",
+ msgSource.GetMessage("MyMessage", new CultureInfo("de-AT"), new object[] { "Spring", ".NET" }), "message not as expected");
- Assert.AreEqual("Ово је Spring.NET",
- msgSource.GetMessage("MyMessage", new CultureInfo(CultureInfoUtils.SerbianCyrillicCultureName),
- new object[] { "Spring", ".NET" }), "message not as expected");
+ Assert.AreEqual("Dies ist Spring.NET",
+ msgSource.GetMessage("MyMessage", new CultureInfo("de"), new object[] { "Spring", ".NET" }), "message not as expected");
- Assert.AreEqual("Visual Studio voli Spring.NET",
- msgSource.GetMessage("MyNewMessage", new CultureInfo(CultureInfoUtils.SerbianCyrillicCultureName), new object[] { "Spring", ".NET" }), "message not as expected");
+ Assert.AreEqual("Visual Studio liebt Spring.NET",
+ msgSource.GetMessage("MyNewMessage", new CultureInfo("de-AT"), new object[] { "Spring", ".NET" }), "message not as expected");
- Assert.AreEqual("First name",
- msgSource.GetMessage("field.firstname", new CultureInfo(CultureInfoUtils.SerbianCyrillicCultureName)), "message not as expected");
+ // extra tests for the "exotic" serbian culture
+ if (!SystemUtils.MonoRuntime)
+ {
+
+ Assert.AreEqual("Ovo je Spring.NET",
+ msgSource.GetMessage("MyMessage", new CultureInfo(CultureInfoUtils.SerbianLatinCultureName), new object[] { "Spring", ".NET" }), "message not as expected");
+
+ Assert.AreEqual("Ово је Spring.NET",
+ msgSource.GetMessage("MyMessage", new CultureInfo(CultureInfoUtils.SerbianCyrillicCultureName),
+ new object[] { "Spring", ".NET" }), "message not as expected");
+
+ Assert.AreEqual("Visual Studio voli Spring.NET",
+ msgSource.GetMessage("MyNewMessage", new CultureInfo(CultureInfoUtils.SerbianCyrillicCultureName), new object[] { "Spring", ".NET" }), "message not as expected");
+
+ Assert.AreEqual("First name",
+ msgSource.GetMessage("field.firstname", new CultureInfo(CultureInfoUtils.SerbianCyrillicCultureName)), "message not as expected");
+ }
}
///
@@ -332,7 +347,7 @@ namespace Spring.Context.Support
Assert.AreEqual(35, to.Age);
}
#endif
-#if !MONO
+
///
/// Test when the code being resolves itself implements IMessageResolvable.
///
@@ -345,7 +360,7 @@ namespace Spring.Context.Support
messageSource.ResourceManagers = resourceManagerList;
Assert.AreEqual(messageSource.GetMessage("error.required", CultureInfo.CurrentCulture, dmr, "dude!"), "First name is required dude!", "message not as expected");
}
-#endif
+
///
/// Get exception when resource doesn't exist.
///
@@ -413,7 +428,7 @@ namespace Spring.Context.Support
//Repeat the test for the first resource manager
Assert.AreEqual("This is Spring.NET",
- messageSource.GetMessage("MyMessage", new object[] { "Spring", ".NET" }), "message not as expected");
+ messageSource.GetMessage("MyMessage", new CultureInfo("en"), new object[] { "Spring", ".NET" }), "message not as expected");
//Now with the newly added one
Assert.AreEqual("Hello Mr. Anderson",
diff --git a/test/Spring/Spring.Core.Tests/Core/IO/ConfigSectionResourceTests.cs b/test/Spring/Spring.Core.Tests/Core/IO/ConfigSectionResourceTests.cs
index 93b22b55..acff95db 100644
--- a/test/Spring/Spring.Core.Tests/Core/IO/ConfigSectionResourceTests.cs
+++ b/test/Spring/Spring.Core.Tests/Core/IO/ConfigSectionResourceTests.cs
@@ -1,4 +1,6 @@
using System;
+using System.IO;
+using System.Net;
using System.Xml;
using NUnit.Framework;
using Spring.Objects.Factory.Xml;
@@ -12,11 +14,30 @@ namespace Spring.Core.IO
[TestFixture]
public class ConfigSectionResourceTests
{
+ private class TestXmlUrlResolver : XmlUrlResolver
+ {
+ public override object GetEntity(Uri absoluteUri, string role, Type ofObjectToReturn)
+ {
+ object result = base.GetEntity(absoluteUri, role, ofObjectToReturn);
+ return result;
+ }
+
+ public override Uri ResolveUri(Uri baseUri, string relativeUri)
+ {
+ Console.WriteLine("baseUri=" + baseUri);
+ Console.WriteLine("relativeUri=" + relativeUri);
+ Uri result = base.ResolveUri(baseUri, relativeUri);
+ return result;
+ }
+ }
+
private ConfigSectionResource CreateConfigSectionResource(string filename)
{
ConfigXmlDocument xmlDoc = new ConfigXmlDocument();
+
Uri testUri = TestResourceLoader.GetUri(this, filename);
- xmlDoc.Load( testUri.AbsoluteUri );
+
+ xmlDoc.Load("test config section", testUri.AbsoluteUri);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
nsmgr.AddNamespace("od", "http://www.springframework.net");
XmlElement configElement = (XmlElement)xmlDoc.SelectSingleNode("//configuration/spring/od:objects", nsmgr);
diff --git a/test/Spring/Spring.Core.Tests/Core/IO/EncodedResourceTests.cs b/test/Spring/Spring.Core.Tests/Core/IO/EncodedResourceTests.cs
index de1202b4..f083d9d7 100644
--- a/test/Spring/Spring.Core.Tests/Core/IO/EncodedResourceTests.cs
+++ b/test/Spring/Spring.Core.Tests/Core/IO/EncodedResourceTests.cs
@@ -48,7 +48,7 @@ namespace Spring.Core.IO
{
EncodedResource r = new EncodedResource( new StringResource("test") );
StreamReader reader = (StreamReader)r.OpenReader();
- Assert.AreEqual(Encoding.UTF8, reader.CurrentEncoding);
+ Assert.AreEqual(Encoding.UTF8.EncodingName, reader.CurrentEncoding.EncodingName);
Assert.AreEqual("test", reader.ReadToEnd());
}
@@ -62,7 +62,7 @@ namespace Spring.Core.IO
resourceData = (byte[])ArrayUtils.Concat(utf32.GetPreamble(), resourceData);
EncodedResource r = new EncodedResource( new InputStreamResource( new MemoryStream( resourceData), "description" ), Encoding.UTF8, true);
StreamReader reader = (StreamReader)r.OpenReader();
- Assert.AreEqual(Encoding.UTF8, reader.CurrentEncoding);
+ Assert.AreEqual(Encoding.UTF8.EncodingName, reader.CurrentEncoding.EncodingName);
string actual = reader.ReadToEnd();
Assert.AreEqual( "\uFEFF" + expected , actual);
// interestingly the line below is *not* true!
@@ -78,11 +78,11 @@ namespace Spring.Core.IO
byte[] resourceData = GetBytes(expected, utf32);
EncodedResource r = new EncodedResource(new InputStreamResource(new MemoryStream(resourceData), "description"), Encoding.UTF8, false);
StreamReader reader = (StreamReader)r.OpenReader();
- Assert.AreEqual(Encoding.UTF8, reader.CurrentEncoding);
+ Assert.AreEqual(Encoding.UTF8.EncodingName, reader.CurrentEncoding.EncodingName);
string actual = reader.ReadToEnd();
// Assert.AreEqual("\uFFFD\uFFFD\0\0t\0\0\0e\0\0\0s\0\0\0t\0\0\0", actual);
Assert.AreEqual(Encoding.UTF8.GetString(resourceData), actual);
- Assert.AreEqual(Encoding.UTF8, reader.CurrentEncoding);
+ Assert.AreEqual(Encoding.UTF8.EncodingName, reader.CurrentEncoding.EncodingName);
}
#endif
///
diff --git a/test/Spring/Spring.Core.Tests/Core/OrderComparatorTests.cs b/test/Spring/Spring.Core.Tests/Core/OrderComparatorTests.cs
index 2a298c90..e65e1a90 100644
--- a/test/Spring/Spring.Core.Tests/Core/OrderComparatorTests.cs
+++ b/test/Spring/Spring.Core.Tests/Core/OrderComparatorTests.cs
@@ -24,6 +24,7 @@ using System;
using System.Collections;
using NUnit.Framework;
+using Spring.Util;
#endregion
@@ -54,8 +55,8 @@ namespace Spring.Core
{
Ordered one = new Ordered (1);
object [] list = new object [] {null, one, null};
- Array.Sort (list, new OrderComparator ());
- Assert.AreEqual (one, list [0]);
+ ArrayUtils.Sort(list, new OrderComparator ());
+ Assert.AreEqual (one, list [0], "order comparator instance should be first");
Assert.AreEqual (null, list [1]);
Assert.AreEqual (null, list [2]);
}
diff --git a/test/Spring/Spring.Core.Tests/Core/TypeConversion/RuntimeTypeConverterTests.cs b/test/Spring/Spring.Core.Tests/Core/TypeConversion/RuntimeTypeConverterTests.cs
index 5154f93b..4c1d2385 100644
--- a/test/Spring/Spring.Core.Tests/Core/TypeConversion/RuntimeTypeConverterTests.cs
+++ b/test/Spring/Spring.Core.Tests/Core/TypeConversion/RuntimeTypeConverterTests.cs
@@ -64,7 +64,7 @@ namespace Spring.Core.TypeConversion
RuntimeTypeConverter cnv = new RuntimeTypeConverter ();
object foo = cnv.ConvertFrom ("System.String");
Assert.IsNotNull (foo);
- Assert.AreEqual ("System.RuntimeType", foo.GetType ().FullName);
+ Assert.AreEqual (this.GetType().GetType().FullName, foo.GetType ().FullName);
}
[Test]
diff --git a/test/Spring/Spring.Core.Tests/Globalization/CultureInfoUtils.cs b/test/Spring/Spring.Core.Tests/Globalization/CultureInfoUtils.cs
index eec624ae..1c3e6679 100644
--- a/test/Spring/Spring.Core.Tests/Globalization/CultureInfoUtils.cs
+++ b/test/Spring/Spring.Core.Tests/Globalization/CultureInfoUtils.cs
@@ -32,8 +32,8 @@ namespace Spring.Globalization
/// Mark Pollack
public class CultureInfoUtils
{
- private static string srLatn = "sr-SP-Latn";
- private static string srCyrl = "sr-SP-Cyrl";
+ private static readonly string srLatn = "sr-SP-Latn";
+ private static readonly string srCyrl = "sr-SP-Cyrl";
static CultureInfoUtils()
{
diff --git a/test/Spring/Spring.Core.Tests/Reflection/Dynamic/DynamicMethodTests.cs b/test/Spring/Spring.Core.Tests/Reflection/Dynamic/DynamicMethodTests.cs
index 151e6013..c2885a0d 100644
--- a/test/Spring/Spring.Core.Tests/Reflection/Dynamic/DynamicMethodTests.cs
+++ b/test/Spring/Spring.Core.Tests/Reflection/Dynamic/DynamicMethodTests.cs
@@ -84,7 +84,10 @@ namespace Spring.Reflection.Dynamic
#endregion
#if NET_2_0
- private void RespectsPermissionsPrivateMethod() {}
+ private string RespectsPermissionsPrivateMethod()
+ {
+ return "Result";
+ }
public void RespectsPermissionsPublicMethod() {}
@@ -114,8 +117,16 @@ namespace Spring.Reflection.Dynamic
try
{
- m.Invoke(this, null);
- Assert.Fail();
+ object result = m.Invoke(this, null);
+ if (SystemUtils.MonoRuntime)
+ {
+ Assert.AreEqual("Result", result);
+ }
+ else
+ {
+ Assert.Fail("shoud throw a security exception");
+ }
+
}
catch(MethodAccessException)
{}
diff --git a/test/Spring/Spring.Core.Tests/Reflection/Dynamic/SafePropertyTests.cs b/test/Spring/Spring.Core.Tests/Reflection/Dynamic/SafePropertyTests.cs
index 58432b42..05a06035 100644
--- a/test/Spring/Spring.Core.Tests/Reflection/Dynamic/SafePropertyTests.cs
+++ b/test/Spring/Spring.Core.Tests/Reflection/Dynamic/SafePropertyTests.cs
@@ -27,6 +27,7 @@ using System.Reflection;
using System.Text;
using Microsoft.VisualBasic;
using NUnit.Framework;
+using Spring.Util;
#endregion
@@ -49,6 +50,11 @@ namespace Spring.Reflection.Dynamic
[Test]
public void CanGetSetSimpleProperty()
{
+ if (SystemUtils.MonoRuntime)
+ {
+ // TODO (EE): find solution for Mono
+ return;
+ }
object o = GetVisualBasicTestObject();
IDynamicProperty simpleProperty = Create(o.GetType().GetProperty("SimpleProperty"));
simpleProperty.SetValue(o, "CanGetSimpleText", "args");
@@ -59,6 +65,12 @@ namespace Spring.Reflection.Dynamic
[Test]
public void CanGetSetSimpleIndexer()
{
+ if (SystemUtils.MonoRuntime)
+ {
+ // TODO (EE): find solution for Mono
+ return;
+ }
+
object o = GetVisualBasicTestObject();
IDynamicProperty simpleProperty = Create(o.GetType().GetProperty("SimpleIndexer"));
@@ -76,6 +88,11 @@ namespace Spring.Reflection.Dynamic
[Test]
public void CanGetSetComplexIndexer()
{
+ if (SystemUtils.MonoRuntime)
+ {
+ // TODO (EE): find solution for Mono
+ return;
+ }
object o = GetVisualBasicTestObject();
IDynamicProperty property = Create(o.GetType().GetProperty("ComplexIndexer"));
diff --git a/test/Spring/Spring.Core.Tests/Resources/Spring.Context.Tests.de-AT.resx b/test/Spring/Spring.Core.Tests/Resources/Spring.Context.Tests.de-AT.resx
new file mode 100644
index 00000000..c16e09c4
--- /dev/null
+++ b/test/Spring/Spring.Core.Tests/Resources/Spring.Context.Tests.de-AT.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Des is {0}{1}
+
+
\ No newline at end of file
diff --git a/test/Spring/Spring.Core.Tests/Resources/Spring.Context.Tests.de.resx b/test/Spring/Spring.Core.Tests/Resources/Spring.Context.Tests.de.resx
new file mode 100644
index 00000000..57f3ccf2
--- /dev/null
+++ b/test/Spring/Spring.Core.Tests/Resources/Spring.Context.Tests.de.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Dies ist {0}{1}
+
+
+ Visual Studio liebt {0}{1}
+
+
\ No newline at end of file
diff --git a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2008.csproj b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2008.csproj
index 19096d7f..09517648 100644
--- a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2008.csproj
+++ b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2008.csproj
@@ -855,6 +855,8 @@
+
+
diff --git a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.dll.config b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.dll.config
index b9522653..4ec38fa9 100644
--- a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.dll.config
+++ b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.dll.config
@@ -73,7 +73,7 @@ limitations under the License.
-
+
diff --git a/test/Spring/Spring.Core.Tests/TestResourceLoader.cs b/test/Spring/Spring.Core.Tests/TestResourceLoader.cs
index 3d01f02b..a578194d 100644
--- a/test/Spring/Spring.Core.Tests/TestResourceLoader.cs
+++ b/test/Spring/Spring.Core.Tests/TestResourceLoader.cs
@@ -88,7 +88,7 @@ namespace Spring
public static Uri GetUri(object context, string ext)
{
string resname = context.GetType().AssemblyQualifiedName + "#" + ext;
- Uri uri = new Uri("testres://./" + resname, false);
+ Uri uri = new Uri("testres://inline/" + resname, false);
return uri;
}
diff --git a/test/Spring/Spring.Core.Tests/Util/CollectionUtilsTests.cs b/test/Spring/Spring.Core.Tests/Util/CollectionUtilsTests.cs
index bc0d2770..c166af36 100644
--- a/test/Spring/Spring.Core.Tests/Util/CollectionUtilsTests.cs
+++ b/test/Spring/Spring.Core.Tests/Util/CollectionUtilsTests.cs
@@ -40,7 +40,7 @@ namespace Spring.Util
public void CopyTo(Array array, int index)
{
- throw new NotImplementedException();
+ return;
}
public int Count
@@ -50,7 +50,7 @@ namespace Spring.Util
public object SyncRoot
{
- get { throw new NotImplementedException(); }
+ get { return this; }
}
public bool IsSynchronized
diff --git a/test/Spring/Spring.Core.Tests/Util/ReflectionUtilsTests.cs b/test/Spring/Spring.Core.Tests/Util/ReflectionUtilsTests.cs
index 10aae038..9e2b9a55 100644
--- a/test/Spring/Spring.Core.Tests/Util/ReflectionUtilsTests.cs
+++ b/test/Spring/Spring.Core.Tests/Util/ReflectionUtilsTests.cs
@@ -92,6 +92,69 @@ namespace Spring.Util
#endregion
+ private class DummyException : ApplicationException
+ {
+ public DummyException() : base("dummy message")
+ {
+ }
+ }
+
+ public static void ThrowDummyException()
+ {
+ throw new DummyException();
+ }
+
+ public delegate void VoidAction();
+
+ [Test]
+ public void UnwrapsTargetInvocationException()
+ {
+ if (SystemUtils.MonoRuntime)
+ {
+#if DEBUG
+ // TODO (EE): find solution for Mono
+ return;
+#endif
+ }
+
+ MethodInfo mi = new VoidAction(ThrowDummyException).Method;
+ try
+ {
+ try
+ {
+ mi.Invoke(null, null);
+ Assert.Fail();
+ }
+ catch(TargetInvocationException tie)
+ {
+// Console.WriteLine(tie);
+ throw ReflectionUtils.UnwrapTargetInvocationException(tie);
+ }
+ Assert.Fail();
+ }
+ catch (DummyException e)
+ {
+// Console.WriteLine(e);
+ string[] stackFrames = e.StackTrace.Split('\n');
+#if !MONO
+ // TODO: mono includes the invoke() call in inner stackframe does not include the outer stackframes - either remove or document it
+ string firstFrameMethodName = mi.DeclaringType.FullName + "." + mi.Name;
+ AssertStringContains( firstFrameMethodName, stackFrames[0]);
+ string lastFrameMethodName = MethodBase.GetCurrentMethod().DeclaringType.FullName + "." + MethodBase.GetCurrentMethod().Name;
+ AssertStringContains(lastFrameMethodName, stackFrames[stackFrames.Length-1]);
+
+#endif
+ }
+ }
+
+ private void AssertStringContains(string toSearch, string source)
+ {
+ if (source.IndexOf(toSearch) == -1)
+ {
+ Assert.Fail("Expected '{0}' contained in source, but not found. Source was {1}", toSearch, source);
+ }
+ }
+
[Test]
public void MapsInterfaceMethodsToImplementation()
{