From 1fdf00c5b24491f0f79940ba7ec839c119940ccd Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Tue, 4 Mar 2014 16:53:53 +0100 Subject: [PATCH 01/15] started on connection pooling implementation --- dep/Autofac.3.2.0/Autofac.3.2.0.nuspec | 17 + dep/Autofac.3.2.0/lib/net40/Autofac.dll | Bin 0 -> 200704 bytes dep/Autofac.3.2.0/lib/net40/Autofac.xml | 6839 +++++++++++++++++ .../portable-win+net40+sl50+wp8/Autofac.dll | Bin 0 -> 200704 bytes .../portable-win+net40+sl50+wp8/Autofac.xml | 6839 +++++++++++++++++ .../Autofac.Extras.FakeItEasy.3.0.0.nuspec | 23 + .../lib/net40/Autofac.Extras.FakeItEasy.dll | Bin 0 -> 11776 bytes .../lib/net40/Autofac.Extras.FakeItEasy.xml | 123 + .../lib/net35/FakeItEasy.dll | Bin 0 -> 645120 bytes .../lib/net35}/FakeItEasy.xml | 3501 +++++---- .../lib/net40/FakeItEasy.dll | Bin 0 -> 646656 bytes .../lib/net40}/FakeItEasy.xml | 2793 ++++--- dep/FakeItEasy.1.15.0/lib/sl40/FakeItEasy.dll | Bin 0 -> 473088 bytes .../lib/sl40}/FakeItEasy.xml | 688 +- .../FakeItEasy.1.17.0.nuspec | 19 - .../lib/net35/FakeItEasy.dll | Bin 645632 -> 0 bytes .../lib/net40/FakeItEasy.dll | Bin 647680 -> 0 bytes dep/FakeItEasy.1.17.0/lib/sl50/FakeItEasy.dll | Bin 474624 -> 0 bytes dep/FakeItEasy.1.17.0/lib/win8/FakeItEasy.dll | Bin 474624 -> 0 bytes dep/FakeItEasy.1.17.0/lib/win8/FakeItEasy.xml | 3490 --------- dep/repositories.config | 1 + .../IElasticsearchClient.Generated.cshtml | 2 +- .../ElasticsearchHttpClient.cs | 6 +- .../ThriftConnection.cs | 9 +- .../FixedNodesConnectionPoolTests.cs | 116 + .../Connection/RetryTests.cs | 118 + .../Elasticsearch.Net.Tests.Unit.csproj | 84 + .../Properties/AssemblyInfo.cs | 36 + .../Stubs/NoopConnection.cs | 134 + src/Elasticsearch.Net.Tests.Unit/app.config | 11 + .../packages.config | 8 + .../ConnectionConfiguration.cs} | 59 +- .../Connection/ConnectionError.cs | 2 +- .../Connection/ConnectionException.cs | 2 +- .../Connection/ConnectionPool.cs | 127 + .../{Connection.cs => HttpConnection.cs} | 20 +- .../IConnectionConfiguration.cs} | 27 +- .../IConnectionConfigurationValues.cs | 29 + .../Connection/InMemoryConnection.cs | 4 +- .../Domain/ElasticsearchResponse.cs | 35 +- .../Elasticsearch.Net.csproj | 7 +- src/Elasticsearch.Net/ElasticsearchClient.cs | 95 +- .../Exceptions/OutOfNodesException.cs | 19 + .../IElasticsearchClient.Generated.cs | 2 +- src/Elasticsearch.sln | 23 + .../Domain/Connection/IConnectionSettings.cs | 8 +- src/Profiling/Profiling.Indexing/Tester.cs | 2 +- .../YamlTestsBase.cs | 2 +- .../Nest.Tests.Integration/ConnectionTests.cs | 13 +- .../Nest.Tests.Unit/Nest.Tests.Unit.csproj | 5 +- src/Tests/Nest.Tests.Unit/packages.config | 2 +- 51 files changed, 18115 insertions(+), 7225 deletions(-) create mode 100644 dep/Autofac.3.2.0/Autofac.3.2.0.nuspec create mode 100644 dep/Autofac.3.2.0/lib/net40/Autofac.dll create mode 100644 dep/Autofac.3.2.0/lib/net40/Autofac.xml create mode 100644 dep/Autofac.3.2.0/lib/portable-win+net40+sl50+wp8/Autofac.dll create mode 100644 dep/Autofac.3.2.0/lib/portable-win+net40+sl50+wp8/Autofac.xml create mode 100644 dep/Autofac.Extras.FakeItEasy.3.0.0/Autofac.Extras.FakeItEasy.3.0.0.nuspec create mode 100644 dep/Autofac.Extras.FakeItEasy.3.0.0/lib/net40/Autofac.Extras.FakeItEasy.dll create mode 100644 dep/Autofac.Extras.FakeItEasy.3.0.0/lib/net40/Autofac.Extras.FakeItEasy.xml create mode 100644 dep/FakeItEasy.1.15.0/lib/net35/FakeItEasy.dll rename dep/{FakeItEasy.1.17.0/lib/net40 => FakeItEasy.1.15.0/lib/net35}/FakeItEasy.xml (95%) create mode 100644 dep/FakeItEasy.1.15.0/lib/net40/FakeItEasy.dll rename dep/{FakeItEasy.1.17.0/lib/net35 => FakeItEasy.1.15.0/lib/net40}/FakeItEasy.xml (95%) create mode 100644 dep/FakeItEasy.1.15.0/lib/sl40/FakeItEasy.dll rename dep/{FakeItEasy.1.17.0/lib/sl50 => FakeItEasy.1.15.0/lib/sl40}/FakeItEasy.xml (95%) delete mode 100644 dep/FakeItEasy.1.17.0/FakeItEasy.1.17.0.nuspec delete mode 100644 dep/FakeItEasy.1.17.0/lib/net35/FakeItEasy.dll delete mode 100644 dep/FakeItEasy.1.17.0/lib/net40/FakeItEasy.dll delete mode 100644 dep/FakeItEasy.1.17.0/lib/sl50/FakeItEasy.dll delete mode 100644 dep/FakeItEasy.1.17.0/lib/win8/FakeItEasy.dll delete mode 100644 dep/FakeItEasy.1.17.0/lib/win8/FakeItEasy.xml create mode 100644 src/Elasticsearch.Net.Tests.Unit/Connection/FixedNodesConnectionPoolTests.cs create mode 100644 src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs create mode 100644 src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj create mode 100644 src/Elasticsearch.Net.Tests.Unit/Properties/AssemblyInfo.cs create mode 100644 src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs create mode 100644 src/Elasticsearch.Net.Tests.Unit/app.config create mode 100644 src/Elasticsearch.Net.Tests.Unit/packages.config rename src/Elasticsearch.Net/{Domain/ElasticsearchConnectionSettings.cs => Connection/ConnectionConfiguration.cs} (73%) create mode 100644 src/Elasticsearch.Net/Connection/ConnectionPool.cs rename src/Elasticsearch.Net/Connection/{Connection.cs => HttpConnection.cs} (95%) rename src/Elasticsearch.Net/{Domain/IElasticsearchConnectionSettings.cs => Connection/IConnectionConfiguration.cs} (70%) create mode 100644 src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs create mode 100644 src/Elasticsearch.Net/Exceptions/OutOfNodesException.cs diff --git a/dep/Autofac.3.2.0/Autofac.3.2.0.nuspec b/dep/Autofac.3.2.0/Autofac.3.2.0.nuspec new file mode 100644 index 00000000000..cfd6341f879 --- /dev/null +++ b/dep/Autofac.3.2.0/Autofac.3.2.0.nuspec @@ -0,0 +1,17 @@ + + + + Autofac + 3.2.0 + Autofac + Autofac Contributors + Autofac Contributors + http://www.opensource.org/licenses/mit-license.php + http://autofac.org/ + http://code.google.com/p/autofac/logo + false + Base assemblies for the Autofac Inversion of Control Container + Autofac is an IoC container for Microsoft .NET. It manages the dependencies between classes so that applications stay easy to change as they grow in size and complexity. + en-US + + \ No newline at end of file diff --git a/dep/Autofac.3.2.0/lib/net40/Autofac.dll b/dep/Autofac.3.2.0/lib/net40/Autofac.dll new file mode 100644 index 0000000000000000000000000000000000000000..a4cdaf101da51c7fda5a864bdcb782ed59b32eca GIT binary patch literal 200704 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�u7hi~s40nNB_kAkB$|X4 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

o5e0`UF2(TteF3IwyDgW;p2B%+jKp@s^lv9V z=TR=xcLc?AG`6fej;xbj{oAsFstA4x^+Zz^ya^hT)x>_@3s(Pl#xAYW=}PRD|4Uur zg}ZraPAfS~lEH&?|NZ&`@<<=0FS?IR$H$jhBe#nVUKnFA6l;b>#2Qbb8L1IY=dWytY`f>`crqAK@zyey zZZC1RM^#hA#b2Jjuw0 zQv+}iD-8}{rNYB!(te`if)`@{_xH;u=CM{ObHDiJAJvS*TCC|drTnw!a1O)y3qPmf z4}Ka9=P}1|>;Gv~+th!Oy2VFZz>{HnL0s52_-SUlp|lxbVqqZ2;{hpPV#h%t2ZQ4P zQV$3gk299@Gl~B`ntT{77P3p&M%jxHQA>>d$-_@_)4 zNi&wr`|RyU=U!>%@vwKFxzXWiSb^|0#cL(ohNgUk3XVI%IkRxNvXwia@DQCk zM@Hv&|2l0Lb$Cpep1(4~(_5Ik{BUlzM{iqD!opKM+hyxx3!aAlr9<80NA<5Oi(Y;_ zu`D`%SjRyx;N@KS!+lSDZiAlO$)(keG!x_fj%?AtR?65FaGwu9;i#eiIbp zU?m0_4nf-deURReiyX3*B?rwTnm26?059Xh2HWuyV?prp$of~{{or8w4@!brFMA~Io8Kzr zY+oo`doGD>d4n^2wMS6mb6w)$-+jOf`vAvf=A;1Q2Zn)H|GMv2aYaRSzd>_W3mON$ z7Q-LjTfvJg7`#h@8Q?D+uEDz^=t;4L@b4vHclfIZeP<2g`s8+`w*=6P@vd?I~}>=hrpzJ}Z_;Ciqk-&9{C8|jDAd44E;hrYY{ z<9Bax-B@e?Y=}7-TqFC`A5*MV2czgVMYkA>B0OPp&JD*q!^0Q-5?xtM?uX=_AoqHItPRfr7%E{v!vRKCI3Q)f1NJhU7&fw{ zbY%y)ZtNs|cYXe6@Kf)3jI#~69xU_u#`=5&F4W`@EN^3Q-B{8Pyk1Q1GH{J-`;Z!) z-Pj@e{@hRu``%Ez{tbLLvf9J&$}7V#)EaQ19f#xfiR5my;P*ypnA^T-v1vxOEDf)8 zx8jwN!CFo%0bpr7B#?K2WXWsSsC=8i-^yE5>~h8M6l4!nR@+%nPs z%b6H-m`LCgLmL*3v7tBUzR8os3$=sgN2SPk|% z@L6^pTqE-%nG3%TKA|^~%!k*3t1b-Q)dS%g^Pb!QREM7A$%Rqs3aQ~r!;4KPnF-GC z6vJzRw(w8EryHHQ^kP2{Re?Qx%-Nqr?yN0^6B_#Tgx|K;AwC(W7i{HY&O$U?1$n_4 z9t_tO$N>L#VI`14vNlsQuxfB;f%LXkPSlh9A5qkw=z9%wU4sp#Sbo!tx`EY%n^%nU zSsiQ1AC^>@UK|i(bz$2TWzPep0ga{opCTZ4pd#`)mwW~(dP~Pz3Sx^Xy$^M)!610s z561GPejUhiNMDcJ&3}q*XIP4yyrd zv0sR0fWE*M)2pm?OJlRyRr1*Y$iU{X>qOm&=CNNX+(e@J><^NaDSAkBh-e|bzr>4O ztx}_^0miAThABi=MIEw~!Hbk0FY$f~@Ec*PoD)!ygtS-?>qBmK6 ztpsG(sy?cE3x4~%vGzLDT`hO)S#Ps&^4Z9JnOMQ!W)Vbf-Jf$`!8g!a$%{<}GQe*< zw<6i=?l@96vv!o1_kavQ?MZfwXbX#_6s`f`Z_joi8TUY+@6q$+UaTR}4%Ulg$wWI@ zKcX=}EBGEZh*FqEvd@^6%COF(4y1mFjiMAj^njl%1kIC6bXZXy(HTXPDbC9f?iToz zbQ355-s(4xe7bvLO&no(2j#_lfNlXTB$=6H$Ji30=8BeT*z4K?xx;S|yhhZ6=xZRX z-67=jB+4Mpd{5LbC)o<3nLxLI%7_+|>jbGMj3k0aRvAOow- zJ5ji8-s_0EP|m*c#$FJ>lXUFm=YR}A@G?)JOWvqM0{Bph^FC1^yrUlH;+`~DHRf~4 zXO(IgE|h;wJ{wn~8IONQ)Pbl8KS$J`d^YEoiPC{i@D}_A#W|K_E%`r5_6o^b^1CEk zMY2}>KFPLM!=4<)!v&VMoP4(7%>?G`8}iwfw*>nvltED&l0B@3^FuW6Ag~5Kt0T4N zvE>*Ge{7=pc)PqYMVtolhe=P1KXWNOXg!4}ZzYXEJ}8 z=!YQ~t{;EJNj8AbA+iib*+4#*NX9aVmlBO3*-*ZK=ue_yd=b$r!!g`&zJ#cZXarwL z^qB=^>3kKHXiFMW0pCEfB_oi=@GV3#g|U3A6OH5BiDY_3{Cy&s-gv%)=p2})U_RnI zon)`@Pl)os3SwZh`KLs(&gSsXh@KgRvRC;bqM=0d_!mSk63ypFh?Ws8;>U?(>Pz|8 zL>=LF+rVDq-w??Zmho?$XgNPkw3>Xbx*DPFtF|Xky9-1b78<9DQoEiZX}Yaf5=TlGL~K3jY#HYH?Qg> z+rvGGWa@jlCy{LT{oI>K_Lp*Ao#^GUn3vCZO(L1XaUMV!X=63M)rM zE1WSlz$&Bx(Ga5VcnFcK`E&ePq5~xRfrk<$!XAr(UEmQ!vK@Zp&4^_AF7ZerS%%BJ zC6R3D3LZsd9*?p7#M=%1e8jO7OJL{xhM#(9$` z62%hT;$4VF68)2RBYKJGHt#{SlIU07i|9|H-*{i5;E5RL?>w0(n&>X?NAx4nAAA5& z)k)~{0Ut=zgy>H`nCLjsV?LDV0TI)N6E&ZV;kcGUWF^wHG@@6DbZrFDE+V0&6I~%P zXfF`?Ou<-;S|(8fk&Bj1G?>Vw3UNZ>09|qAbaQ=#{-$} zm%y8{=6;u1Ae-rz&AnN`P;?#f%h&>$zrUO2&3X>&66DPe4s)yT%?!iqfEzR1tv+Y- z{O7_NX{G-HaJTp`(E{0*{wu(}2(Hl>QTv|OuQ;mq18}3sO#(NN8S7SvK=w@CUj%0n z@V!s*q`D@9H%qs$2HxzHHLamHYcOI;Lq`n#4gHGm*G0F6xj*=HGHrxg7fQFxdJEGx1 zaK|=02JXy;-@EiFKHBge)X!OP16jS0!=^wM8uG~#DLxlcA-vi9BUuATHw1I|LdbdW zIkVvva2JN$HgR^a&Y$4ksAF{XX5KG+7lt));m1e8b}1FekH`I>*qb_~kH@fwRM5 zKe};tE)09f)i57dTWf}e|LE4QxFxyK*=$TGs~RI&9*TQB|lKJT0&=D}DMYvcRo z*fV!Wdb4V|!&+cpngH(axu3Pb{4c8F$ob|f-fZLO$~mtb=U>-JAp5nMu_|Y6nny#5 z0YfoehtEKEz4_3pf$VYfOmJ&PP6rpu70AjWv2VN``6pa?FA~R~<2qMYr1XnO?3t`Z zm^=D(ap9~+i>2V!1=l$(O#NW1K(@KXVDP!E#c*&BfS;!9M2mFz{&S0Q;J)1Q9d~aw zH~(N1_O8?5I&zCwQd@g7bH-F~y<1x#7{2mA1L<(UQFm zS2%0cx{fDjNv(sy9nm_%Q;r(U^Xj&!*|veZadbJj2Z!B;cswmS%+Cbh#pA24)Q(>}#Z+T8=)8!+^j=*nryej?M#2uJ;s7<~z17!Zx+wMJua znb9B}Qd!<$G`O1^jQ0v;G3|H4_de|p!1wg_=)a^r>ZRH3(Z6^5Z$KK-{(CRyv^Z7*w|*_e2&Lz%0R_?kYP zEsDqZe~ribZ_+6it|WHCE7*2W^PTQ#O_^%~_TFEcW%~uPki-dooDEN$3pMO$Ys_us zw49|-&s}5u16i-G*sDi$?e5=_?d|%GdsB9(>s*NcJh(WfJ_DVzaWuM)n2juP;DP`n zJKY^LAxr3yz+tz6z8iad;sX0QgKE|>vWT8_su)@Lpg*gk|JTfw{Y#&T122OWU&dn# z>s7CESSdYEF*oaVPcyQA3||B>zc>6HcO%<5d@fv(elB!BRNu$~Ef2tLYQcUxAcZt` z3igfP!8Nk5Ug*DND!MV`_9Ay6xf!X)8^F$6D#pAj75#67D}n4r8fv-PRxD}HUZ)zu z^o!pJ`8{W-XpI`~f?)D*98 z0(V|7lL5*?rT$^mZn)B8kfU9sRJvK2%bH^T#1cf*y_-O+y^xME~udmf~`U2g$FTgx(E5LT?QHcFY_OZ9p3)&i4{UjHNp;r$quM8_o zU3=`54n`I_7VEsjSWK()*rnie;MnPKT}qwn_R6F0AA|cSNv84{w9%ua_ylkE*#x}OCwWH#xD)k6 zh;8CC;Le$d@mP|v&a;wd!Ii1W2cv8~VG&)Cy<&FHWY{Z~u6S-Q?i)Xcp+4vx-v!+_ z!2PKAH{^zO1s(F-KyXW@WPxkS91rfADUSA)t(@^3_5|s^mA<+=l$S=O>=m7gx4;z~ z@7S7gyz+ST=(nKxQD z68mB4W=}icAco4ovqOp?%n=Sbg@PZGcuU|;WOR$W{r3tSXRNO+=MB>X#hzS4)${uVK^7o zjA#ahb75_WrkRpzCW9XNInTTX8ZY)s|#^T0$D#BRYSU*KeAeJf^1$@d4pVry} zlu0ry(H>Tny-ZZWQHJM0@KbI$SL*=tkO1v)qt-dFd>&IiQRc|e-M>Z z8&zWi>Z7cbW&8XLvJ;Bt`TPbuy`c?IChM~%^CT+uT{-C6IyF%Mt%$Ne!Fn&LoUicF zxsRRp`gm~M4M(5l{BxgYcmRu}SY$2LVeN=yE!ANY6k#pZVN(@hE!APO6rJ!XgWcm0 zJmLcTPu+ZjcwKfN1gVtG^=%HcntYbBe+;@*ryg6c==h*pb%NM=MK^)!v%8Ai2j8vJ zfK{V6AIS1GWKD=RwqIj;_y@|~+wW&M zx$p{Hu(eni%O;W~3PXXt#cU*7tcjA9b8NAucET2GL4^HmtltRUk}Y>ip%vR_ry|~p zog=E?=rf8fkf}58p&bHSv#Ugl*=v3?IP7wVVzi6d`+h5VI~HcA^}Iccx6@W0!^YZa zFOOqO?R1F8vtxET$rD*I6>2g2wAPQjD_d`;tGpY#Wv5?xcNQFusmr$Q$s&kk+rj}p zMcB4I*%(FGwmsQoMJN5r;IQWxM6!)~u{^3o*+zX>A(3pOKI|3|j~Mh9x96WZ?6qvq0~&JEZyIt4P|GD zX0S2-x!Q2%){u8> z^~}dWYZXm<=Af3v-chuI2=fJf(A~H8HITh0Wt5jJwwI{F6=m7dBlyg!-Jd&XN^K9_ zL5pfvcaUL2Z9ga4S&5ETqRW-&P9<^=Xy_D6ct8t1$CejEctFQW)K`bC1^SeO%%Z~< zfuhb3PQH!@M_lKC(UoXQC7M%-R_X=zSTX|M(F>huj}FFt`ji`TAU!a>+o`V(#&1Q1 z0bl4~s8&=Ga9#&vw4zr7?&)A+RAQdoG0jdl z0`kR+c6ty{BxX2Kv3SWw?xN02@v@Cz#+&aT_Xc&!#4MZ4Jrd{@8yOPnye($i$bE2~ z&0>z7((9aqa}e@V?mnf?4ky`ipjX*Ndq2A^=CYct&~J&UL)}NBlm#p5PSlyGf)A}5 z594QuA}nnw%T$D=UBJdG!qP5eGwoC?7O^FgT(PuE*qcg*rCq|dDjAk`Dch$AOZyr- zqI_a$m$9=-hNWH3epZB~UC!<*!qP5hhA1pig)5eJ1-mDS=A4ya{XtnNTUa;Bu!?0U zdZ%u@;SJ{1Udj#ttzl^$B%QC@%kU<F8VCevl;Io-|GtfariRQhA zcUg;ADN8gTHEd?_cDiWT#!MZhY@GSNVF!DYNX`g5*(M@6BkW{X72%AqligN?Gr~@G zU(q~s8QaCY;$@s)nX4Fgu}*fXYuv+n*{OwbA4{`SSL1%RNzqmF5aTE8ydrbp5aR(> zqmzuYEzqZ|lcGL>g~oE$%TBY5hggcDw7^xy!)z3hEYX*&fJm0;OSVlBmgq~iQxTTv zOSWH8R$v*NGC8Ga7SRnN8RrppPswnde1x@1zA8A4jK`Q; zB9gqf_!{g|Bx5N1nyn#{z4av9NF?)ll5HoFHF%Q!stEIWlHFH?`8>(A&KTzc(=|x_ zTl@;2azkX$L8G1AV}p(wPe~EXRXu{faiT#%-#O6>L4CQy=l>M0l260Rpa)K|V4SDz z>Ae%QQL~d_PY`oC&3q}>Savs;Gb~P$>3Wd2%URZysKOP)on^^H@_y_rTPlg}$Ih~I zitv8y9Q$2{?K9m4(Hjcim)Bdv&D)+>X)$#Y!eZt-ooVq`(BbMzkamKMOL9`R{clfqP>>3)&Ium zpf4ex4#N6$(1rSmPO|$zm+Z0BYS7o^vYo<#D(uvy!4Q|9>@*bU3cF#?=Zh{svnpLt zJi~OX!EBdbSanHIh8KY%oMcy7lwG#m3JIQXa zQoC%u%MG?#$yztu>~fQ>x66J4GIgVzu_X;>irZ{9Q3+eqa6Zso@>#+>M<%%b%7%AG zpNrXnhWB0Wuv{WJQ~t)@AUXi^CO7@Y-XxlCy3!E(4%<#7N8|4p1$@fgwP2&kLAd5~ zkZW)iCt0mvZzrl3?Bhfc!2wR>oPVWJMd4xXYhVtM-IOe%xMJCj z{DC4YyOEoEV89AjEW43=DZ;WFd4M7;yOG12^T{Wc-N;)h!m=AVJf%u9EW42pSA=CZ z@@z#|b{9TT634Qe_$x|=Wq0GRDZ;W>;p>!7EPGY{fs$d_J^81KumfzL%nu}^tc2|fDHee|<~gJaTIB`tnUY}DHD3hrYf6Tzy!yO;Kj{-! zc@6krNgP*s4Y^l;DZ^D>Fdv`@S9!sFup(UL1@nc9aFrLr&l8of!y%rojd7?P9#TMV}6XvP|E(9@nu+Jep*q~3)jLz`9izT2gWeIkEons*~9r`yDZ!_g8L1` z6lR!uH#!Hu85u}aVoGVmO-=c;N>RmM6wjLR9!jB2(fhFSBPXR9r!IJ!&o}-CPN)L z>%dzo!dN=+_KI4Dma!O~OoTNt)-{H|Ajz~m^i|h5o~LMC=o>)ei59cNq5FVdS9CeF z!Zn`1PgKh8hI+Vl=H_9TdMWs<>DGmhBf=EAxb@)UhNDc`iTE#)NcZ&N_lT68h?|K@ z*r0(+0{ZalM5S!>sOe4n@@xx(k1Tr`S-)e4(QE!p^uo&tuZ0PrSDn#ODx6Ju!qYveQp) zL-De?;c4d@DywA2je7$dHX8-#Dv9E2-J2jM<~gK)3FPVT+JU8-2@ zu?z_JsFK2)STRn_Sx}WU-kqqz6@6NHnk0@sNAMLyr7SP}*(&M$nv$WtHG|I|fw9PY z*in2Dk!+(;{1_41TOaXJyzNL^dhsla*CCR&ye!_)E^AgLi$5=kti3thq6lZ-9G*cW z+ct+65XrX9;oB5p+vf0{im+{S_apv-SN`_-4m$ypCTuV)q z%iAl$ICFV|qTnWFY&0KCBx4!P)07Nj8O_%y!kmrf8x&zIqxn`vSrAJe@B9L$x0rp> zq3PyQg*UQzba#SW~QVEO{`TW@WEMT?7MLbLEUS5K zMH`5kDLP2hS=Rn#Z)L!hPha7Ooa{60~IE7}q^a;=C;>xwprjoeKU-rsKI)fAy+VI!|igsB_d zH}c6!hOunsGZbMgoB69w;WqQdGMwq7NI&<@e5;gkv`=i|`;<>i?;rdi5!z;^Y`97axmpw4<;G3Le zAM#(M%oNe$9NWcjD~fNyO}qF5B6(M^n@3K-6l81e;q8cIYwqC_6k%)b;Zqf1YwqE* z6s5N)V|)2NqH?l5?d7c}+HxJwKIYwt7PGPzN$wx>nUfr{13Z>wrL1M%$E^-Q^8Son7a~{us->_qQ2lAiAq^+{{E;h zIal<4{_&_IycKN_$of3WV~AvZ9_3RMVSOIuGZbNc9_6npTG$dSg8WTITZwimI!P2V z-I23nJp4r@IgXC=+tZLrA)m>uk8>CDS<2qeFKqo4udC?Og88k#=27-=d)-g)i;_&Z z&vlw#RfIcRr};x7+3Qa86EiS{5;ncnx9;EZ6)#Cz+3H94v;2~xvK9~Bf8f7TxKid? z_3WpaMM#G5I?I=jT% zDB9ktj9uov6&)iQL4-Tf-Y%DUHc^SGVblZTWj>Y&$EJrz1z$}h`|cIKMEYdMMtHki z<(M{FYS5ZyCqrV?Gae2a5Y@oty3MCyKvW|SXNvH+;UtUpxM?HzQBmDI{%NOiQQj^N zDvs*oBwG!1+wSv|sKFk;+UX3?9Xs8L8tL(yovO7S>G3;fv#<=ZcJK1_L=_x!eV4yy zr$!!k`6qUY@VLj1+bP=P4}M;fE9UwEzpe;#{ea(Bgt>meO|M{j6|R`;hrE^|%=MqV zz9P)^Bi>9A=K3*@QG~f>T2Dn-^IYpEiDS)k%}OLSn6AB~WO?E9JcM?e+7IWd@U{kR z8Od;TEcS5G*4Syehe_K)RBl?(x(RdBFweMxU)TB#4>#>0$z%#uw9MHktKcZBs_i3^ zBhK9(?#tHy@Nm$#tZ#-6bkz zZ?}2iQB8Y9R01W6hv!M6=3olglOKaDjRRD4;WT!JGA8iehYq6&`fUSAt7 z$rbxx18u1y?1K%pV~Vg325YAIlxtV)gCSasBJ6{Wv~h~C4?e3cq0)i|8*?qJv9?N4 z*q9}4L$!5^`i$AsHcZ>DsBp}lw&B`libdW#HPPOY#6BGJS-U3MPej;8(Vh_+Y@$*P zV!JohMia@A+Dw~BB=ul3ZI>dPJDO?x6`>w%rhTr+(6)><*Ul4FaE!CL_B)a6t&!Rz zNv0NUo3KdDxRC18)V}Rvk4P<^2z_?+Y@xksr!JnYv_q0ixI${99an@aq&C`VMY!&1 zqg_yx(srO{8||JXh%?-^troEe)58?3p6#>@B3at@S^<$PZF_B-A}notZKonEZF_CM zq6MwNj-s6+nqk8J(m^|~2=_ZWXjddbdRd+wv>J?b>=}X~{&gU*~8?R4m_&xe%SB z4JMiFS-Dyok?dKy+8RaJvvRc!im+$pYFicEZ3p%O?Vuu$Xr%9nFug8bqqX`gFfTJ$ zPPDg6p|+l=#DqIkh1w2DY;5!puR<+yrSw@G9nZ#S^N1>3vA2%VR!SoMIY!&6WY~Ad zX*(6+UfnotzakuCkXNwtHcPWD!e8yv@wqD6Fy;)lFY7AH5is{YKW-G$X-XbwrDZWX+dqZz|dT_CI-*YNv^0f0?gcB9i@Oz83Tb#wpjI z^R;IcVSkygHB(gHz6{=I(OD7pmj&8TMHfg`K!i21R$HLWA(DI03$;Z=C8qEWYqf=1 z8IjzPUZic3L_5-pw6luPuDDqHnW%zxq!(+CiR5@#qE%gkxkh@=bBXp0k&JVx79ok^ zT&fLMgmJ#6#lMN+q`lxZ?WMIuWG`5*%_5Rxdbw6gB-2~2Z6R8~zA|6;TCTCTFdWKE z-enrR1_eGc&ed9DNfhTBS`?9t^9?PWNLq>C(B37&SZaE&(T+$Wo8wyT6p_>@YqhEy z94Wk|eJ+VoSg(CaBvV+gogk9AUa#FFTFi!Z2=HF7&EANyEM|orntE^0s%%0kWz#xz z^4_FHz9VUVhr!;PwV2IFi`j|}`QBT#d5S&(+OFkpk+RMKbG+Zz&MG?AVTf^urmHwx zj63G{p>~{PrR=4m>2W(X42A2@pF6~}-J1CyNEIB{k-N1aLQkBnjMa$z3 zXjc?{UbH5zT-!uGvCcm7KB!gSMmclEGl_?_XB6R?#KT&UB0Q6LSZgeaA!JglWF!ZV47wU-p(nZ(1|TZ-^Z;$iKCB0Q7$g?7bG9f7KDr=0QdfWG>d zn%Pbk{fO3C5uQmrrj4`HXrLW-ngZ0|JsAtMAJ9NMt<;Ze;}qeU#ILju?X*Wfp?#qU z&m?}MxxX)C$$`9lt3@foGl{3Pvx@Lc;%RO82ht~=Nj#%nQ-o&{ztj5dkTN`zcvhQe zrzYZi?UJ1m#1ES9hv@SHpB}SOJFmG?UP{^dqVl-&nwezSe&Mbcv?Y>ExSse?+bxMT zjs4d1N3HfwjAaIkjtzIcsCANL!d1y7t%o99m0Z&LDZ-V`Wo@V;T7<*y)#QziWvfNuOwyzNht8gd_aER$?dj>JPM+6`_84sLfY| z`sIh!nEk2e$8^mp>?xqj0 zQ+f3&`f59!uU=KZqv+j$`_(QAY~Z=gKJdR+u3PS zjhgxzML7XwHGK6`cKWD>zuxy#8EzQlB|tB*Q+f3|`gS{=uU=RGgQ%2^jXPh%tcR4# zaP#7>)Ckl^+DWS!q)%7$Xu=md3OA>W;=bU zBEOElwc6`mpG%ov$5yps^mIiyKg8*y72*64uaCD=y&4I6nWBar>(xlqFWG58tjXU-1i-z z*Z5NUyd1i-)?j_2ozB!6u6I5nWr-c{)=JZtDeBX4h;fA8jQSFst)K8>!brXAe)L(& zHcY%*CtdHV+P3c`pUxTjPl`rQ+T{O&-i_L!lzliUwDTx^HkB5h0hoNqFH_$|DabWg zmVSUpuEDZ&{V1j&*I-$?n<89;W$D!v4eeOQvh@%}bBNk2+DMeF=qsWZh)^r;^32w! z5y{=$9Q_q3GvWPTj=n$<-v8z3D-^AZ5Aw;?-&C|W{v6BIH!1o$o||&@_Y~nhV`4s5ajw8)rC7li$ z3-#aaG{R?$9`Kb-cE&VLk0L68SaN)d^c{+3b~D*O5)Ace% zdU4C{GxQURyo-Bve@T!0hVo+iqEif;skb94F`e$T&1a^bD`k++9X>DX2Z(SVVZYBS z`Uyp~688Jd(Jv_qP59Dhu72B2-};p5UMFQfLlds}EY#~NYMt=A&k{Y%PR#c;y_=o9 zeOKrM6(uCp^80EW3 zKWL{y-_80dJI(Ojre9IiI$@#j2l`z*mHF<}UA~niYMrpzcdzcFsAs|+-~D=soyvU= z=o9R8()TlcmZBk0qR;gub_(%5tZ%ndl<$}NennYOpGWn>cKX)mxc-fuuK1kLe^4|P z>hoLux}BKsX}!uRna`;S-o9sbe?>zQI{E&fhuEp7?*+Y;ord~e(i0RdffD_sC)=sq z_h)^jolg2*(>E!)5pdD>roPusSAB2kUnqJv;g0WZ{iK~9`TnN=py-nX7r(pu4Lf=J z!5iaF%Upk(;P3ZPk5qIuA;|BMo@1vLewvuA=+A^0KZDp}r*3{G@rNQ)Vn07OQTvRH z(>F22&qH(|lJ>!Bq8kxvqM3fx#0nz08&N~l`A&vwmH39AkH}OMleodpSL`F2Vd|2& zQS%cAiAqd;6W0P=lQM{NtDnDUc~-_UDDgwT+M>6jF^T*A0>lPI(-RN*)fLASEliwK z#Vp#Mli}8YtezM|BsFx9NF$OOI!LThgjSUxu|W}P=peCG(bmK=R$rVTTFlNS9`ma& z4ic5J>BXD;8;GdyWqQ{Wzw>J-hAa9LC`9a5)V%X0zh{N`LHcal`I=v2k*uh1=i7c^ zVgUIpWuF&^_6QeWkxb^gi8xCnbKOKda~@-n^GXv@PZ8$2iFj5~M&~jXAz~CwAnK=R zHc_UcH;JYy+D){SXfX@va?dY9+*1_OMfYze247(CSE zh}xGZ9HfBMhG;Qc+%?C)gNUk-rCrsv$Ujy@T#@t^P)Cuh=-sZ-)jEkSKTFvMU0?A} z6ekq@v+FAVF5(VRDbu^H^6w_XenFq5%-k*B&_fI%TFfH5&8gB;ELPO5+a~|sVuzxB z-M0Go5vHp$g^X?=`u7#^(oc$I5rj(?nTmD+^%GwZEoR>U4G`Zbs_3@gf1o(0=pm#q zNIX;&(0!BtV9`M3?7-Bm{zJqslwK(tF>R~=P|^Q7rAPbI!^AxzX*n4t*4;pvJd0xy z8;GP`!y^7cgzXp4EaJmT^f8g_Jr?l=k?cJdQRODaDMx@sR8xe#$0Ga{#dj}bDPn6q z^eIzF5j!Q(>An=PBgi3371ty&KB%sHs@Ufwvxz9z!tD-B7ZaN}WEo+qZP^Ta$wZk8o*9=k{qwPt}RQL;!&UH1Ypt_`Mlf&XmzxWO2)Pf_EP z!$1cW?Hh8AjS(W6e7agwHfm!;RY`np3fQ4V4MoR@)+?V?QoUWqh%H3e(%XE-h@(U$ ztS~j6jTKiFO((je=mVm#_O_bn%EyY1l1wIRUwCI}H$|b={y@n@vhNm&9g6ToB)r|U z1IAL$&>lHn+$EB|ZoGIbiESED*L}RGmS{^ao=p_~l4#$4qR8#$EE^|@1;R5N6Gc`} zhisCVDT$pOo-ZbeLMPc|@tTtTI=rs?WU-#;0>3k|VOX(vs0eGmScqO2=LL>6Uo58g zA#&}R{*AF%%$7toUo7x9G|(s3e6cv8d}7TPi?c+s=8MGxq7v3OBc7Fr?MWC;)WiRKv6S+#EP4M|-ziD?ZP6_*^HxlEl6mea5s-OfPWA){EJa*aMKQ z7po^YWN(Z0l1LZ4EsjmK$-45lMTI0&OaYt&6gL!&F6a+*k4U!WMlpCAhLf$iQM{=L zTXU26g-EvMCgC}qQh@VdiLEz@;+Jgc#j|(BOi3)YaDAJ1#FjY@*}GzgBzCLtk$6{l zE_9apN`e{aTsx30cgQviA4%-jG3NH0MgAIxY>SvsiB?O3cBt#VMND&&Z56L5*{8#I z2W}Owt#!n*O}s9Ny)gESX`AT%7RsdN+b*^!Ld~~b>`;W7Z@W0Sj(n2l+b)htBF(p5 ze5(jG-*$0Y`9#gPU0fiNns2-Cd)twh_rz*R)R*29fljjbMW~XYCVF3--QWnfLtK)? z4CBt2c8Hvf4%vrdtRxl)vJXY8O%B;kktT`djvE}fQ|wk$475vhaPqlZ^is0bpxEFf`&?{QvQ8lTTpUp}Yrj#!R}eUjMB@n=j& zM8Ix`?5JoUiLD0NQBmR~J0@l;+2yUjV%#xVvgfphE z#55<_*Wwi=Yc^q0r?16#PO@*rMJ4MG;l2@fKXSx*Qm}nQY|@0eu_wh)Nz^LeiV;dS zq=>nEE8cgKof73rwhh9a5_^eC*`5i@Vo!^2KW6ZeI^>M_K@zJz@nP&45x3tVJ1Zti zVrdhrCY}|2on+_4KqZ?$v3}w?G3^saxbMYmN$ehk`(F4SaL9fTW=X8xBm8A#=rf?-#E7pQK7SY4l1Q`vE{-_K?uwI2Rx#zPZg)ki6OM5ALTv0wTb!PaDNT$vVHLl3i)27BVZdgGiQ|E?TiZFF5 zhC7nj_aM^^KVEgngyFU%)@It^Kw+4E-61m=W=oa|Or$;s8FjgycYMb$m~im~+MI|1Lfbwpqg{Z3q#c?5@_x^Ck1ufO9Ex zTE$r7M;%{4B@63J*bLd=N!A4E8;tb3g?R&`@HODA%xq^(8HYAzWKO+Xs>8x=W+;_3 zB@?5I6DHmqf68m)E+qdI>+75j|9{yu=jjkw)|jQgD`&8`xq-w(j(;%nw5^TQZ<5yduux)^R^(pa7cl;zMOikOk9By;mJX6hKtVVUb- z?>xR|84}NcFT-^`hko7vGy5`bH?e(lsg`#q@9TVOjjX5tYu%J7De)6G<;7)J5#GV^ zIhQqq*P$uHm9_pp_9bP>n^QjRqNpfc>$a##6h4{9A+JA zwal6pK^CmyZFW5l)WsJpho{LkOZF53E0soD zcLB>XR@+g_j1dBrC{2X&k}=24JSw2L8GW=l4W%r74MvC-F?ErSyIuqg6ZISiYP)31 zZxJnEtoV{P#Ua3J_Ycr9Obi8c3$z3N`cx zQ$7Nt5gp&(<~Z}nBs3Q&bR$oTSo0E~mGeDJl&kGKVh5AtW24$ABH9-i0#%U;LWmAahF9 z1s*fV^c>A`Bg9>^Ec06GOL-pi)EjC-juS3nCcx|BN-!3DPo8vSzZsA<#k<%wG#$)o zVve&pEOY!rQz?}BCAa*tR+>?ksMV(UOTY47q)f99bBm{oK>aduifW}XZYzgGvOZ~N2lFUy(B`D)tLcr5gO&xZ+=cH=IjuK;h16U^2^ zU1eU#RF(PlGfq#Ejh=-Vi}g5AHi_WD;6EgkH z{erY+o_qd{?~xeU<6H2X1r!tFgBh95ADYrc&NU?eou8NeCVtTgy`+v`%^+*CO`yOI;@@ual9kbl8oOl}HSVS~rP5i%{Et3624u!@oMon+yn9J5l_Ba$P zV`eJrduWMD~IS(Z5>Q$xx!HKZ)tRhe#*3Cz)qS)1hLY);B@9xZK}Er;ei zx%&GimIL{y7XMp~2O1SwNrZ|IoihdGp|OySa(?+ne?*;UOSIhD+S|Rd(1z$@G3!W1 zS}^z5l!J2pP~+Z2$8VibxH4y@s~oe@%89XZCGC)=(Hh8JPu9~=xta4w@+4c7{c|z2 z=3tCJNeF9RGW0+;aV0t414+&OMPAJWPQ0x=~+saWr({M(*4Tk z2=oL5zre_vuP~kf>Vm#}YUrP4S&qBRV+Qluh+G5tmi<~UA;0~BI({iBAk+6#k*Cbh zW;vVXLYB>UUCO-dHAoIl6WKpXT*{iV{8R6y;}?-g-z>{Cr?HBLUw7(>GCk#dkjj!S z^uO}gjtrOSvd=kD6LKA@uWGFkCv0)=`ONU05tN#tRqLE z%BE>nEB(qfKsghXD}e#O7E!U9Y~IGH5#Ws#b$O@KRgPE9vROYgH7Gv17|&}>G7V)6 zCCW7@TC>7$L{<^LQXfF`+LX)}8Lq5Z6fVXFT!W-6T_xV(qj2v98fhihMrgf7`ZC7w z=J=Z}$aIsbdM+IqD~XSD{AF6nQYtZ^gJ&x|+6<(CG5(jSB-8eMWOF=2<(IQeL-X>%~!RJ>>O}n?#q^gzF|;H}UmwaShHJ#3^k9&Ku#j5pEkHZxW}q7Gc#}z_oyD z0oNjii_PF~#IXhO-U9A+xZRH5X}A;TJ4Kd$7w+wD#PuE=_u;_rjcE7d7su`wdD;%d z{I}p<6r;2k#SWau;_SjPKpet1wGV+iBwoSUg=2vD4BThnJ_Gj|xX-{PXbZv;U?~B= zv7Vs0v;_RVb|Sb$aEag&!6kxA0+$3X30xAmByetx-T_#{*aZAp|BZ~TjCV5L$GC%W z7cfse4%F<=F!Ma)LB_+3?=l`|JjwVu@Z}MjPJ6^7fO!I6tpY~is}gHQ4u`yMWCHMK z{UZeNTlrVW$1t-(%;4$6rD@|fX!yxhuZoa zP?~>U+7)w%f5q|;|7z+HLBE1}h<`Qp5Xa;Q|FSA{@J_%9_H_j7Yz3NIUwB1f>}l3H z%{r&q?-{m#nsrX|8xK~b%vsS_D~h?_(kiaROH-|);fmdQt7yGqBEBQ@!l1*kt$63> zz1WTV^os9+c@@|zqAjY}tru(675(A}FO1u$H-InJu4U$0FoW1~lenb<->B6etr#2E zD)v^S$3-*m&<|AP#2pr0)}_F|S1bqqqoOu0S^K!+V(qZ_szUPH!C$a!XWV%B$`j+Y zi!LADuT{h>`)yphvJ;o{$GA)_W7$V>d0OEz^1EW0CB9gzU$$F6Ebd&^H~z5r&9b5K z2X)%zl7O$v=ZVAO-DRoqJNZ4J9fH2OSE|u3ahGcJd-3HOrE|GPDOrk8O0)_Ny@L4) z<|{OMx5LSCsNvM}vFyX|@Y(vbio7c;5;ici8LrbTTR4VWIfj%wze(7rZy(y3u$^@r zdc~FRC+yVdw<&jOu~$ST?%}X@YV-@aJE4;&;EG({3wd(lerEQw&VG&F7CFFn4slEl ziE8du_+jEv)>)%ZsLV*xxKvZlmM5KJ-k~>E)+8N8{5K_S6dNij z^|n>snnd|>chYIjmsa5@9-Dkv&^vtZ3aS@pl;7H__Y)ktuj=AtD@r?+^FJ@WD!DK2 zaZ}PDt|J31bQjTJF4kJb?T!zVcZvrbRU`Up^u35=_BEa{oiUTqp+D&;PsvmA9~=*+ zly*mr@q^jI?AaZ9W;4V4a+qwJN52CWnc(f z#i|vzjq)LeC7MsC_eWaAO)HLx4IJmqj6R*-B-x_VuLE!8G}#V5Pi$vqyH0P2>;&^1 zzTHB&mvKMi0iC{9azLlAlpN6MJ0?dt1y1n2I}r1q^*_bTX=cu_Y_(9z^tDi04PrT( z2Re;qY_Jgl7+Zs3v8Yjpd{564goIUDUH?IRzqGTW7)X!?bywhqLo!6wy^$I*5A%yZD!o5kivE7Pr27m*vZy5Bb2HU+u84SmiIvO ztk`M!b;**kefg^{4*hpyw@hfYbh;k`9(2c#+iU5E-+bI_x#Fsewf(GrfbkIHK~a6x z&(kP|?P&+a=8~VM9kHyw>fN-X9Jdo3w{%X)Q+&Ut_)h7rvEP#M4C9@^pY=audF!gQ zNoOqYUo{i>A<$~2-=FMj{p_mY{rXzJxhhNawNi@pwO+XTVr`I>eziH;x_xNh$%Cx) zJI={gDg((@Dg)!8iT03n##`wfm~=2_MJDjM0pnSJyp`UDNoNavHS(LsI&1Xi)elWB zwbJhzms+WXDP?P=R{9O-ax4AfGZ?(*Qf{SRN#0>uc*R?jcUYoo{sve2<>(65uVBpz z)@c<(Yj*1uR(g-7hT~A7H0fQMor1mtzk&4~`pTLmQ+5h^KXWtN+06WAE4?AJ19dD@?O|q*mEM8b%f9wosTbR6rIviBm40LWfR%oq z`hb;wpZXAVN`Ukx%pohi9dm?zQK_(|A7%Lj<0;0|z!L2Y%MQJx?w{$_Fp8T)KUJ3# zciKv2<}`BfQmrrZgOqD~!}w2D*@S`zM4GQ+kH9o{bwu6d%Av7E6Yj8ds0>=)^swu-P_>1X>^ zggup>qdA#(GVf&Gsd)MtG}Uf>hLv0UVyz6JP_O#u8LeU|%U3ZrGH&!xUw?<^``BWw z-E(wCvG$awGoe`fgQt7O3GUZw!l<|Zgt9XLrTx`i{ynWUw=1+q^JnIbe zr^Bd?Iuq7`F@rUH`_QTplks~6cl6IdtMxO+ZT*jP?amPNMb^IIA2y;chjT3s|ELi) zI-GK95My*WrA9Q`^RuFcTa0AzXT^BNbVi4M-`WRLGQ)W!6He(_ig1Vb+rawK;gqV; z;nbG;m^q2ixAiY&zf_}N&$O~kW7HvY%2}rzOnAQvCDXUWE0}RI<5Yg_DMptyP|hOA5qHa1D_{+d|z9b*?^b~@8{#Y_VHbB=9q8cm~UnM&8+z!@xq`r^R|c6 zFQ@Nheh=`u0Xr2#@9gXer>|%24X2vBH#~9lfC2ki=K%1m*vxGg>fm~7`eu!4%^~KG za2$??Q*AoIp`YT=Pb1w>bD6Q)C?)qICdd&R{hD@P8~sjtUmLx#GRQ{uqk$Niuxqr9 z-g1ey(c3M_>^j~?zoI^#b;jH1ch%Ev^c(BRHY(dk!?_mQ=slLB;neZTE=Ijl2m(`x4tk)3kkw2j{KA7rQB zyN|Y0nh&zmuig)`Z&>)xykt9-hh%1w6+@akb^794vYp=W84te`^V3-~UCH!zPo{mr zLQj64oytZjyOuIjYNvO2%E6o!70`b^-^s2{CDU6xHTLfoKbk!VcW3M4V^<$DK0Cd~ zvjOr;)2!U0Zf4ib%xt#Pn>j^daq}vol5LZ zJAE;356gR4-fLe}{=0(xY~g4)rRo9pdw}@^c6!sNSbJf^F>%O#+XnQiNN4n?taHe| zVZ+G6McV5dW)>c?FWO)!JY=Uge2&8PtT@3sCzwBBr?-OkGk?nND7S~5ve%a1Qh1uf zJ;R!3m_Nh(89TiVWR2KV{_@P7eDBtXss*UU5tK)LneVF@dN*iL#NDtqh?!{CiDo8R zG4zhmRt`Nmg6m_%mIdWSTQEi%-Y=c?)0s(+pf`pxStpN~Qg$t6xtzZzSQugpsy+gDm;^~X>inqeTrljrc zx}BNr5%d<(PB3T19xx9U?}d)7&wkd~&&>V^dYkA##B&$DReXpo9AVcZ%p8fJ_lb_O zg%e;Vl$>GkR9kiJ&)$ zF6S9vw4jz`P$cETAog`Yr!OZCiljG@qQRdP2Xy*oU^45BkEHT8K9bt`^vH!}_OMLm zGnGtl5aqG2(n$A`Z}f6@EmtzVLsY@8PR1HWO{1?cX5ZWck@ThzjeJfGZxt(=kBMi*w&urTKDTrLH?z$(`iIR~Vx#^AT-WHTU=AzPBLBVo8+}jYM~t*iwI}k~ zjgOS=iR^y~;j0@l=7}772_e13v?ua|jZc6-#{6Z=iKn-X_C)ggs<8j$(7kM7FZ{p`A*UH7y7{gGLlaVk_>fD5HeX{)nY~cV~ zIKX}nvHe4A{}8(#irffaha$6K^HAiLO%qBEMHXH{Nbx@u`7?H

!(v5!OG#nyn(L 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 m?{D(Z`y!}3J`1cj + + + Autofac + + + +

+ Service used as a "flag" to indicate a particular component should be + automatically activated on container build. + + + + + Services are the lookup keys used to locate component instances. + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Implements the operator ==. + + The left operand. + The right operand. + The result of the operator. + + + + Implements the operator !=. + + The left operand. + The right operand. + The result of the operator. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + The parameter is null. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Gets a human-readable description of the service. + + The description. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is not + and is an ; otherwise, . + + + + All services of this type are considered "equal." + + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . Always 0 for this type. + + + + All services of this type are considered "equal" and use the same hash code. + + + + + + Gets the service description. + + + Always returns AutoActivate. + + + + + Used with the WithMetadata configuration method to + associate key-value pairs with an . + + Interface with properties whose names correspond to + the property keys. + This feature was suggested by OJ Reeves (@TheColonial). + + + + Set one of the property values. + + The type of the property. + An expression that accesses the property to set. + The property value to set. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Cannot choose between multiple constructors with equal length {0} on type '{1}'. Select the constructor explicitly, with the UsingConstructor() configuration method, when the component is registered.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to {0} ---> {1} (See inner exception for details.). + + + + + Interface providing fluent syntax for chaining module registrations. + + + + + Add a module to the container. + + The module to add. + + The to allow + additional chained module registrations. + + + + + Basic implementation of the + interface allowing registration of modules into a + in a fluent format. + + + + + The into which registrations will be made. + + + + + Initializes a new instance of the class. + + + The into which registrations will be made. + + + Thrown if is . + + + + + Add a module to the container. + + The module to add. + + The to allow + additional chained module registrations. + + + Thrown if is . + + + + + Support the System.Lazy<T, TMetadata> + types automatically whenever type T is registered with the container. + Metadata values come from the component registration's metadata. + When a dependency of a lazy type is used, the instantiation of the underlying + component will be delayed until the Value property is first accessed. + + + + + Allows registrations to be made on-the-fly when unregistered + services are requested (lazy registrations.) + + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + If the source is queried for service s, and it returns a component that implements both s and s', then it + will not be queried again for either s or s'. This means that if the source can return other implementations + of s', it should return these, plus the transitive closure of other components implementing their + additional services, along with the implementation of s. It is not an error to return components + that do not implement . + + + + + Gets whether the registrations provided by this source are 1:1 adapters on top + of other components (I.e. like Meta, Func or Owned.) + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Lazy<T, TMetadata> Support. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The type '{0}' cannot be used as a metadata view. A metadata view must be a concrete class with a parameterless or dictionary constructor.. + + + + + Looks up a localized string similar to Export metadata for '{0}' is missing and no default value was supplied.. + + + + + Provides a value along with metadata describing the value. + + The type of the value. + An interface to which metadata values can be bound. + + + + Create a new instance. + + The value described by the instance. + The metadata describing the value. + + + + The value described by . + + + + + Metadata describing the value. + + + + + Support the + types automatically whenever type T is registered with the container. + Metadata values come from the component registration's metadata. + + + + + Finds constructors that match a finder function. + + + + + Find suitable constructors from which to select. + + + + + Finds suitable constructors on the target type. + + Type to search for constructors. + Suitable constructors. + + + + Initializes a new instance of the class. + + + Default to selecting all public constructors. + + + + + Initializes a new instance of the class. + + The finder function. + + + + Finds suitable constructors on the target type. + + Type to search for constructors. + Suitable constructors. + + + + Extension methods for configuring the . + + + + + Fluent method for setting the registration configuration on . + + The registration source to configure. + A configuration action that will run on any registration provided by the source. + + The with the registration configuration set. + + + + + Extension methods for registering instances with a container. + + + + + Registers modules found in an assembly. + + The builder to register the modules with. + The assemblies from which to register modules. + + Thrown if is . + + + The to allow + additional chained module registrations. + + + + + Registers modules found in an assembly. + + The module registrar that will make the registrations into the container. + The assemblies from which to register modules. + + Thrown if is . + + + The to allow + additional chained module registrations. + + + + + Registers modules found in an assembly. + + The builder to register the modules with. + The assemblies from which to register modules. + The type of the module to add. + + Thrown if is . + + + The to allow + additional chained module registrations. + + + + + Registers modules found in an assembly. + + The module registrar that will make the registrations into the container. + The assemblies from which to register modules. + The type of the module to add. + + Thrown if is . + + + The to allow + additional chained module registrations. + + + + + Registers modules found in an assembly. + + The builder to register the modules with. + The of the module to add. + The assemblies from which to register modules. + + Thrown if or is . + + + The to allow + additional chained module registrations. + + + + + Registers modules found in an assembly. + + The module registrar that will make the registrations into the container. + The of the module to add. + The assemblies from which to register modules. + + Thrown if or is . + + + The to allow + additional chained module registrations. + + + + + Add a module to the container. + + The builder to register the module with. + The module to add. + + Thrown if is . + + + The to allow + additional chained module registrations. + + + + + Add a module to the container. + + The module registrar that will make the registration into the container. + The module to add. + + Thrown if is . + + + The to allow + additional chained module registrations. + + + + + Add a module to the container. + + The builder to register the module with. + The module to add. + + Thrown if or is . + + + The to allow + additional chained module registrations. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Module.ThisAssembly is only available in modules that inherit directly from Module.. + + + + + Support the + type automatically whenever type T is registered with the container. + When a dependency of a lazy type is used, the instantiation of the underlying + component will be delayed until the Value property is first accessed. + + + + + Generates context-bound closures that represent factories from + a set of heuristics based on delegate type signatures. + + + + + Create a factory generator. + + The service that will be activated in + order to create the products of the factory. + The delegate to provide as a factory. + The parameter mapping mode to use. + + + + Create a factory generator. + + The component that will be activated in + order to create the products of the factory. + The delegate to provide as a factory. + The parameter mapping mode to use. + + + + Generates a factory delegate that closes over the provided context. + + The context in which the factory will be used. + Parameters provided to the resolve call for the factory itself. + A factory delegate that will work within the context. + + + + Generates a factory delegate that closes over the provided context. + + The context in which the factory will be used. + Parameters provided to the resolve call for the factory itself. + A factory delegate that will work within the context. + + + + Reflection activator data for concrete types. + + + + + Builder for reflection-based activators. + + + + + Specify a reflection activator for the given type. + + Type that will be activated. + + + + Get the implementation type. + + + + + The constructor finder for the registration. + + + + + The constructor selector for the registration. + + + + + The explicitly bound constructor parameters. + + + + + The explicitly bound properties. + + + + + Activator data that can provide an IInstanceActivator instance. + + + + + The instance activator based on the provided data. + + + + + Specify a reflection activator for the given type. + + Type that will be activated. + + + + The instance activator based on the provided data. + + + + + Parameterises the construction of a container by a . + + + + + No options - the default behavior for container building. + + + + + Prevents inclusion of standard modules like support for + relationship types including etc. + + + + + Does not call on components implementing + this interface (useful for module testing.) + + + + + Data structure used to construct registrations. + + The most specific type to which instances of the registration + can be cast. + Activator builder type. + Registration style type. + + + + Configure the component so that instances are never disposed by the container. + + A registration builder allowing further configuration of the component. + + + + Configure the component so that instances that support IDisposable are + disposed by the container (default.) + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + gets a new, unique instance (default.) + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + gets the same, shared instance. + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a single ILifetimeScope gets the same, shared instance. Dependent components in + different lifetime scopes will get different instances. + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() within + a ILifetimeScope tagged with any of the provided tags value gets the same, shared instance. + Dependent components in lifetime scopes that are children of the tagged scope will + share the parent's instance. If no appropriately tagged scope can be found in the + hierarchy an is thrown. + + Tag applied to matching lifetime scopes. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + The service type provided by the component. + Key to associate with the component. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + Key to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. The generic parameter(s) to As() + will be exposed as TypedService instances. + + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. The generic parameter(s) to As() + will be exposed as TypedService instances. + + Service type. + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. The generic parameter(s) to As() + will be exposed as TypedService instances. + + Service type. + Service type. + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. + + Service types to expose. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. + + Services to expose. + A registration builder allowing further configuration of the component. + + + + Provide a textual name that can be used to retrieve the component. + + Named service to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Provide a textual name that can be used to retrieve the component. + + Named service to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Provide a key that can be used to retrieve the component. + + Key to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Provide a key that can be used to retrieve the component. + + Key to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Add a handler for the Preparing event. This event allows manipulating of the parameters + that will be provided to the component. + + The event handler. + A registration builder allowing further configuration of the component. + + + + Add a handler for the Activating event. + + The event handler. + A registration builder allowing further configuration of the component. + + + + Add a handler for the Activated event. + + The event handler. + A registration builder allowing further configuration of the component. + + + + Configure the component so that any properties whose types are registered in the + container will be wired to instances of the appropriate service. + + Set wiring options such as circular dependency wiring support. + A registration builder allowing further configuration of the component. + + + + Associates data with the component. + + Key by which the data can be located. + The data value. + A registration builder allowing further configuration of the component. + + + + Associates data with the component. + + The extended properties to associate with the component. + A registration builder allowing further configuration of the component. + + + + Associates data with the component. + + A type with properties whose names correspond to the + property names to configure. + A registration builder allowing further configuration of the component. + + + + The activator data. + + + + + The registration style. + + + + + The registration data. + + + + + Delegates registration lookups to a specified registry. When write operations are applied, + initialises a new 'writeable' registry. + + + Safe for concurrent access by multiple readers. Write operations are single-threaded. + + + + + Provides component registrations according to the services they provide. + + + + + Attempts to find a default registration for the specified service. + + The service to look up. + The default registration for the service. + True if a registration exists. + + + + Determines whether the specified service is registered. + + The service to test. + True if the service is registered. + + + + Register a component. + + The component registration. + + + + Register a component. + + The component registration. + If true, existing defaults for the services provided by the + component will not be changed. + + + + Selects from the available registrations after ensuring that any + dynamic registration sources that may provide + have been invoked. + + The service for which registrations are sought. + Registrations supporting . + + + + Add a registration source that will provide registrations on-the-fly. + + The source to register. + + + + Enumerate the registered components. + + + + + Fired whenever a component is registered - either explicitly or via a + . + + + + + Gets the registration sources that are used by the registry. + + + + + True if the registry contains its own components; false if it is forwarding + registrations from another external registry. + + This property is used when walking up the scope tree looking for + registrations for a new customised scope. (See issue 336.) + + + + Fired when an is added to the registry. + + + + + Enables contravariant Resolve() for interfaces that have a single contravariant ('in') parameter. + + + interface IHandler<in TCommand> + { + void Handle(TCommand command); + } + + class Command { } + + class DerivedCommand : Command { } + + class CommandHandler : IHandler<Command> { ... } + + var builder = new ContainerBuilder(); + builder.RegisterSource(new ContravariantRegistrationSource()); + builder.RegisterType<CommandHandler>(); + var container = builder.Build(); + // Source enables this line, even though IHandler<Command> is the + // actual registered type. + var handler = container.Resolve<IHandler<DerivedCommand>>(); + handler.Handle(new DerivedCommand()); + + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + If the source is queried for service s, and it returns a component that implements both s and s', then it + will not be queried again for either s or s'. This means that if the source can return other implementations + of s', it should return these, plus the transitive closure of other components implementing their + additional services, along with the implementation of s. It is not an error to return components + that do not implement . + + + + + Gets whether the registrations provided by this source are 1:1 adapters on top + of other components (I.e. like Meta, Func or Owned.) + + + + + Options that can be applied when autowiring properties on a component. (Multiple options can + be specified using bitwise 'or' - e.g. AllowCircularDependencies | PreserveSetValues. + + + + + Default behavior. Circular dependencies are not allowed; existing non-default + property values are overwritten. + + + + + Allows property-property and property-constructor circular dependency wiring. + This flag moves property wiring from the Activating to the Activated event. + + + + + If specified, properties that already have a non-default value will be left + unchanged in the wiring operation. + + + + + Static factory methods to simplify the creation and handling of IRegistrationBuilder{L,A,R}. + + + To create an for a specific type, use: + + var cr = RegistrationBuilder.ForType(t).CreateRegistration(); + + The full builder syntax is supported: + + var cr = RegistrationBuilder.ForType(t).Named("foo").ExternallyOwned().CreateRegistration(); + + + + + + Creates a registration builder for the provided delegate. + + Instance type returned by delegate. + Delegate to register. + A registration builder. + + + + Creates a registration builder for the provided delegate. + + Delegate to register. + Most specific type return value of delegate can be cast to. + A registration builder. + + + + Creates a registration builder for the provided type. + + Implementation type to register. + A registration builder. + + + + Creates a registration builder for the provided type. + + Implementation type to register. + A registration builder. + + + + Create an from a . + (There is no need to call + this method when registering components through a .) + + + When called on the result of one of the methods, + the returned registration will be different from the one the builder itself registers + in the container. + + + + var registration = RegistrationBuilder.ForType<Foo>().CreateRegistration(); + + + + + + The registration builder. + An IComponentRegistration. + + Thrown if is . + + + + + Create an IComponentRegistration from data. + + Id of the registration. + Registration data. + Activator. + Services provided by the registration. + An IComponentRegistration. + + + + Create an IComponentRegistration from data. + + Id of the registration. + Registration data. + Activator. + Services provided by the registration. + Optional; target registration. + An IComponentRegistration. + + Thrown if or is . + + + + + Register a component in the component registry. This helper method is necessary + in order to execute OnRegistered hooks and respect PreserveDefaults. + + Hoping to refactor this out. + + + + Component registry to make registration in. + Registration builder with data for new registration. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The type '{0}' is not assignable to service '{1}'.. + + + + + Adds registration syntax for less commonly-used features. + + + These features are in this namespace because they will remain accessible to + applications originally written against Autofac 1.4. In Autofac 2, this functionality + is implicitly provided and thus making explicit registrations is rarely necessary. + + + + + Registers a factory delegate. + + Container builder. + Factory type to generate. + Registration builder allowing the registration to be configured. + Factory delegates are provided automatically in Autofac 2, + and this method is generally not required. + + + + Registers a factory delegate. + + Container builder. + Factory type to generate. + The service that the delegate will return instances of. + Registration builder allowing the registration to be configured. + Factory delegates are provided automatically in Autofac 2, and + this method is generally not required. + + + + Registers a factory delegate. + + The type of the delegate. + Container builder. + The service that the delegate will return instances of. + Registration builder allowing the registration to be configured. + Factory delegates are provided automatically in Autofac 2, + and this method is generally not required. + + + + Registers a factory delegate. + + The type of the delegate. + Container builder. + Registration builder allowing the registration to be configured. + Factory delegates are provided automatically in Autofac 2, + and this method is generally not required. + + + + Changes the parameter mapping mode of the supplied delegate type to match + parameters by name. + + Factory delegate type + Activator data type + Registration style + Registration to change parameter mapping mode of. + Registration builder allowing the registration to be configured. + + Thrown if is . + + + + + Changes the parameter mapping mode of the supplied delegate type to match + parameters by position. + + Factory delegate type + Activator data type + Registration style + Registration to change parameter mapping mode of. + Registration builder allowing the registration to be configured. + + Thrown if is . + + + + + Changes the parameter mapping mode of the supplied delegate type to match + parameters by type. + + Factory delegate type + Activator data type + Registration style + Registration to change parameter mapping mode of. + Registration builder allowing the registration to be configured. + + Thrown if is . + + + + + Registers the type as a collection. If no services or names are specified, the + default services will be IList<T>, ICollection<T>, and IEnumerable<T> + + The type of the collection elements. + Container builder. + A unique name for the collection that can be passed to MemberOf(). + Registration builder allowing the registration to be configured. + Collections are provided automatically in Autofac 2, + and this method is generally not required. + + + + Registers the type as a collection. If no services or names are specified, the + default services will be IList<T>, ICollection<T>, and IEnumerable<T> + + The type of the collection elements. + Container builder. + A unique name for the collection that can be passed to MemberOf(). + Registration builder allowing the registration to be configured. + Collections are provided automatically in Autofac 2, + and this method is generally not required. + + + + Include the element explicitly in a collection configured using RegisterCollection. + + Registration limit type. + Registration style. + Activator data type. + Registration to export. + The collection name, as passed to RegisterCollection. + A registration builder allowing further configuration of the component. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Build() or Update() can only be called once on a ContainerBuilder.. + + + + + Looks up a localized string similar to An error occurred while attempting to automatically activate registration '{0}'. See the inner exception for information on the source of the failure.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to A delegate registered to create instances of '{0}' returned null.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Bound constructor '{0}'.. + + + + + Looks up a localized string similar to The binding cannot be instantiated.. + + + + + Looks up a localized string similar to An exception was thrown while invoking the constructor '{0}' on type '{1}'.. + + + + + Looks up a localized string similar to Cannot resolve parameter '{1}' of constructor '{0}'.. + + + + + Provides parameters that have a default value, set with an optional parameter + declaration in C# or VB. + + + + + Used in order to provide a value to a constructor parameter or property on an instance + being created by the container. + + + Not all parameters can be applied to all sites. + + + + + Returns true if the parameter is able to provide a value to a particular site. + + Constructor, method, or property-mutator parameter. + The component context in which the value is being provided. + If the result is true, the valueProvider parameter will + be set to a function that will lazily retrieve the parameter value. If the result is false, + will be set to null. + True if a value can be supplied; otherwise, false. + + + + Returns true if the parameter is able to provide a value to a particular site. + + Constructor, method, or property-mutator parameter. + The component context in which the value is being provided. + If the result is true, the valueProvider parameter will + be set to a function that will lazily retrieve the parameter value. If the result is false, + will be set to null. + True if a value can be supplied; otherwise, false. + + Thrown if is . + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The container's self-registration of context interfaces should never be activated as it is hard-wired into the LifetimeScope class.. + + + + + Marks a module as container-aware (for the purposes of attaching to diagnostic events.) + + + + + Initialise the module with the container into which it is being registered. + + The container. + + + + Fired when the activation process for a new instance is complete. + + + + + The context in which the activation occurred. + + + + + The component providing the instance. + + + + + The paramters provided when resolved. + + + + + The instance that will be used to satisfy the request. + + + + + Fired after the construction of an instance but before that instance + is shared with any other or any members are invoked on it. + + + + + The instance can be replaced if needed, e.g. by an interface proxy. + + The object to use instead of the activated instance. + + + + The context in which the activation occurred. + + + + + The component providing the instance. + + + + + The instance that will be used to satisfy the request. + + + + + The parameters supplied to the activator. + + + + + Interface supported by services that carry type information. + + + + + Return a new service of the same kind, but carrying + as the . + + The new service type. + A new service with the service type. + + + + Gets the type of the service. + + The type of the service. + + + + Identifies a service using a key in addition to its type. + + + + + Initializes a new instance of the class. + + Key of the service. + Type of the service. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + The parameter is null. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Return a new service of the same kind, but carrying + as the . + + The new service type. + A new service with the service type. + + + + Gets or sets the key of the service. + + The key of the service. + + + + Gets the type of the service. + + The type of the service. + + + + Gets a human-readable description of the service. + + The description. + + + + Describes when a lifetime scope is beginning. + + + + + Create an instance of the class. + + The lifetime scope that is beginning. + + + + The lifetime scope that is beginning. + + + + + Describes when a lifetime scope is ending. + + + + + Create an instance of the class. + + The lifetime scope that is ending. + + + + The lifetime scope that is ending. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Instances cannot be resolved and nested lifetimes cannot be created from this LifetimeScope as it has already been disposed.. + + + + + Fired when an is added to the registry. + + + + + Construct an instance of the class. + + The registry to which the source was added. + The source that was added. + + + + + The registry to which the source was added. + + + + + The source that was added. + + + + + Represents the process of finding a component during a resolve operation. + + + + + The component for which an instance is to be looked up. + + + + + The scope in which the instance will be looked up. + + + + + The parameters provided for new instance creation. + + + + + Raised when the lookup phase of the operation is ending. + + + + + Raised when the completion phase of an instance lookup operation begins. + + + + + Raised when the completion phase of an instance lookup operation ends. + + + + + Raised when the completion phase of an instance lookup operation begins. + + + + + Create an instance of the class. + + The instance lookup that is beginning the completion phase. + + + + The instance lookup operation that is beginning the completion phase. + + + + + Raised when the completion phase of an instance lookup operation ends. + + + + + Create an instance of the class. + + The instance lookup that is ending the completion phase. + + + + The instance lookup operation that is ending the completion phase. + + + + + Fired when an instance is looked up. + + + + + Create an instance of the class. + + The instance lookup that is ending. + True if a new instance was created as part of the operation. + + + + True if a new instance was created as part of the operation. + + + + + The instance lookup operation that is ending. + + + + + Fired when instance lookup is complete. + + + + The instance lookup that is ending. + + + + The instance lookup operation that is beginning. + + + + + Describes the commencement of a new resolve operation. + + + + + Create an instance of the class. + + The resolve operation that is beginning. + + + + The resolve operation that is beginning. + + + + + Wraps a component registration, switching its lifetime. + + + + + Base class for disposable objects. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Returns true if the current instance has been disposed; otherwise false; + + + + + Describes a logical component within the container. + + + + + Called by the container when an instance is required. + + The context in which the instance will be activated. + Parameters for activation. These may be modified by the event handler. + + + + Called by the container once an instance has been constructed. + + The context in which the instance was activated. + The parameters supplied to the activator. + The instance. + + + + Called by the container once an instance has been fully constructed, including + any requested objects that depend on the instance. + + The context in which the instance was activated. + The parameters supplied to the activator. + The instance. + + + + A unique identifier for this component (shared in all sub-contexts.) + This value also appears in Services. + + + + + The activator used to create instances. + + + + + The lifetime associated with the component. + + + + + Whether the component instances are shared or not. + + + + + Whether the instances of the component should be disposed by the container. + + + + + The services provided by the component. + + + + + Additional data associated with the component. + + + + + The component registration upon which this registration is based. + + + + + Fired when a new instance is required. The instance can be + provided in order to skip the regular activator, by setting the Instance property in + the provided event arguments. + + + + + Fired when a new instance is being activated. The instance can be + wrapped or switched at this time by setting the Instance property in + the provided event arguments. + + + + + Fired when the activation process for a new instance is complete. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Activator = {0}, Services = [{1}], Lifetime = {2}, Sharing = {3}, Ownership = {4}. + + + + + Pulls registrations from another component registry. + Excludes most auto-generated registrations - currently has issues with + collection registrations. + + + + + Create an external registry source that draws components from + . + + Component registry to pull registrations from. + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + + + In this case because the components that are adapted do not come from the same + logical scope, we must return false to avoid duplicating them. + + + + + Switches components with a RootScopeLifetime (singletons) with + decorators exposing MatchingScopeLifetime targeting the specified scope. + + + + + Maps services onto the components that provide them. + + + The component registry provides services directly from components, + and also uses to generate components + on-the-fly or as adapters for other components. A component registry + is normally used through a , and not + directly by application code. + + + + + Protects instance variables from concurrent access. + + + + + External registration sources. + + + + + All registrations. + + + + + Keeps track of the status of registered services. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Attempts to find a default registration for the specified service. + + The service to look up. + The default registration for the service. + True if a registration exists. + + + + Determines whether the specified service is registered. + + The service to test. + True if the service is registered. + + + + Register a component. + + The component registration. + + + + Register a component. + + The component registration. + If true, existing defaults for the services provided by the + component will not be changed. + + + + Selects from the available registrations after ensuring that any + dynamic registration sources that may provide + have been invoked. + + The service for which registrations are sought. + Registrations supporting . + + + + Add a registration source that will provide registrations on-the-fly. + + The source to register. + + + + Enumerate the registered components. + + + + + Fired whenever a component is registered - either explicitly or via a + . + + + + + Gets the registration sources that are used by the registry. + + + + + True if the registry contains its own components; false if it is forwarding + registrations from another external registry. + + This property is used when walking up the scope tree looking for + registrations for a new customised scope. (See issue 336.) + + + + Fired when an is added to the registry. + + + + + Tracks the services known to the registry. + + + + + Used for bookkeeping so that the same source is not queried twice (may be null.) + + + + + Initializes a new instance of the class. + + The tracked service. + + + + The first time a service is requested, initialization (e.g. reading from sources) + happens. This value will then be set to true. Calling many methods on this type before + initialisation is an error. + + + + + The known implementations. + + + + + True if any implementations are known. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The operation is only valid during initialization.. + + + + + Looks up a localized string similar to The operation is not valid until the object is initialized.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The activation has already been executed.. + + + + + Describes the commencement of a new resolve operation. + + + + + Create an instance of the class. + + The resolve operation that is ending. + If included, the exception causing the operation to end; otherwise, null. + + + + The exception causing the operation to end, or null. + + + + + The resolve operation that is ending. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Subclasses of Autofac.Service must override Object.Equals(). + + + + + Looks up a localized string similar to Subclasses of Autofac.Service must override Object.GetHashCode(). + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Collection Support (Arrays and Generic Collection Interfaces). + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Lazy<T> Support. + + + + + Describes the basic requirements for generating a lightweight adapter. + + + + + Create an instance of . + + The service that will be adapted from. + The adapter function. + + + + The adapter function. + + + + + The service to be adapted from. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Lightweight Adapter from {0} to {1}. + + + + + Looks up a localized string similar to The service {0} cannot be both the adapter's from and to parameters - these must differ.. + + + + + Internal implementation of the RegisterCollection/MemberOf-style collection feature. + + + + + Registration style for dynamic registrations. + + + + + Data used to create factory activators. + + + + + Create a new GeneratedFactoryActivatorData + + The type of the factory. + The service used to provide the products of the factory. + + + + Determines how the parameters of the delegate type are passed on + to the generated Resolve() call as Parameter objects. + For Func-based delegates, this defaults to ByType. Otherwise, the + parameters will be mapped by name. + + + + + Activator data that can provide an IInstanceActivator instance. + + + + + Hides standard Object members to make fluent interfaces + easier to read. + Based on blog post by @kzu here: + http://www.clariusconsulting.net/blogs/kzu/archive/2008/03/10/58301.aspx + + + + + Standard System.Object member. + + Standard result. + + + + Standard System.Object member. + + Standard result. + + + + Standard System.Object member. + + Standard result. + + + + Standard System.Object member. + + The other. + Standard result. + + + + Determines how the parameters of the delegate type are passed on + to the generated Resolve() call as Parameter objects. + + + + + Chooses parameter mapping based on the factory type. + For Func-based factories this is equivalent to ByType, for all + others ByName will be used. + + + + + Pass the parameters supplied to the delegate through to the + underlying registration as NamedParameters based on the parameter + names in the delegate type's formal argument list. + + + + + Pass the parameters supplied to the delegate through to the + underlying registration as TypedParameters based on the parameter + types in the delegate type's formal argument list. + + + + + Pass the parameters supplied to the delegate through to the + underlying registration as PositionalParameters based on the parameter + indices in the delegate type's formal argument list. + + + + + Provides components by lookup operations via an index (key) type. + + The type of the index. + The service provided by the indexed components. + + Retrieving a value given a key: + + IIndex<AccountType, IRenderer> accountRenderers = // ... + var renderer = accountRenderers[AccountType.User]; + + + + + + Get the value associated with if any is available. + + The key to look up. + The retrieved value. + True if a value associated with the key exists. + + + + Get the value associated with . + + The value to retrieve. + The associated value. + + + + + + + + + + + + + Support the + types automatically whenever type T is registered with the container. + Metadata values come from the component registration's metadata. + + + + + Provides a value along with a dictionary of metadata describing the value. + + The type of the value. + + + + Create a new instance. + + The value described by the instance. + The metadata describing the value. + + + + The value described by . + + + + + Metadata describing the value. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Meta<T> Support. + + + + + Looks up a localized string similar to Meta<T, TMetadata> Support. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The service '{0}' is not an open generic type.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to {0} providing {1}. + + + + + Describes the activator for an open generic decorator. + + + + + Construct an . + + The decorator type. + The open generic service type to decorate. + + + + The open generic service type to decorate. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The service {0} cannot be both the adapter's from and to parameters - these must differ.. + + + + + Looks up a localized string similar to Open Generic Decorator {0} from {1} to {2}. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The type {0} is not an open generic type definition.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The implementation type '{0}' is not an open generic type definition.. + + + + + Looks up a localized string similar to The implementation type '{0}' does not support the interface '{1}'.. + + + + + Looks up a localized string similar to The service '{0}' is not an open generic type definition.. + + + + + Looks up a localized string similar to The service '{1}' is not assignable from implementation type '{0}'.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Owned<T> Support. + + + + + Provides registrations on-the-fly for any concrete type not already registered with + the container. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A predicate that selects types the source will register. + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + + + Returns a that represents the current . + + + A that represents the current . + + 2 + + + + Gets whether the registrations provided by this source are 1:1 adapters on top + of other components (I.e. like Meta, Func or Owned.) + + + + + Gets or sets an expression used to configure generated registrations. + + + A that can be used to modify the behavior + of registrations that are generated by this source. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to "Resolve Anything" Support. + + + + + Activation data for types located by scanning assemblies. + + + + + Create an instance of . + + + + + The filters applied to the types from the scanned assembly. + + + + + Additional actions to be performed on the concrete type registrations. + + + + + Actions to be called once the scanning operation is complete. + + + + + Fired when the activation process for a new instance is complete. + + + + + Initializes a new instance of the class. + + The context. + The component. + The parameters. + The instance. + + + + The context in which the activation occurred. + + + + + The component providing the instance. + + + + + The paramters provided when resolved. + + + + + The instance that will be used to satisfy the request. + + + + + Fired after the construction of an instance but before that instance + is shared with any other or any members are invoked on it. + + + + + Initializes a new instance of the class. + + The context. + The component. + The parameters. + The instance. + + + + The instance can be replaced if needed, e.g. by an interface proxy. + + The object to use instead of the activated instance. + + + + The context in which the activation occurred. + + + + + The component providing the instance. + + + + + The instance that will be used to satisfy the request. + + + The instance can be replaced if needed, e.g. by an interface proxy. + + + + + The parameters supplied to the activator. + + + + + Activate instances using a delegate. + + + + + Base class for instance activators. + + + + + Create an instance activator that will return instances compatible + with . + + Most derived type to which instances can be cast. + + + + Gets a string representation of the activator. + + A string describing the activator. + + + + The most specific type that the component instances are known to be castable to. + + + + + Activates component instances. + + + + + Activate an instance in the provided context. + + Context in which to activate instances. + Parameters to the instance. + The activated instance. + + The context parameter here should probably be ILifetimeScope in order to reveal Disposer, + but will wait until implementing a concrete use case to make the decision + + + + + The most specific type that the component instances are known to be castable to. + + + + + Create a delegate activator. + + The most specific type to which activated instances can be cast. + Activation delegate. + + + + Activate an instance in the provided context. + + Context in which to activate instances. + Parameters to the instance. + The activated instance. + + The context parameter here should probably be ILifetimeScope in order to reveal Disposer, + but will wait until implementing a concrete use case to make the decision + + + + + Provides a pre-constructed instance. + + + + + Provide the specified instance. + + The instance to provide. + + + + Activate an instance in the provided context. + + Context in which to activate instances. + Parameters to the instance. + The activated instance. + + The context parameter here should probably be ILifetimeScope in order to reveal Disposer, + but will wait until implementing a concrete use case to make the decision + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Determines whether the activator disposes the instance that it holds. + Necessary because otherwise instances that are never resolved will never be + disposed. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The provided instance has already been used in an activation request. Did you combine a provided instance with non-root/single-instance lifetime/sharing?. + + + + + Supplies values based on the target parameter type. + + + + + Returns true if the parameter is able to provide a value to a particular site. + + Constructor, method, or property-mutator parameter. + The component context in which the value is being provided. + If the result is true, the valueProvider parameter will + be set to a function that will lazily retrieve the parameter value. If the result is false, + will be set to null. + True if a value can be supplied; otherwise, false. + + Thrown if or is . + + + + + Binds a constructor to the parameters that will be used when it is invoked. + + + + + Construct a new ConstructorParameterBinding. + + ConstructorInfo to bind. + Available parameters. + Context in which to construct instance. + + + + Invoke the constructor with the parameter bindings. + + The constructed instance. + + + Returns a System.String that represents the current System.Object. + A System.String that represents the current System.Object. + + + + The constructor on the target type. The actual constructor used + might differ, e.g. if using a dynamic proxy. + + + + + True if the binding is valid. + + + + + Describes the constructor parameter binding. + + + + + Selects the best constructor from a set of available constructors. + + + + + Selects the best constructor from the available constructors. + + Available constructors. + The best constructor. + + + + Selects a constructor based on its signature. + + + + + Match constructors with the provided signature. + + Signature to match. + + + + Selects the best constructor from the available constructors. + + Available constructors. + The best constructor. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to At least one binding must be provided in order to select a constructor.. + + + + + Looks up a localized string similar to The required constructor on type '{0}' with signature '{1}' is unavailable.. + + + + + Looks up a localized string similar to More than one constructor matches the signature '{0}'.. + + + + + Selects the constructor with the most parameters. + + + + + Selects the best constructor from the available constructors. + + Available constructors. + The best constructor. + A single unambiguous match could not be chosen. + + + + Uses reflection to activate instances of a type. + + + + + Create an activator for the provided type. + + Type to activate. + Constructor finder. + Constructor selector. + Parameters configured explicitly for this instance. + Properties configured explicitly for this instance. + + + + Activate an instance in the provided context. + + Context in which to activate instances. + Parameters to the instance. + The activated instance. + + The context parameter here should probably be ILifetimeScope in order to reveal Disposer, + but will wait until implementing a concrete use case to make the decision + + + + + The constructor finder. + + + + + The constructor selector. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to No constructors on type '{0}' can be found with the constructor finder '{1}'.. + + + + + Looks up a localized string similar to None of the constructors found with '{0}' on type '{1}' can be invoked with the available services and parameters:{2}. + + + + + Base class for parameters that provide a constant value. + + + + + Create a constant parameter that will apply to parameters matching + the supplied predicate. + + + + + + + Returns true if the parameter is able to provide a value to a particular site. + + Constructor, method, or property-mutator parameter. + The component context in which the value is being provided. + If the result is true, the valueProvider parameter will + be set to a function that will lazily retrieve the parameter value. If the result is false, + will be set to null. + True if a value can be supplied; otherwise, false. + + + + The value of the parameter. + + + + + Standard container implementation. + + + + + Creates, wires dependencies and manages lifetime for a set of components. + Most instances of are created + by a . + + + + // See ContainerBuilder for the definition of the builder variable + using (var container = builder.Build()) + { + var program = container.Resolve<Program>(); + program.Run(); + } + + + + Most functionality is provided by extension methods + on the inherited interface. + + + + + + + + + An tracks the instantiation of component instances. + It defines a boundary in which instances are shared and configured. + Disposing an will dispose the components that were + resolved through it. + + + + // See IContainer for definition of the container variable + using (var requestScope = container.BeginLifetimeScope()) + { + // Note that handler is resolved from requestScope, not + // from the container: + + var handler = requestScope.Resolve<IRequestHandler>(); + handler.Handle(request); + + // When requestScope is disposed, all resources used in processing + // the request will be released. + } + + + + All long-running applications should resolve components via an + . Choosing the duration of the lifetime is application- + specific. The standard Autofac WCF and ASP.NET/MVC integrations are already configured + to create and release s as appropriate. For example, the + ASP.NET integration will create and release an per HTTP + request. + Most functionality is provided by extension methods + on the inherited interface. + + + + + + + + + + + The context in which a service can be accessed or a component's + dependencies resolved. Disposal of a context will dispose any owned + components. + + + + + Resolve an instance of the provided registration within the context. + + The registration. + Parameters for the instance. + + The component instance. + + + + + + + Associates services with the components that provide them. + + + + + Begin a new nested scope. Component instances created via the new scope + will be disposed along with it. + + A new lifetime scope. + + + + Begin a new nested scope. Component instances created via the new scope + will be disposed along with it. + + The tag applied to the . + A new lifetime scope. + + + + Begin a new nested scope, with additional components available to it. + Component instances created via the new scope + will be disposed along with it. + + + The components registered in the sub-scope will be treated as though they were + registered in the root scope, i.e., SingleInstance() components will live as long + as the root scope. + + Action on a + that adds component registations visible only in the new scope. + A new lifetime scope. + + + + Begin a new nested scope, with additional components available to it. + Component instances created via the new scope + will be disposed along with it. + + + The components registered in the sub-scope will be treated as though they were + registered in the root scope, i.e., SingleInstance() components will live as long + as the root scope. + + The tag applied to the . + Action on a + that adds component registations visible only in the new scope. + A new lifetime scope. + + + + The disposer associated with this . + Component instances can be associated with it manually if required. + + Typical usage does not require interaction with this member- it + is used when extending the container. + + + + The tag applied to the . + + Tags allow a level in the lifetime hierarchy to be identified. + In most applications, tags are not necessary. + + + + + Fired when a new scope based on the current scope is beginning. + + + + + Fired when this scope is ending. + + + + + Fired when a resolve operation is beginning in this scope. + + + + + Create a new container. + + + + + Begin a new sub-scope. Instances created via the sub-scope + will be disposed along with it. + + A new lifetime scope. + + + + Begin a new sub-scope. Instances created via the sub-scope + will be disposed along with it. + + The tag applied to the . + A new lifetime scope. + + + + Begin a new nested scope, with additional components available to it. + Component instances created via the new scope + will be disposed along with it. + + Action on a + that adds component registations visible only in the new scope. + A new lifetime scope. + + + + Begin a new nested scope, with additional components available to it. + Component instances created via the new scope + will be disposed along with it. + + The tag applied to the . + Action on a + that adds component registations visible only in the new scope. + A new lifetime scope. + + + + Resolve an instance of the provided registration within the context. + + The registration. + Parameters for the instance. + + The component instance. + + + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Gets the service object of the specified type. + + An object that specifies the type of service object + to get. + + A service object of type .-or- null if there is + no service object of type . + + + + + The disposer associated with this container. Instances can be associated + with it manually if required. + + + + + Tag applied to the lifetime scope. + + The tag applied to this scope and the contexts generated when + it resolves component dependencies. + + + + Fired when a new scope based on the current scope is beginning. + + + + + Fired when this scope is ending. + + + + + Fired when a resolve operation is beginning in this scope. + + + + + Associates services with the components that provide them. + + + + + Base exception type thrown whenever the dependency resolution process fails. This is a fatal + exception, as Autofac is unable to 'roll back' changes to components that may have already + been made during the operation. For example, 'on activated' handlers may have already been + fired, or 'single instance' components partially constructed. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Gets a message that describes the current exception. + + + The error message that explains the reason for the exception, or an empty string(""). + + + + + Maintains a set of objects to dispose, and disposes them in the reverse order + from which they were added when the Disposer is itself disposed. + + + + + Provided on an object that will dispose of other objects when it is + itself disposed. + + + + + Adds an object to the disposer. When the disposer is + disposed, so will the object be. + + The instance. + + + + Contents all implement IDisposable. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Adds an object to the disposer. When the disposer is + disposed, so will the object be. + + The instance. + + + + Locates the lifetime to which instances of a component should be attached. + + + + + Given the most nested scope visible within the resolve operation, find + the scope for the component. + + The most nested visible scope. + The scope for the component. + + + + Represents a set of components and related functionality + packaged together. + + + + + Apply the module to the component registry. + + Component registry to apply configuration to. + + + + Determines when instances supporting IDisposable are disposed. + + + + + The lifetime scope does not dispose the instances. + + + + + The instances are disposed when the lifetime scope is disposed. + + + + + Determines whether instances are shared within a lifetime scope. + + + + + Each request for an instance will return a new object. + + + + + Each request for an instance will return the same object. + + + + + Defines a nested structure of lifetimes. + + + + + Try to retrieve an instance based on a GUID key. If the instance + does not exist, invoke to create it. + + Key to look up. + Creation function. + An instance. + + + + The root of the sharing hierarchy. + + + + + The parent of this node of the hierarchy, or null. + + + + + Attaches the instance's lifetime to the current lifetime scope. + + + + + Given the most nested scope visible within the resolve operation, find + the scope for the component. + + The most nested visible scope. + The scope for the component. + + + + Lifetime scope implementation. + + + + + Protects shared instances from concurrent access. Other members and the base class are threadsafe. + + + + + The tag applied to root scopes when no other tag is specified. + + + + + Create a lifetime scope for the provided components and nested beneath a parent. + + The tag applied to the . + Components used in the scope. + Parent scope. + + + + Create a root lifetime scope for the provided components. + + The tag applied to the . + Components used in the scope. + + + + Create a root lifetime scope for the provided components. + + Components used in the scope. + + + + Begin a new anonymous sub-scope. Instances created via the sub-scope + will be disposed along with it. + + A new lifetime scope. + + + + Begin a new tagged sub-scope. Instances created via the sub-scope + will be disposed along with it. + + The tag applied to the . + A new lifetime scope. + + + + Begin a new anonymous sub-scope, with additional components available to it. + Component instances created via the new scope + will be disposed along with it. + + Action on a + that adds component registations visible only in the new scope. + A new lifetime scope. + + IContainer cr = // ... + using (var lifetime = cr.BeginLifetimeScope(builder => { + builder.RegisterType<Foo>(); + builder.RegisterType<Bar>().As<IBar>(); }) + { + var foo = lifetime.Resolve<Foo>(); + } + + + + + Begin a new tagged sub-scope, with additional components available to it. + Component instances created via the new scope + will be disposed along with it. + + The tag applied to the . + Action on a + that adds component registations visible only in the new scope. + A new lifetime scope. + + IContainer cr = // ... + using (var lifetime = cr.BeginLifetimeScope("unitOfWork", builder => { + builder.RegisterType<Foo>(); + builder.RegisterType<Bar>().As<IBar>(); }) + { + var foo = lifetime.Resolve<Foo>(); + } + + + + + Resolve an instance of the provided registration within the context. + + The registration. + Parameters for the instance. + + The component instance. + + + + + + + Try to retrieve an instance based on a GUID key. If the instance + does not exist, invoke to create it. + + Key to look up. + Creation function. + An instance. + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Gets the service object of the specified type. + + An object that specifies the type of service object + to get. + + A service object of type .-or- null if there is + no service object of type . + + + + + The parent of this node of the hierarchy, or null. + + + + + The root of the sharing hierarchy. + + + + + The disposer associated with this container. Instances can be associated + with it manually if required. + + + + + Tag applied to the lifetime scope. + + The tag applied to this scope and the contexts generated when + it resolves component dependencies. + + + + Associates services with the components that provide them. + + + + + Fired when a new scope based on the current scope is beginning. + + + + + Fired when this scope is ending. + + + + + Fired when a resolve operation is beginning in this scope. + + + + + Attaches the component's lifetime to scopes matching a supplied expression. + + + + + Match scopes by comparing tags for equality. + + The tags applied to matching scopes. + + + + Given the most nested scope visible within the resolve operation, find + the scope for the component. + + The most nested visible scope. + The scope for the component. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to No scope with a Tag matching '{0}' is visible from the scope in which the instance was requested. This generally indicates that a component registered as per-HTTP request is being requested by a SingleInstance() component (or a similar scenario.) Under the web integration always request dependencies from the DependencyResolver.Current or ILifetimeScopeProvider.RequestLifetime, never from the container itself.. + + + + + Attaches the component's lifetime to the root scope. + + + + + Given the most nested scope visible within the resolve operation, find + the scope for the component. + + The most nested visible scope. + The scope for the component. + + + + A property identified by name. When applied to a reflection-based + component, the name will be matched against property names. + + + + + Create a with the specified constant value. + + The name of the property. + The property value. + + + + The name of the property. + + + + + Fired before the activation process to allow parameters to be changed or an alternative + instance to be provided. + + + + + Initializes a new instance of the class. + + The context. + The component. + The parameters. + + + + The context in which the activation is occurring. + + + + + The component providing the instance being activated. + + + + + The parameters supplied to the activator. + + + + + A service was requested that cannot be provided by the container. To avoid this exception, either register a component + to provide the required service, check for service registration using IsRegistered(), or use the ResolveOptional() + method to resolve an optional dependency. + + This exception is fatal. See for more information. + + + + Initializes a new instance of the class. + + The service. + + + + Initializes a new instance of the class. + + The service. + The inner exception. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The requested service '{0}' has not been registered. To avoid this exception, either register a component to provide the service, check for service registration using IsRegistered(), or use the ResolveOptional() method to resolve an optional dependency.. + + + + + Information about the ocurrence of a component being registered + with a container. + + + + + Create a new instance with a valid container and component registration. + + The container into which the registration + was made. + The component registration. + + + + The container into which the registration was made. + + + + + The component registration. + + + + + Describes a logical component within the container. + + + + + Create a new component registration. + + Unique identifier for the component. + Activator used to activate instances. + Determines how the component will be associated with its lifetime. + Whether the component is shared within its lifetime scope. + Whether the component instances are disposed at the end of their lifetimes. + Services the component provides. + Data associated with the component. + + + + Create a new component registration. + + Unique identifier for the component. + Activator used to activate instances. + Determines how the component will be associated with its lifetime. + Whether the component is shared within its lifetime scope. + Whether the component instances are disposed at the end of their lifetimes. + Services the component provides. + Data associated with the component. + The component registration upon which this registration is based. + + + + Called by the container when an instance is required. + + The context in which the instance will be activated. + Parameters for activation. + + + + Called by the container once an instance has been constructed. + + The context in which the instance was activated. + The parameters supplied to the activator. + The instance. + + + + Called by the container once an instance has been fully constructed, including + any requested objects that depend on the instance. + + The context in which the instance was activated. + The parameters supplied to the activator. + The instance. + + + + Describes the component in a human-readable form. + + A description of the component. + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + The component registration upon which this registration is based. + If this registration was created directly by the user, returns this. + + + + + A unique identifier for this component (shared in all sub-contexts.) + This value also appears in Services. + + + + + The activator used to create instances. + + + + + The lifetime associated with the component. + + + + + Whether the component instances are shared or not. + + + + + Whether the instances of the component should be disposed by the container. + + + + + The services provided by the component. + + + + + Additional data associated with the component. + + + + + Fired when a new instance is required. The instance can be + provided in order to skip the regular activator, by setting the Instance property in + the provided event arguments. + + + + + Fired when a new instance is being activated. The instance can be + wrapped or switched at this time by setting the Instance property in + the provided event arguments. + + + + + Fired when the activation process for a new instance is complete. + + + + + Catch circular dependencies that are triggered by post-resolve processing (e.g. 'OnActivated') + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Circular component dependency detected: {0}.. + + + + + Looks up a localized string similar to Probable circular dependency between factory-scoped components. Chain includes '{0}'. + + + + + An is a component context that sequences and monitors the multiple + activations that go into producing a single requested object graph. + + + + + Get or create and share an instance of in the . + + The scope in the hierarchy in which the operation will begin. + The component to resolve. + Parameters for the component. + The component instance. + + + + Raised when the entire operation is complete. + + + + + Raised when an instance is looked up within the operation. + + + + + A is a component context that sequences and monitors the multiple + activations that go into producing a single requested object graph. + + + + + Create an instance of in the provided scope. + + The most nested scope in which to begin the operation. The operation + can move upward to less nested scopes as components with wider sharing scopes are activated + + + + Resolve an instance of the provided registration within the context. + + The registration. + Parameters for the instance. + + The component instance. + + + + + + + Execute the complete resolve operation. + + + + + Continue building the object graph by instantiating in the + current . + + The current scope of the operation. + The component to activate. + The parameters for the component. + The resolved instance. + + + + + Associates services with the components that provide them. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to An exception was thrown while executing a resolve operation. See the InnerException for details.. + + + + + Looks up a localized string similar to Probable circular dependency between factory-scoped components. Chain includes '{0}'. + + + + + Looks up a localized string similar to This resolve operation has already ended. When registering components using lambdas, the IComponentContext 'c' parameter to the lambda cannot be stored. Instead, either resolve IComponentContext again from 'c', or resolve a Func<> based factory to create subsequent components from.. + + + + + Identifies a service according to a type to which it can be assigned. + + + + + Initializes a new instance of the class. + + Type of the service. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + The parameter is null. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Return a new service of the same kind, but carrying + as the . + + The new service type. + A new service with the service type. + + + + Gets the type of the service. + + The type of the service. + + + + Gets a human-readable description of the service. + + The description. + + + + A handy unique service identifier type - all instances will be regarded as unequal. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The id. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + The parameter is null. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Provides a programmer-readable description of the identifying feature of the service. + + + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + + + Generates activators for open generic types. + + + + + Represents a dependency that can be released by the dependent component. + + The service provided by the dependency. + + + Autofac automatically provides instances of whenever the + service is registered. + + + It is not necessary for , or the underlying component, to implement . + Disposing of the object is the correct way to handle cleanup of the dependency, + as this will dispose of any other components created indirectly as well. + + + When is resolved, a new is created for the + underlying , and tagged with the service matching , + generally a . This means that shared instances can be tied to this + scope by registering them as InstancePerMatchingLifetimeScope(new TypedService(typeof(T))). + + + + The component D below is disposable and implements IService: + + public class D : IService, IDisposable + { + // ... + } + + The dependent component C can dispose of the D instance whenever required by taking a dependency on + : + + public class C + { + IService _service; + + public C(Owned<IService> service) + { + _service = service; + } + + void DoWork() + { + _service.Value.DoSomething(); + } + + void OnFinished() + { + _service.Dispose(); + } + } + + In general, rather than depending on directly, components will depend on + System.Func<Owned<T>> in order to create and dispose of other components as required. + + + + + Create an instance of . + + The value representing the instance. + An IDisposable interface through which ownership can be released. + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + The owned value. + + + + + Generates registrations for services of type whenever the service + T is available. + + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + + + When implemented by a component, an instance of the component will be resolved + and started as soon as the container is built. Autofac will not call the Start() + method when subsequent instances are resolved. If this behavior is required, use + an OnActivated() event handler instead. + + + For equivalent "Stop" functionality, implement . Autofac + will always dispose a component before any of its dependencies (except in the presence + of circular dependencies, in which case the components in the cycle are disposed in + reverse-construction order.) + + + + + Perform once-off startup processing. + + + + + Base class for user-defined modules. Modules can add a set of releated components + to a container () or attach cross-cutting functionality + to other components (. + Modules are given special support in the XML configuration feature - see + http://code.google.com/p/autofac/wiki/StructuringWithModules. + + Provides a user-friendly way to implement + via . + + Defining a module: + + public class DataAccessModule : Module + { + public string ConnectionString { get; set; } + + public override void Load(ContainerBuilder moduleBuilder) + { + moduleBuilder.RegisterGeneric(typeof(MyRepository<>)) + .As(typeof(IRepository<>)) + .InstancePerMatchingLifetimeScope(WebLifetime.Request); + + moduleBuilder.Register(c => new MyDbConnection(ConnectionString)) + .As<IDbConnection>() + .InstancePerMatchingLifetimeScope(WebLifetime.Request); + } + } + + Using the module: + + var builder = new ContainerBuilder(); + builder.RegisterModule(new DataAccessModule { ConnectionString = "..." }); + var container = builder.Build(); + var customers = container.Resolve<IRepository<Customer>>(); + + + + + + Apply the module to the component registry. + + Component registry to apply configuration to. + + + + Override to add registrations to the container. + + + Note that the ContainerBuilder parameter is unique to this module. + + The builder through which components can be + registered. + + + + Override to attach module-specific functionality to a + component registration. + + This method will be called for all existing and future component + registrations - ordering is not important. + The component registry. + The registration to attach functionality to. + + + + Override to perform module-specific processing on a registration source. + + This method will be called for all existing and future sources + - ordering is not important. + The component registry into which the source was added. + The registration source. + + + + The assembly in which the concrete module type is located. To avoid bugs whereby deriving from a module will + change the target assembly, this property can only be used by modules that inherit directly from + . + + + + + Configure the component so that instances are never disposed by the container. + + A registration builder allowing further configuration of the component. + + + + Configure the component so that instances that support IDisposable are + disposed by the container (default.) + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + gets a new, unique instance (default.) + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + gets the same, shared instance. + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a single ILifetimeScope gets the same, shared instance. Dependent components in + different lifetime scopes will get different instances. + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() within + a ILifetimeScope tagged with any of the provided tags value gets the same, shared instance. + Dependent components in lifetime scopes that are children of the tagged scope will + share the parent's instance. If no appropriately tagged scope can be found in the + hierarchy an is thrown. + + Tag applied to matching lifetime scopes. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + The service type provided by the component. + Key to associate with the component. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + Key to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. The generic parameter(s) to As() + will be exposed as TypedService instances. + + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. The generic parameter(s) to As() + will be exposed as TypedService instances. + + Service type. + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. The generic parameter(s) to As() + will be exposed as TypedService instances. + + Service type. + Service type. + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. + + Service types to expose. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. + + Services to expose. + A registration builder allowing further configuration of the component. + + + + Provide a textual name that can be used to retrieve the component. + + Named service to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Provide a textual name that can be used to retrieve the component. + + Named service to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Provide a key that can be used to retrieve the component. + + Key to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Provide a key that can be used to retrieve the component. + + Key to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Add a handler for the Preparing event. This event allows manipulating of the parameters + that will be provided to the component. + + The event handler. + A registration builder allowing further configuration of the component. + + + + Add a handler for the Activating event. + + The event handler. + A registration builder allowing further configuration of the component. + + + + Add a handler for the Activated event. + + The event handler. + A registration builder allowing further configuration of the component. + + + + Configure the component so that any properties whose types are registered in the + container will be wired to instances of the appropriate service. + + Set wiring options such as circular dependency wiring support. + A registration builder allowing further configuration of the component. + + + + Associates data with the component. + + Key by which the data can be located. + The data value. + A registration builder allowing further configuration of the component. + + + + Associates data with the component. + + The extended properties to associate with the component. + A registration builder allowing further configuration of the component. + + + + Associates data with the component. + + A type with properties whose names correspond to the + property names to configure. + A registration builder allowing further configuration of the component. + + + + The activator data. + + + + + The registration style. + + + + + The registration data. + + + + + Data common to all registrations made in the container, both direct (IComponentRegistration) + and dynamic (IRegistrationSource.) + + + + + Construct a RegistrationData instance. + + The default service that will be used if no others + are added. + + + + Add multiple services for the registration, overriding the default. + + The services to add. + If an empty collection is specified, this will still + clear the default service. + + + + Add a service to the registration, overriding the default. + + The service to add. + + + + Copies the contents of another RegistrationData object into this one. + + The data to copy. + When true, the default service + will be changed to that of the other. + + Thrown if is . + + + + + Empties the configured services. + + + + + The services explicitly assigned to the component. + + + + + The instance ownership assigned to the component. + + + + + The lifetime assigned to the component. + + + + + The sharing mode assigned to the component. + + + + + Extended properties assigned to the component. + + + + + Handlers for the Preparing event. + + + + + Handlers for the Activating event. + + + + + Handlers for the Activated event. + + + + + Adds registration syntax to the type. + + + + + Add a component to the container. + + The builder to register the component with. + The component to add. + + + + Add a registration source to the container. + + The builder to register the registration source via. + The registration source to add. + + + + Register an instance as a component. + + The type of the instance. + Container builder. + The instance to register. + Registration builder allowing the registration to be configured. + If no services are explicitly specified for the instance, the + static type will be used as the default service (i.e. *not* instance.GetType()). + + + + Register a component to be created through reflection. + + The type of the component implementation. + Container builder. + Registration builder allowing the registration to be configured. + + + + Register a component to be created through reflection. + + The type of the component implementation. + Container builder. + Registration builder allowing the registration to be configured. + + + + Register a delegate as a component. + + The type of the instance. + Container builder. + The delegate to register. + Registration builder allowing the registration to be configured. + + + + Register a delegate as a component. + + The type of the instance. + Container builder. + The delegate to register. + Registration builder allowing the registration to be configured. + + + + Register an un-parameterised generic type, e.g. Repository<>. + Concrete types will be made as they are requested, e.g. with Resolve<Repository<int>>(). + + Container builder. + The open generic implementation type. + Registration builder allowing the registration to be configured. + + + + Specifies that the component being registered should only be made the default for services + that have not already been registered. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Specifies that the components being registered should only be made the default for services + that have not already been registered. + + Registration limit type. + Registration style. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Register the types in an assembly. + + Container builder. + The assemblies from which to register types. + Registration builder allowing the registration to be configured. + + + + Register the types in a list. + + Container builder. + The types to register. + Registration builder allowing the registration to be configured. + + + + Specifies a subset of types to register from a scanned assembly. + + Registration limit type. + Registration style. + Activator data type. + Registration to filter types from. + Predicate that returns true for types to register. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a service. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Function mapping types to services. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a service. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Function mapping types to services. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a service. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Function mapping types to services. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a service. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Function mapping types to services. + Registration builder allowing the registration to be configured. + + + + Specifies that a type from a scanned assembly provides its own concrete type as a service. + + Registration limit type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Specifies that a type provides its own concrete type as a service. + + Registration limit type. + Activator data type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Specifies that a type provides its own concrete type as a service. + + Registration limit type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Specify how a type from a scanned assembly provides metadata. + + Registration limit type. + Registration style. + Activator data type. + Registration to set metadata on. + A function mapping the type to a list of metadata items. + Registration builder allowing the registration to be configured. + + + + Use the properties of an attribute (or interface implemented by an attribute) on the scanned type + to provide metadata values. + + Inherited attributes are supported; however, there must be at most one matching attribute + in the inheritance chain. + The attribute applied to the scanned type. + Registration to set metadata on. + Registration builder allowing the registration to be configured. + + + + Specify how a type from a scanned assembly provides metadata. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Key of the metadata item. + A function retrieving the value of the item from the component type. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a named service. + + Registration to set service mapping on. + Service type provided by the component. + Function mapping types to service names. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a named service. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Service type provided by the component. + Function mapping types to service names. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a keyed service. + + Registration to set service mapping on. + Service type provided by the component. + Function mapping types to service keys. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a keyed service. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Service type provided by the component. + Function mapping types to service keys. + Registration builder allowing the registration to be configured. + + + + Specifies that a type from a scanned assembly is registered as providing all of its + implemented interfaces. + + Registration limit type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Specifies that a type is registered as providing all of its implemented interfaces. + + Registration limit type. + Activator data type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Specifies that a type is registered as providing all of its implemented interfaces. + + Registration limit type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Set the policy used to find candidate constructors on the implementation type. + + Registration limit type. + Activator data type. + Registration style. + Registration to set policy on. + Policy to be used when searching for constructors. + A registration builder allowing further configuration of the component. + + + + Set the policy used to find candidate constructors on the implementation type. + + Registration limit type. + Activator data type. + Registration style. + Registration to set policy on. + A function that returns the constructors to select from. + A registration builder allowing further configuration of the component. + + + + Set the policy used to select from available constructors on the implementation type. + + Registration limit type. + Activator data type. + Registration style. + Registration to set policy on. + Constructor signature to match. + A registration builder allowing further configuration of the component. + + + + Set the policy used to select from available constructors on the implementation type. + + Registration limit type. + Registration style. + Activator data type. + Registration to set policy on. + Policy to be used when selecting a constructor. + A registration builder allowing further configuration of the component. + + + + Set the policy used to select from available constructors on the implementation type. + + Registration limit type. + Activator data type. + Registration style. + Registration to set policy on. + Expression demonstrating how the constructor is called. + A registration builder allowing further configuration of the component. + + + + Configure an explicit value for a constructor parameter. + + Registration limit type. + Registration style. + Activator data type. + Registration to set parameter on. + Name of a constructor parameter on the target type. + Value to supply to the parameter. + A registration builder allowing further configuration of the component. + + + + Configure an explicit value for a constructor parameter. + + Registration limit type. + Registration style. + Activator data type. + Registration to set parameter on. + The parameter to supply to the constructor. + A registration builder allowing further configuration of the component. + + + + Configure an explicit value for a constructor parameter. + + Registration limit type. + Registration style. + Activator data type. + Registration to set parameter on. + A predicate selecting the parameter to set. + + A registration builder allowing further configuration of the component. + + + + Configure explicit values for constructor parameters. + + Registration limit type. + Registration style. + Activator data type. + Registration to set parameter on. + The parameters to supply to the constructor. + A registration builder allowing further configuration of the component. + + + + Configure an explicit value for a property. + + Registration limit type. + Registration style. + Activator data type. + Registration to set property on. + Name of a property on the target type. + Value to supply to the property. + A registration builder allowing further configuration of the component. + + + + Configure an explicit value for a property. + + Registration limit type. + Registration style. + Activator data type. + Registration to set parameter on. + The property to supply. + A registration builder allowing further configuration of the component. + + + + Configure explicit values for properties. + + Registration limit type. + Registration style. + Activator data type. + Registration to set parameter on. + The properties to supply. + A registration builder allowing further configuration of the component. + + + + Sets the target of the registration (used for metadata generation.) + + The type of the limit. + The type of the activator data. + Registration style + Registration to set target for. + The target. + + Registration builder allowing the registration to be configured. + + + Thrown if or is . + + + + + Provide a handler to be called when the component is registered. + + Registration limit type. + Registration style. + Activator data type. + Registration add handler to. + The handler. + Registration builder allowing the registration to be configured. + + + + Provide a handler to be called when the component is registred. + + Registration limit type. + Registration style. + Registration add handler to. + The handler. + Registration builder allowing the registration to be configured. + + + + Specifies that a type from a scanned assembly is registered if it implements an interface + that closes the provided open generic interface type. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + The open generic interface or base class type for which implementations will be found. + Registration builder allowing the registration to be configured. + + + + Filters the scanned types to include only those assignable to the provided + type. + + Registration limit type. + Registration style. + Activator data type. + Registration to filter types from. + The type or interface which all classes must be assignable from. + Registration builder allowing the registration to be configured. + + + + Filters the scanned types to include only those assignable to the provided + type. + + Registration to filter types from. + The type or interface which all classes must be assignable from. + Registration builder allowing the registration to be configured. + + + + Filters the scanned types to exclude the provided type. + + Registration to filter types from. + The concrete type to exclude. + Registration builder allowing the registration to be configured. + + + + Filters the scanned types to exclude the provided type, providing specific configuration for + the excluded type. + + Registration to filter types from. + Registration for the excepted type. + The concrete type to exclude. + Registration builder allowing the registration to be configured. + + + + Filters the scanned types to include only those in the namespace of the provided type + or one of its sub-namespaces. + + Registration to filter types from. + A type in the target namespace. + Registration builder allowing the registration to be configured. + + + + Filters the scanned types to include only those in the provided namespace + or one of its sub-namespaces. + + Registration limit type. + Registration style. + Activator data type. + Registration to filter types from. + The namespace from which types will be selected. + Registration builder allowing the registration to be configured. + + + + Adapt all components implementing service + to provide using the provided + function. + + Service type to adapt from. + Service type to adapt to. Must not be the + same as . + Container builder. + Function adapting to + service , given the context and parameters. + + + + Adapt all components implementing service + to provide using the provided + function. + + Service type to adapt from. + Service type to adapt to. Must not be the + same as . + Container builder. + Function adapting to + service , given the context. + + + + Adapt all components implementing service + to provide using the provided + function. + + Service type to adapt from. + Service type to adapt to. Must not be the + same as . + Container builder. + Function adapting to + service . + + + + Decorate all components implementing open generic service . + The and parameters must be different values. + + Container builder. + Service type being decorated. Must be an open generic type. + Service key or name associated with the components being decorated. + Service key or name given to the decorated components. + The type of the decorator. Must be an open generic type, and accept a parameter + of type , which will be set to the instance being decorated. + + + + Decorate all components implementing service + using the provided function. + The and parameters must be different values. + + Service type being decorated. + Container builder. + Function decorating a component instance that provides + , given the context and parameters. + Service key or name associated with the components being decorated. + Service key or name given to the decorated components. + + + + Decorate all components implementing service + using the provided function. + The and parameters must be different values. + + Service type being decorated. + Container builder. + Function decorating a component instance that provides + , given the context. + Service key or name associated with the components being decorated. + Service key or name given to the decorated components. + + + + Decorate all components implementing service + using the provided function. + The and parameters must be different values. + + Service type being decorated. + Container builder. + Function decorating a component instance that provides + . + Service key or name associated with the components being decorated. + Service key or name given to the decorated components. + + + + Run a supplied action instead of disposing instances when they're no + longer required. + + Registration limit type. + Activator data type. + Registration style. + Registration to set release action for. + An action to perform instead of disposing the instance. + Registration builder allowing the registration to be configured. + Only one release action can be configured per registration. + + + + Wraps a registration in an implicit and automatically + activates the registration after the container is built. + + Registration to set release action for. + Registration limit type. + Activator data type. + Registration style. + A registration builder allowing further configuration of the component. + + + While you can implement an to perform some logic at + container build time, sometimes you need to just activate a registered component and + that's it. This extension allows you to automatically activate a registration on + container build. No additional logic is executed and the resolved instance is not held + so container disposal will end up disposing of the instance. + + + Depending on how you register the lifetime of the component, you may get an exception + when you build the container - components that are scoped to specific lifetimes (like + ASP.NET components scoped to a request lifetime) will fail to resolve because the + appropriate lifetime is not available. + + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The instance registration '{0}' can support SingleInstance() sharing only.. + + + + + Looks up a localized string similar to A metadata attribute of type {0} was not found on {1}.. + + + + + Looks up a localized string similar to More than one metadata attribute of type {0} was found on {1}.. + + + + + Looks up a localized string similar to No matching constructor exists on type '{0}'.. + + + + + An activator builder with no parameters. + + + + + Return the provided activator. + + The activator to return. + + + + Gets the activator. + + + + + Registration style for individual components. + + + + + The id used for the registration. + + + + + Handlers to notify of the component registration event. + + + + + By default, new registrations override existing registrations as defaults. + If set to true, new registrations will not change existing defaults. + + + + + The component upon which this registration is based. + + + + + Used to build an from component registrations. + + + + var builder = new ContainerBuilder(); + + builder.RegisterType<Logger>() + .As<ILogger>() + .SingleInstance(); + + builder.Register(c => new MessageHandler(c.Resolve<ILogger>())); + + var container = builder.Build(); + // resolve components from container... + + + Most functionality is accessed + via extension methods in . + + + + + + Register a callback that will be invoked when the container is configured. + + This is primarily for extending the builder syntax. + Callback to execute. + + + + Create a new container with the component registrations that have been made. + + Options that influence the way the container is initialised. + + Build can only be called once per + - this prevents ownership issues for provided instances. + Build enables support for the relationship types that come with Autofac (e.g. + Func, Owned, Meta, Lazy, IEnumerable.) To exclude support for these types, + first create the container, then call Update() on the builder. + + A new container with the configured component registrations. + + + + Configure an existing container with the component registrations + that have been made. + + + Update can only be called once per + - this prevents ownership issues for provided instances. + + An existing container to make the registrations in. + + + + Configure an existing container with the component registrations + that have been made and allows additional build options to be specified. + + + Update can only be called once per + - this prevents ownership issues for provided instances. + + An existing container to make the registrations in. + Options that influence the way the container is updated. + + + + Configure an existing registry with the component registrations + that have been made. + + + Update can only be called once per + - this prevents ownership issues for provided instances. + + An existing registry to make the registrations in. + + + + A parameter identified by name. When applied to a reflection-based + component, will be matched against + the name of the component's constructor arguments. When applied to + a delegate-based component, the parameter can be accessed using + . + + + Component with parameter: + + public class MyComponent + { + public MyComponent(int amount) { ... } + } + + Providing the parameter: + + var builder = new ContainerBuilder(); + builder.RegisterType<MyComponent>(); + var container = builder.Build(); + var myComponent = container.Resolve<MyComponent>(new NamedParameter("amount", 123)); + + + + + + Create a with the specified constant value. + + The name of the parameter. + The parameter value. + + + + The name of the parameter. + + + + + Extension methods that simplify extraction of parameter values from + an where T is . + Each method returns the first matching parameter value, or throws an exception if + none is provided. + + + At configuration time, delegate registrations can retrieve parameter values using + the methods , and : + + builder.Register((c, p) => new FtpClient(p.Named<string>("server"))); + + These parameters can be provided at resolution time: + + container.Resolve<FtpClient>(new NamedParameter("server", "ftp.example.com")); + + Alternatively, the parameters can be provided via a Generated Factory - http://code.google.com/p/autofac/wiki/DelegateFactories. + + + + + Retrieve a named parameter value from a instance. + + The type to which the returned value will be cast. + The available parameters to choose from. + The name of the parameter to select. + The value of the selected parameter. + + + + + Retrieve a positional parameter value from a instance. + + The type to which the returned value will be cast. + The available parameters to choose from. + The zero-based position of the parameter to select. + The value of the selected parameter. + The position value is the one associated with the parameter when + it was constructed, not its index into the + sequence. + + + + + Retrieve a typed parameter value from a instance. + + The type to which the returned value will be cast. + The available parameters to choose from. + The value of the selected parameter. + + + + + A parameter that is identified according to an integer representing its + position in an argument list. When applied to a reflection-based + component, will be matched against + the indices of the component's constructor arguments. When applied to + a delegate-based component, the parameter can be accessed using + . + + + Component with parameter: + + public class MyComponent + { + public MyComponent(int amount) { ... } + } + + Providing the parameter: + + var builder = new ContainerBuilder(); + builder.RegisterType<MyComponent>(); + var container = builder.Build(); + var myComponent = container.Resolve<MyComponent>(new PositionalParameter(0, 123)); + + + + + + Construct a positional parameter with the specified constant value. + + The zero-based position of the parameter. + The parameter value. + + + + The zero-based position of the parameter. + + + + + Adds syntactic convenience methods to the interface. + + + + + Set any properties on that can be + resolved in the context. + + Type of instance. Used only to provide method chaining. + The context from which to resolve the service. + The instance to inject properties into. + . + + + + Set any null-valued properties on that can be + resolved by the container. + + Type of instance. Used only to provide method chaining. + The context from which to resolve the service. + The instance to inject properties into. + . + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Name of the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Name of the service. + The parameters. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Name of the service. + The parameters. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Key of the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Key of the service. + The parameters. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Key of the service. + The parameters. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The service to retrieve. + The context from which to resolve the service. + The component instance that provides the service. + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Parameters for the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Parameters for the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + The service type. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Parameters for the service. + The service type. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Parameters for the service. + The service type. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + The service name. + Type of the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Parameters for the service. + The service name. + Type of the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Parameters for the service. + The service name. + Type of the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Key of the service. + Type of the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Key of the service. + Type of the service. + The parameters. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Key of the service. + Type of the service. + The parameters. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + The service to resolve. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Parameters for the service. + The service to resolve. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Parameters for the service. + The service to resolve. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The name of the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The name of the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The name of the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The name of the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The name of the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The key of the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The type of the service. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The type of the service. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The type of the service. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The service. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The service. + Parameters for the service. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The service. + Parameters for the service. + + The component instance that provides the service, or null. + + + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The service to test for the registration of. + True if the service is registered. + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The service to test for the registration of. + True if the service is registered. + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The name of the service to test for the registration of. + Type type of the service to test for the registration of. + True if the service is registered. + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The name of the service to test for the registration of. + Type type of the service to test for the registration of. + True if the service is registered. + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The key of the service to test for the registration of. + Type type of the service to test for the registration of. + True if the service is registered. + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The key of the service to test for the registration of. + Type type of the service to test for the registration of. + True if the service is registered. + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The service to test for the registration of. + True if the service is registered. + + + + Try to retrieve a service from the context. + + The context from which to resolve the service. + The service to resolve. + The resulting component instance providing the service, or null. + The parameters. + + True if a component providing the service is available. + + + + Thrown if is . + + + + + Try to retrieve a service from the context. + + The context from which to resolve the service. + The service to resolve. + The resulting component instance providing the service, or null. + + True if a component providing the service is available. + + + + + + Try to retrieve a service from the context. + + The context from which to resolve the service. + The service type to resolve. + The resulting component instance providing the service, or null. + + True if a component providing the service is available. + + + + + + Try to retrieve a service from the context. + + The service type to resolve. + The context from which to resolve the service. + The resulting component instance providing the service, or default(T). + + True if a component providing the service is available. + + + + + + Try to retrieve a service from the context. + + The context from which to resolve the service. + The name of the service to resolve. + The type of the service to resolve. + The resulting component instance providing the service, or null. + + True if a component providing the service is available. + + + + + + Try to retrieve a service from the context. + + The context from which to resolve the service. + The key of the service to resolve. + The type of the service to resolve. + The resulting component instance providing the service, or null. + + True if a component providing the service is available. + + + + + + Flexible parameter type allows arbitrary values to be retrieved + from the resolution context. + + + + + Create an instance of the ResolvedParameter class. + + A predicate that determines which parameters on a constructor will be supplied by this instance. + A function that supplies the parameter value given the context. + + + + Returns true if the parameter is able to provide a value to a particular site. + + Constructor, method, or property-mutator parameter. + The component context in which the value is being provided. + If the result is true, the valueProvider parameter will + be set to a function that will lazily retrieve the parameter value. If the result is false, + will be set to null. + True if a value can be supplied; otherwise, false. + + + + Construct a that will match parameters of type + and resolve for those parameters an implementation + registered with the name . + + The type of the parameter to match. + The name of the matching service to resolve. + A configured instance. + + + + + + Construct a that will match parameters of type + and resolve for those parameters an implementation + registered with the key . + + The type of the parameter to match. + The key of the matching service to resolve. + A configured instance. + + + + A parameter that can supply values to sites that exactly + match a specified type. When applied to a reflection-based + component, will be matched against + the types of the component's constructor arguments. When applied to + a delegate-based component, the parameter can be accessed using + . + + + Component with parameter: + + public class MyComponent + { + public MyComponent(int amount) { ... } + } + + Providing the parameter: + + var builder = new ContainerBuilder(); + builder.RegisterType<MyComponent>(); + var container = builder.Build(); + var myComponent = container.Resolve<MyComponent>(new TypedParameter(typeof(int), 123)); + + + + + + Create a typed parameter with the specified constant value. + + The exact type to match. + The parameter value. + + + + Shortcut for creating + by using the + + type to be used for the parameter + The parameter value. + new typed parameter + + + + The type against which targets are matched. + + + + + Extends with methods that are useful in + building scanning rules for . + + + + + Returns true if this type is in the namespace + or one of its sub-namespaces. + + The type to test. + The namespace to test. + True if this type is in the namespace + or one of its sub-namespaces; otherwise, false. + + + + Returns true if this type is in the same namespace as + or one of its sub-namespaces. + + The type to test. + True if this type is in the same namespace as + or one of its sub-namespaces; otherwise, false. + + + Determines whether the candidate type supports any base or + interface that closes the provided generic type. + + + + + + + Determines whether this type is assignable to . + + The type to test assignability to. + True if this type is assignable to references of type + ; otherwise, False. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The type '{0}' is not an open generic class or interface type.. + + + + + Extension methods for . + + + + + Safely returns the set of loadable types from an assembly. + + The from which to load types. + + The set of types from the , or the subset + of types that could be loaded if there was any error. + + + Thrown if is . + + + + + Helper methods used throughout the codebase. + + + + + Enforce that an argument is not null. Returns the + value if valid so that it can be used inline in + base initialiser syntax. + + + + + + + + + Enforce that sequence does not contain null. Returns the + value if valid so that it can be used inline in + base initialiser syntax. + + + The value. + The name. + + + + + Enforces that the provided object is non-null. + + + The value. + + + + + Enforce that an argument is not null or empty. Returns the + value if valid so that it can be used inline in + base initialiser syntax. + + The value. + The description. + + + + + Enforce that the argument is a delegate type. + + The type to test. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The argument '{0}' cannot be empty.. + + + + + Looks up a localized string similar to The object of type '{0}' cannot be null.. + + + + + Looks up a localized string similar to Type {0} returns void.. + + + + + Looks up a localized string similar to The sequence provided as argument '{0}' cannot contain null elements.. + + + + + Looks up a localized string similar to Type {0} is not a delegate type.. + + + + + Extension methods for reflection-related types. + + + + + Maps from a property-set-value parameter to the declaring property. + + Parameter to the property setter. + The property info on which the setter is specified. + True if the parameter is a property setter. + + + + Get a PropertyInfo object from an expression of the form + x => x.P. + + Type declaring the property. + The type of the property. + Expression mapping an instance of the + declaring type to the property value. + Property info. + + + + Get the MethodInfo for a method called in the + expression. + + Type on which the method is called. + Expression demonstrating how the method appears. + The method info for the called method. + + + + Gets the for the new operation called in the expression. + + The type on which the constructor is called. + Expression demonstrating how the constructor is called. + The for the called constructor. + + + + Retrieves a custom attribute of a specified type that is applied to a specified member, + and optionally inspects the ancestors of that member. + + The type of attribute to search for. + The member to inspect. + true to inspect the ancestors of element; otherwise, false. + A custom attribute that matches , or null if no such attribute is found. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The provided expression must be of the form () =>new X(), but the provided expression was {0}.. + + + + + Looks up a localized string similar to The provided expression must be of the form x =>x.M(), but the provided expression was {0}.. + + + + + Looks up a localized string similar to The provided expression must be of the form x =>x.P, but the provided expression was {0}.. + + + + + Adapts an action to the interface. + + + + + Joins the strings into one single string interspersing the elements with the separator (a-la + System.String.Join()). + + The elements. + The separator. + The joined string. + + + + Appends the item to the specified sequence. + + + The sequence. + The trailing item. + + + + + Prepends the item to the specified sequence. + + + The sequence. + The leading item. + + + + Returns the first concrete interface supported by the candidate type that + closes the provided open generic service type. + The type that is being checked for the interface. + The open generic type to locate. + The type of the interface. + + + + Looks for an interface on the candidate type that closes the provided open generic interface type. + + The type that is being checked for the interface. + The open generic service type to locate. + True if a closed implementation was found; otherwise false. + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + + + Signal attribute for static analysis that indicates a helper method is + validating arguments for . + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Delegate Support (Func<T>and Custom Delegates). + + + + diff --git a/dep/Autofac.3.2.0/lib/portable-win+net40+sl50+wp8/Autofac.dll b/dep/Autofac.3.2.0/lib/portable-win+net40+sl50+wp8/Autofac.dll new file mode 100644 index 0000000000000000000000000000000000000000..a4cdaf101da51c7fda5a864bdcb782ed59b32eca GIT binary patch literal 200704 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�u7hi~s40nNB_kAkB$|X4 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

o5e0`UF2(TteF3IwyDgW;p2B%+jKp@s^lv9V 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

!(v5!OG#nyn(L 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 m?{D(Z`y!}3J`1cj + + + Autofac + + + +

+ Service used as a "flag" to indicate a particular component should be + automatically activated on container build. + + + + + Services are the lookup keys used to locate component instances. + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Implements the operator ==. + + The left operand. + The right operand. + The result of the operator. + + + + Implements the operator !=. + + The left operand. + The right operand. + The result of the operator. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + The parameter is null. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Gets a human-readable description of the service. + + The description. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is not + and is an ; otherwise, . + + + + All services of this type are considered "equal." + + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . Always 0 for this type. + + + + All services of this type are considered "equal" and use the same hash code. + + + + + + Gets the service description. + + + Always returns AutoActivate. + + + + + Used with the WithMetadata configuration method to + associate key-value pairs with an . + + Interface with properties whose names correspond to + the property keys. + This feature was suggested by OJ Reeves (@TheColonial). + + + + Set one of the property values. + + The type of the property. + An expression that accesses the property to set. + The property value to set. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Cannot choose between multiple constructors with equal length {0} on type '{1}'. Select the constructor explicitly, with the UsingConstructor() configuration method, when the component is registered.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to {0} ---> {1} (See inner exception for details.). + + + + + Interface providing fluent syntax for chaining module registrations. + + + + + Add a module to the container. + + The module to add. + + The to allow + additional chained module registrations. + + + + + Basic implementation of the + interface allowing registration of modules into a + in a fluent format. + + + + + The into which registrations will be made. + + + + + Initializes a new instance of the class. + + + The into which registrations will be made. + + + Thrown if is . + + + + + Add a module to the container. + + The module to add. + + The to allow + additional chained module registrations. + + + Thrown if is . + + + + + Support the System.Lazy<T, TMetadata> + types automatically whenever type T is registered with the container. + Metadata values come from the component registration's metadata. + When a dependency of a lazy type is used, the instantiation of the underlying + component will be delayed until the Value property is first accessed. + + + + + Allows registrations to be made on-the-fly when unregistered + services are requested (lazy registrations.) + + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + If the source is queried for service s, and it returns a component that implements both s and s', then it + will not be queried again for either s or s'. This means that if the source can return other implementations + of s', it should return these, plus the transitive closure of other components implementing their + additional services, along with the implementation of s. It is not an error to return components + that do not implement . + + + + + Gets whether the registrations provided by this source are 1:1 adapters on top + of other components (I.e. like Meta, Func or Owned.) + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Lazy<T, TMetadata> Support. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The type '{0}' cannot be used as a metadata view. A metadata view must be a concrete class with a parameterless or dictionary constructor.. + + + + + Looks up a localized string similar to Export metadata for '{0}' is missing and no default value was supplied.. + + + + + Provides a value along with metadata describing the value. + + The type of the value. + An interface to which metadata values can be bound. + + + + Create a new instance. + + The value described by the instance. + The metadata describing the value. + + + + The value described by . + + + + + Metadata describing the value. + + + + + Support the + types automatically whenever type T is registered with the container. + Metadata values come from the component registration's metadata. + + + + + Finds constructors that match a finder function. + + + + + Find suitable constructors from which to select. + + + + + Finds suitable constructors on the target type. + + Type to search for constructors. + Suitable constructors. + + + + Initializes a new instance of the class. + + + Default to selecting all public constructors. + + + + + Initializes a new instance of the class. + + The finder function. + + + + Finds suitable constructors on the target type. + + Type to search for constructors. + Suitable constructors. + + + + Extension methods for configuring the . + + + + + Fluent method for setting the registration configuration on . + + The registration source to configure. + A configuration action that will run on any registration provided by the source. + + The with the registration configuration set. + + + + + Extension methods for registering instances with a container. + + + + + Registers modules found in an assembly. + + The builder to register the modules with. + The assemblies from which to register modules. + + Thrown if is . + + + The to allow + additional chained module registrations. + + + + + Registers modules found in an assembly. + + The module registrar that will make the registrations into the container. + The assemblies from which to register modules. + + Thrown if is . + + + The to allow + additional chained module registrations. + + + + + Registers modules found in an assembly. + + The builder to register the modules with. + The assemblies from which to register modules. + The type of the module to add. + + Thrown if is . + + + The to allow + additional chained module registrations. + + + + + Registers modules found in an assembly. + + The module registrar that will make the registrations into the container. + The assemblies from which to register modules. + The type of the module to add. + + Thrown if is . + + + The to allow + additional chained module registrations. + + + + + Registers modules found in an assembly. + + The builder to register the modules with. + The of the module to add. + The assemblies from which to register modules. + + Thrown if or is . + + + The to allow + additional chained module registrations. + + + + + Registers modules found in an assembly. + + The module registrar that will make the registrations into the container. + The of the module to add. + The assemblies from which to register modules. + + Thrown if or is . + + + The to allow + additional chained module registrations. + + + + + Add a module to the container. + + The builder to register the module with. + The module to add. + + Thrown if is . + + + The to allow + additional chained module registrations. + + + + + Add a module to the container. + + The module registrar that will make the registration into the container. + The module to add. + + Thrown if is . + + + The to allow + additional chained module registrations. + + + + + Add a module to the container. + + The builder to register the module with. + The module to add. + + Thrown if or is . + + + The to allow + additional chained module registrations. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Module.ThisAssembly is only available in modules that inherit directly from Module.. + + + + + Support the + type automatically whenever type T is registered with the container. + When a dependency of a lazy type is used, the instantiation of the underlying + component will be delayed until the Value property is first accessed. + + + + + Generates context-bound closures that represent factories from + a set of heuristics based on delegate type signatures. + + + + + Create a factory generator. + + The service that will be activated in + order to create the products of the factory. + The delegate to provide as a factory. + The parameter mapping mode to use. + + + + Create a factory generator. + + The component that will be activated in + order to create the products of the factory. + The delegate to provide as a factory. + The parameter mapping mode to use. + + + + Generates a factory delegate that closes over the provided context. + + The context in which the factory will be used. + Parameters provided to the resolve call for the factory itself. + A factory delegate that will work within the context. + + + + Generates a factory delegate that closes over the provided context. + + The context in which the factory will be used. + Parameters provided to the resolve call for the factory itself. + A factory delegate that will work within the context. + + + + Reflection activator data for concrete types. + + + + + Builder for reflection-based activators. + + + + + Specify a reflection activator for the given type. + + Type that will be activated. + + + + Get the implementation type. + + + + + The constructor finder for the registration. + + + + + The constructor selector for the registration. + + + + + The explicitly bound constructor parameters. + + + + + The explicitly bound properties. + + + + + Activator data that can provide an IInstanceActivator instance. + + + + + The instance activator based on the provided data. + + + + + Specify a reflection activator for the given type. + + Type that will be activated. + + + + The instance activator based on the provided data. + + + + + Parameterises the construction of a container by a . + + + + + No options - the default behavior for container building. + + + + + Prevents inclusion of standard modules like support for + relationship types including etc. + + + + + Does not call on components implementing + this interface (useful for module testing.) + + + + + Data structure used to construct registrations. + + The most specific type to which instances of the registration + can be cast. + Activator builder type. + Registration style type. + + + + Configure the component so that instances are never disposed by the container. + + A registration builder allowing further configuration of the component. + + + + Configure the component so that instances that support IDisposable are + disposed by the container (default.) + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + gets a new, unique instance (default.) + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + gets the same, shared instance. + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a single ILifetimeScope gets the same, shared instance. Dependent components in + different lifetime scopes will get different instances. + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() within + a ILifetimeScope tagged with any of the provided tags value gets the same, shared instance. + Dependent components in lifetime scopes that are children of the tagged scope will + share the parent's instance. If no appropriately tagged scope can be found in the + hierarchy an is thrown. + + Tag applied to matching lifetime scopes. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + The service type provided by the component. + Key to associate with the component. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + Key to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. The generic parameter(s) to As() + will be exposed as TypedService instances. + + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. The generic parameter(s) to As() + will be exposed as TypedService instances. + + Service type. + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. The generic parameter(s) to As() + will be exposed as TypedService instances. + + Service type. + Service type. + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. + + Service types to expose. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. + + Services to expose. + A registration builder allowing further configuration of the component. + + + + Provide a textual name that can be used to retrieve the component. + + Named service to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Provide a textual name that can be used to retrieve the component. + + Named service to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Provide a key that can be used to retrieve the component. + + Key to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Provide a key that can be used to retrieve the component. + + Key to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Add a handler for the Preparing event. This event allows manipulating of the parameters + that will be provided to the component. + + The event handler. + A registration builder allowing further configuration of the component. + + + + Add a handler for the Activating event. + + The event handler. + A registration builder allowing further configuration of the component. + + + + Add a handler for the Activated event. + + The event handler. + A registration builder allowing further configuration of the component. + + + + Configure the component so that any properties whose types are registered in the + container will be wired to instances of the appropriate service. + + Set wiring options such as circular dependency wiring support. + A registration builder allowing further configuration of the component. + + + + Associates data with the component. + + Key by which the data can be located. + The data value. + A registration builder allowing further configuration of the component. + + + + Associates data with the component. + + The extended properties to associate with the component. + A registration builder allowing further configuration of the component. + + + + Associates data with the component. + + A type with properties whose names correspond to the + property names to configure. + A registration builder allowing further configuration of the component. + + + + The activator data. + + + + + The registration style. + + + + + The registration data. + + + + + Delegates registration lookups to a specified registry. When write operations are applied, + initialises a new 'writeable' registry. + + + Safe for concurrent access by multiple readers. Write operations are single-threaded. + + + + + Provides component registrations according to the services they provide. + + + + + Attempts to find a default registration for the specified service. + + The service to look up. + The default registration for the service. + True if a registration exists. + + + + Determines whether the specified service is registered. + + The service to test. + True if the service is registered. + + + + Register a component. + + The component registration. + + + + Register a component. + + The component registration. + If true, existing defaults for the services provided by the + component will not be changed. + + + + Selects from the available registrations after ensuring that any + dynamic registration sources that may provide + have been invoked. + + The service for which registrations are sought. + Registrations supporting . + + + + Add a registration source that will provide registrations on-the-fly. + + The source to register. + + + + Enumerate the registered components. + + + + + Fired whenever a component is registered - either explicitly or via a + . + + + + + Gets the registration sources that are used by the registry. + + + + + True if the registry contains its own components; false if it is forwarding + registrations from another external registry. + + This property is used when walking up the scope tree looking for + registrations for a new customised scope. (See issue 336.) + + + + Fired when an is added to the registry. + + + + + Enables contravariant Resolve() for interfaces that have a single contravariant ('in') parameter. + + + interface IHandler<in TCommand> + { + void Handle(TCommand command); + } + + class Command { } + + class DerivedCommand : Command { } + + class CommandHandler : IHandler<Command> { ... } + + var builder = new ContainerBuilder(); + builder.RegisterSource(new ContravariantRegistrationSource()); + builder.RegisterType<CommandHandler>(); + var container = builder.Build(); + // Source enables this line, even though IHandler<Command> is the + // actual registered type. + var handler = container.Resolve<IHandler<DerivedCommand>>(); + handler.Handle(new DerivedCommand()); + + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + If the source is queried for service s, and it returns a component that implements both s and s', then it + will not be queried again for either s or s'. This means that if the source can return other implementations + of s', it should return these, plus the transitive closure of other components implementing their + additional services, along with the implementation of s. It is not an error to return components + that do not implement . + + + + + Gets whether the registrations provided by this source are 1:1 adapters on top + of other components (I.e. like Meta, Func or Owned.) + + + + + Options that can be applied when autowiring properties on a component. (Multiple options can + be specified using bitwise 'or' - e.g. AllowCircularDependencies | PreserveSetValues. + + + + + Default behavior. Circular dependencies are not allowed; existing non-default + property values are overwritten. + + + + + Allows property-property and property-constructor circular dependency wiring. + This flag moves property wiring from the Activating to the Activated event. + + + + + If specified, properties that already have a non-default value will be left + unchanged in the wiring operation. + + + + + Static factory methods to simplify the creation and handling of IRegistrationBuilder{L,A,R}. + + + To create an for a specific type, use: + + var cr = RegistrationBuilder.ForType(t).CreateRegistration(); + + The full builder syntax is supported: + + var cr = RegistrationBuilder.ForType(t).Named("foo").ExternallyOwned().CreateRegistration(); + + + + + + Creates a registration builder for the provided delegate. + + Instance type returned by delegate. + Delegate to register. + A registration builder. + + + + Creates a registration builder for the provided delegate. + + Delegate to register. + Most specific type return value of delegate can be cast to. + A registration builder. + + + + Creates a registration builder for the provided type. + + Implementation type to register. + A registration builder. + + + + Creates a registration builder for the provided type. + + Implementation type to register. + A registration builder. + + + + Create an from a . + (There is no need to call + this method when registering components through a .) + + + When called on the result of one of the methods, + the returned registration will be different from the one the builder itself registers + in the container. + + + + var registration = RegistrationBuilder.ForType<Foo>().CreateRegistration(); + + + + + + The registration builder. + An IComponentRegistration. + + Thrown if is . + + + + + Create an IComponentRegistration from data. + + Id of the registration. + Registration data. + Activator. + Services provided by the registration. + An IComponentRegistration. + + + + Create an IComponentRegistration from data. + + Id of the registration. + Registration data. + Activator. + Services provided by the registration. + Optional; target registration. + An IComponentRegistration. + + Thrown if or is . + + + + + Register a component in the component registry. This helper method is necessary + in order to execute OnRegistered hooks and respect PreserveDefaults. + + Hoping to refactor this out. + + + + Component registry to make registration in. + Registration builder with data for new registration. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The type '{0}' is not assignable to service '{1}'.. + + + + + Adds registration syntax for less commonly-used features. + + + These features are in this namespace because they will remain accessible to + applications originally written against Autofac 1.4. In Autofac 2, this functionality + is implicitly provided and thus making explicit registrations is rarely necessary. + + + + + Registers a factory delegate. + + Container builder. + Factory type to generate. + Registration builder allowing the registration to be configured. + Factory delegates are provided automatically in Autofac 2, + and this method is generally not required. + + + + Registers a factory delegate. + + Container builder. + Factory type to generate. + The service that the delegate will return instances of. + Registration builder allowing the registration to be configured. + Factory delegates are provided automatically in Autofac 2, and + this method is generally not required. + + + + Registers a factory delegate. + + The type of the delegate. + Container builder. + The service that the delegate will return instances of. + Registration builder allowing the registration to be configured. + Factory delegates are provided automatically in Autofac 2, + and this method is generally not required. + + + + Registers a factory delegate. + + The type of the delegate. + Container builder. + Registration builder allowing the registration to be configured. + Factory delegates are provided automatically in Autofac 2, + and this method is generally not required. + + + + Changes the parameter mapping mode of the supplied delegate type to match + parameters by name. + + Factory delegate type + Activator data type + Registration style + Registration to change parameter mapping mode of. + Registration builder allowing the registration to be configured. + + Thrown if is . + + + + + Changes the parameter mapping mode of the supplied delegate type to match + parameters by position. + + Factory delegate type + Activator data type + Registration style + Registration to change parameter mapping mode of. + Registration builder allowing the registration to be configured. + + Thrown if is . + + + + + Changes the parameter mapping mode of the supplied delegate type to match + parameters by type. + + Factory delegate type + Activator data type + Registration style + Registration to change parameter mapping mode of. + Registration builder allowing the registration to be configured. + + Thrown if is . + + + + + Registers the type as a collection. If no services or names are specified, the + default services will be IList<T>, ICollection<T>, and IEnumerable<T> + + The type of the collection elements. + Container builder. + A unique name for the collection that can be passed to MemberOf(). + Registration builder allowing the registration to be configured. + Collections are provided automatically in Autofac 2, + and this method is generally not required. + + + + Registers the type as a collection. If no services or names are specified, the + default services will be IList<T>, ICollection<T>, and IEnumerable<T> + + The type of the collection elements. + Container builder. + A unique name for the collection that can be passed to MemberOf(). + Registration builder allowing the registration to be configured. + Collections are provided automatically in Autofac 2, + and this method is generally not required. + + + + Include the element explicitly in a collection configured using RegisterCollection. + + Registration limit type. + Registration style. + Activator data type. + Registration to export. + The collection name, as passed to RegisterCollection. + A registration builder allowing further configuration of the component. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Build() or Update() can only be called once on a ContainerBuilder.. + + + + + Looks up a localized string similar to An error occurred while attempting to automatically activate registration '{0}'. See the inner exception for information on the source of the failure.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to A delegate registered to create instances of '{0}' returned null.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Bound constructor '{0}'.. + + + + + Looks up a localized string similar to The binding cannot be instantiated.. + + + + + Looks up a localized string similar to An exception was thrown while invoking the constructor '{0}' on type '{1}'.. + + + + + Looks up a localized string similar to Cannot resolve parameter '{1}' of constructor '{0}'.. + + + + + Provides parameters that have a default value, set with an optional parameter + declaration in C# or VB. + + + + + Used in order to provide a value to a constructor parameter or property on an instance + being created by the container. + + + Not all parameters can be applied to all sites. + + + + + Returns true if the parameter is able to provide a value to a particular site. + + Constructor, method, or property-mutator parameter. + The component context in which the value is being provided. + If the result is true, the valueProvider parameter will + be set to a function that will lazily retrieve the parameter value. If the result is false, + will be set to null. + True if a value can be supplied; otherwise, false. + + + + Returns true if the parameter is able to provide a value to a particular site. + + Constructor, method, or property-mutator parameter. + The component context in which the value is being provided. + If the result is true, the valueProvider parameter will + be set to a function that will lazily retrieve the parameter value. If the result is false, + will be set to null. + True if a value can be supplied; otherwise, false. + + Thrown if is . + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The container's self-registration of context interfaces should never be activated as it is hard-wired into the LifetimeScope class.. + + + + + Marks a module as container-aware (for the purposes of attaching to diagnostic events.) + + + + + Initialise the module with the container into which it is being registered. + + The container. + + + + Fired when the activation process for a new instance is complete. + + + + + The context in which the activation occurred. + + + + + The component providing the instance. + + + + + The paramters provided when resolved. + + + + + The instance that will be used to satisfy the request. + + + + + Fired after the construction of an instance but before that instance + is shared with any other or any members are invoked on it. + + + + + The instance can be replaced if needed, e.g. by an interface proxy. + + The object to use instead of the activated instance. + + + + The context in which the activation occurred. + + + + + The component providing the instance. + + + + + The instance that will be used to satisfy the request. + + + + + The parameters supplied to the activator. + + + + + Interface supported by services that carry type information. + + + + + Return a new service of the same kind, but carrying + as the . + + The new service type. + A new service with the service type. + + + + Gets the type of the service. + + The type of the service. + + + + Identifies a service using a key in addition to its type. + + + + + Initializes a new instance of the class. + + Key of the service. + Type of the service. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + The parameter is null. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Return a new service of the same kind, but carrying + as the . + + The new service type. + A new service with the service type. + + + + Gets or sets the key of the service. + + The key of the service. + + + + Gets the type of the service. + + The type of the service. + + + + Gets a human-readable description of the service. + + The description. + + + + Describes when a lifetime scope is beginning. + + + + + Create an instance of the class. + + The lifetime scope that is beginning. + + + + The lifetime scope that is beginning. + + + + + Describes when a lifetime scope is ending. + + + + + Create an instance of the class. + + The lifetime scope that is ending. + + + + The lifetime scope that is ending. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Instances cannot be resolved and nested lifetimes cannot be created from this LifetimeScope as it has already been disposed.. + + + + + Fired when an is added to the registry. + + + + + Construct an instance of the class. + + The registry to which the source was added. + The source that was added. + + + + + The registry to which the source was added. + + + + + The source that was added. + + + + + Represents the process of finding a component during a resolve operation. + + + + + The component for which an instance is to be looked up. + + + + + The scope in which the instance will be looked up. + + + + + The parameters provided for new instance creation. + + + + + Raised when the lookup phase of the operation is ending. + + + + + Raised when the completion phase of an instance lookup operation begins. + + + + + Raised when the completion phase of an instance lookup operation ends. + + + + + Raised when the completion phase of an instance lookup operation begins. + + + + + Create an instance of the class. + + The instance lookup that is beginning the completion phase. + + + + The instance lookup operation that is beginning the completion phase. + + + + + Raised when the completion phase of an instance lookup operation ends. + + + + + Create an instance of the class. + + The instance lookup that is ending the completion phase. + + + + The instance lookup operation that is ending the completion phase. + + + + + Fired when an instance is looked up. + + + + + Create an instance of the class. + + The instance lookup that is ending. + True if a new instance was created as part of the operation. + + + + True if a new instance was created as part of the operation. + + + + + The instance lookup operation that is ending. + + + + + Fired when instance lookup is complete. + + + + The instance lookup that is ending. + + + + The instance lookup operation that is beginning. + + + + + Describes the commencement of a new resolve operation. + + + + + Create an instance of the class. + + The resolve operation that is beginning. + + + + The resolve operation that is beginning. + + + + + Wraps a component registration, switching its lifetime. + + + + + Base class for disposable objects. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Returns true if the current instance has been disposed; otherwise false; + + + + + Describes a logical component within the container. + + + + + Called by the container when an instance is required. + + The context in which the instance will be activated. + Parameters for activation. These may be modified by the event handler. + + + + Called by the container once an instance has been constructed. + + The context in which the instance was activated. + The parameters supplied to the activator. + The instance. + + + + Called by the container once an instance has been fully constructed, including + any requested objects that depend on the instance. + + The context in which the instance was activated. + The parameters supplied to the activator. + The instance. + + + + A unique identifier for this component (shared in all sub-contexts.) + This value also appears in Services. + + + + + The activator used to create instances. + + + + + The lifetime associated with the component. + + + + + Whether the component instances are shared or not. + + + + + Whether the instances of the component should be disposed by the container. + + + + + The services provided by the component. + + + + + Additional data associated with the component. + + + + + The component registration upon which this registration is based. + + + + + Fired when a new instance is required. The instance can be + provided in order to skip the regular activator, by setting the Instance property in + the provided event arguments. + + + + + Fired when a new instance is being activated. The instance can be + wrapped or switched at this time by setting the Instance property in + the provided event arguments. + + + + + Fired when the activation process for a new instance is complete. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Activator = {0}, Services = [{1}], Lifetime = {2}, Sharing = {3}, Ownership = {4}. + + + + + Pulls registrations from another component registry. + Excludes most auto-generated registrations - currently has issues with + collection registrations. + + + + + Create an external registry source that draws components from + . + + Component registry to pull registrations from. + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + + + In this case because the components that are adapted do not come from the same + logical scope, we must return false to avoid duplicating them. + + + + + Switches components with a RootScopeLifetime (singletons) with + decorators exposing MatchingScopeLifetime targeting the specified scope. + + + + + Maps services onto the components that provide them. + + + The component registry provides services directly from components, + and also uses to generate components + on-the-fly or as adapters for other components. A component registry + is normally used through a , and not + directly by application code. + + + + + Protects instance variables from concurrent access. + + + + + External registration sources. + + + + + All registrations. + + + + + Keeps track of the status of registered services. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Attempts to find a default registration for the specified service. + + The service to look up. + The default registration for the service. + True if a registration exists. + + + + Determines whether the specified service is registered. + + The service to test. + True if the service is registered. + + + + Register a component. + + The component registration. + + + + Register a component. + + The component registration. + If true, existing defaults for the services provided by the + component will not be changed. + + + + Selects from the available registrations after ensuring that any + dynamic registration sources that may provide + have been invoked. + + The service for which registrations are sought. + Registrations supporting . + + + + Add a registration source that will provide registrations on-the-fly. + + The source to register. + + + + Enumerate the registered components. + + + + + Fired whenever a component is registered - either explicitly or via a + . + + + + + Gets the registration sources that are used by the registry. + + + + + True if the registry contains its own components; false if it is forwarding + registrations from another external registry. + + This property is used when walking up the scope tree looking for + registrations for a new customised scope. (See issue 336.) + + + + Fired when an is added to the registry. + + + + + Tracks the services known to the registry. + + + + + Used for bookkeeping so that the same source is not queried twice (may be null.) + + + + + Initializes a new instance of the class. + + The tracked service. + + + + The first time a service is requested, initialization (e.g. reading from sources) + happens. This value will then be set to true. Calling many methods on this type before + initialisation is an error. + + + + + The known implementations. + + + + + True if any implementations are known. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The operation is only valid during initialization.. + + + + + Looks up a localized string similar to The operation is not valid until the object is initialized.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The activation has already been executed.. + + + + + Describes the commencement of a new resolve operation. + + + + + Create an instance of the class. + + The resolve operation that is ending. + If included, the exception causing the operation to end; otherwise, null. + + + + The exception causing the operation to end, or null. + + + + + The resolve operation that is ending. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Subclasses of Autofac.Service must override Object.Equals(). + + + + + Looks up a localized string similar to Subclasses of Autofac.Service must override Object.GetHashCode(). + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Collection Support (Arrays and Generic Collection Interfaces). + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Lazy<T> Support. + + + + + Describes the basic requirements for generating a lightweight adapter. + + + + + Create an instance of . + + The service that will be adapted from. + The adapter function. + + + + The adapter function. + + + + + The service to be adapted from. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Lightweight Adapter from {0} to {1}. + + + + + Looks up a localized string similar to The service {0} cannot be both the adapter's from and to parameters - these must differ.. + + + + + Internal implementation of the RegisterCollection/MemberOf-style collection feature. + + + + + Registration style for dynamic registrations. + + + + + Data used to create factory activators. + + + + + Create a new GeneratedFactoryActivatorData + + The type of the factory. + The service used to provide the products of the factory. + + + + Determines how the parameters of the delegate type are passed on + to the generated Resolve() call as Parameter objects. + For Func-based delegates, this defaults to ByType. Otherwise, the + parameters will be mapped by name. + + + + + Activator data that can provide an IInstanceActivator instance. + + + + + Hides standard Object members to make fluent interfaces + easier to read. + Based on blog post by @kzu here: + http://www.clariusconsulting.net/blogs/kzu/archive/2008/03/10/58301.aspx + + + + + Standard System.Object member. + + Standard result. + + + + Standard System.Object member. + + Standard result. + + + + Standard System.Object member. + + Standard result. + + + + Standard System.Object member. + + The other. + Standard result. + + + + Determines how the parameters of the delegate type are passed on + to the generated Resolve() call as Parameter objects. + + + + + Chooses parameter mapping based on the factory type. + For Func-based factories this is equivalent to ByType, for all + others ByName will be used. + + + + + Pass the parameters supplied to the delegate through to the + underlying registration as NamedParameters based on the parameter + names in the delegate type's formal argument list. + + + + + Pass the parameters supplied to the delegate through to the + underlying registration as TypedParameters based on the parameter + types in the delegate type's formal argument list. + + + + + Pass the parameters supplied to the delegate through to the + underlying registration as PositionalParameters based on the parameter + indices in the delegate type's formal argument list. + + + + + Provides components by lookup operations via an index (key) type. + + The type of the index. + The service provided by the indexed components. + + Retrieving a value given a key: + + IIndex<AccountType, IRenderer> accountRenderers = // ... + var renderer = accountRenderers[AccountType.User]; + + + + + + Get the value associated with if any is available. + + The key to look up. + The retrieved value. + True if a value associated with the key exists. + + + + Get the value associated with . + + The value to retrieve. + The associated value. + + + + + + + + + + + + + Support the + types automatically whenever type T is registered with the container. + Metadata values come from the component registration's metadata. + + + + + Provides a value along with a dictionary of metadata describing the value. + + The type of the value. + + + + Create a new instance. + + The value described by the instance. + The metadata describing the value. + + + + The value described by . + + + + + Metadata describing the value. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Meta<T> Support. + + + + + Looks up a localized string similar to Meta<T, TMetadata> Support. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The service '{0}' is not an open generic type.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to {0} providing {1}. + + + + + Describes the activator for an open generic decorator. + + + + + Construct an . + + The decorator type. + The open generic service type to decorate. + + + + The open generic service type to decorate. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The service {0} cannot be both the adapter's from and to parameters - these must differ.. + + + + + Looks up a localized string similar to Open Generic Decorator {0} from {1} to {2}. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The type {0} is not an open generic type definition.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The implementation type '{0}' is not an open generic type definition.. + + + + + Looks up a localized string similar to The implementation type '{0}' does not support the interface '{1}'.. + + + + + Looks up a localized string similar to The service '{0}' is not an open generic type definition.. + + + + + Looks up a localized string similar to The service '{1}' is not assignable from implementation type '{0}'.. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Owned<T> Support. + + + + + Provides registrations on-the-fly for any concrete type not already registered with + the container. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A predicate that selects types the source will register. + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + + + Returns a that represents the current . + + + A that represents the current . + + 2 + + + + Gets whether the registrations provided by this source are 1:1 adapters on top + of other components (I.e. like Meta, Func or Owned.) + + + + + Gets or sets an expression used to configure generated registrations. + + + A that can be used to modify the behavior + of registrations that are generated by this source. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to "Resolve Anything" Support. + + + + + Activation data for types located by scanning assemblies. + + + + + Create an instance of . + + + + + The filters applied to the types from the scanned assembly. + + + + + Additional actions to be performed on the concrete type registrations. + + + + + Actions to be called once the scanning operation is complete. + + + + + Fired when the activation process for a new instance is complete. + + + + + Initializes a new instance of the class. + + The context. + The component. + The parameters. + The instance. + + + + The context in which the activation occurred. + + + + + The component providing the instance. + + + + + The paramters provided when resolved. + + + + + The instance that will be used to satisfy the request. + + + + + Fired after the construction of an instance but before that instance + is shared with any other or any members are invoked on it. + + + + + Initializes a new instance of the class. + + The context. + The component. + The parameters. + The instance. + + + + The instance can be replaced if needed, e.g. by an interface proxy. + + The object to use instead of the activated instance. + + + + The context in which the activation occurred. + + + + + The component providing the instance. + + + + + The instance that will be used to satisfy the request. + + + The instance can be replaced if needed, e.g. by an interface proxy. + + + + + The parameters supplied to the activator. + + + + + Activate instances using a delegate. + + + + + Base class for instance activators. + + + + + Create an instance activator that will return instances compatible + with . + + Most derived type to which instances can be cast. + + + + Gets a string representation of the activator. + + A string describing the activator. + + + + The most specific type that the component instances are known to be castable to. + + + + + Activates component instances. + + + + + Activate an instance in the provided context. + + Context in which to activate instances. + Parameters to the instance. + The activated instance. + + The context parameter here should probably be ILifetimeScope in order to reveal Disposer, + but will wait until implementing a concrete use case to make the decision + + + + + The most specific type that the component instances are known to be castable to. + + + + + Create a delegate activator. + + The most specific type to which activated instances can be cast. + Activation delegate. + + + + Activate an instance in the provided context. + + Context in which to activate instances. + Parameters to the instance. + The activated instance. + + The context parameter here should probably be ILifetimeScope in order to reveal Disposer, + but will wait until implementing a concrete use case to make the decision + + + + + Provides a pre-constructed instance. + + + + + Provide the specified instance. + + The instance to provide. + + + + Activate an instance in the provided context. + + Context in which to activate instances. + Parameters to the instance. + The activated instance. + + The context parameter here should probably be ILifetimeScope in order to reveal Disposer, + but will wait until implementing a concrete use case to make the decision + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Determines whether the activator disposes the instance that it holds. + Necessary because otherwise instances that are never resolved will never be + disposed. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The provided instance has already been used in an activation request. Did you combine a provided instance with non-root/single-instance lifetime/sharing?. + + + + + Supplies values based on the target parameter type. + + + + + Returns true if the parameter is able to provide a value to a particular site. + + Constructor, method, or property-mutator parameter. + The component context in which the value is being provided. + If the result is true, the valueProvider parameter will + be set to a function that will lazily retrieve the parameter value. If the result is false, + will be set to null. + True if a value can be supplied; otherwise, false. + + Thrown if or is . + + + + + Binds a constructor to the parameters that will be used when it is invoked. + + + + + Construct a new ConstructorParameterBinding. + + ConstructorInfo to bind. + Available parameters. + Context in which to construct instance. + + + + Invoke the constructor with the parameter bindings. + + The constructed instance. + + + Returns a System.String that represents the current System.Object. + A System.String that represents the current System.Object. + + + + The constructor on the target type. The actual constructor used + might differ, e.g. if using a dynamic proxy. + + + + + True if the binding is valid. + + + + + Describes the constructor parameter binding. + + + + + Selects the best constructor from a set of available constructors. + + + + + Selects the best constructor from the available constructors. + + Available constructors. + The best constructor. + + + + Selects a constructor based on its signature. + + + + + Match constructors with the provided signature. + + Signature to match. + + + + Selects the best constructor from the available constructors. + + Available constructors. + The best constructor. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to At least one binding must be provided in order to select a constructor.. + + + + + Looks up a localized string similar to The required constructor on type '{0}' with signature '{1}' is unavailable.. + + + + + Looks up a localized string similar to More than one constructor matches the signature '{0}'.. + + + + + Selects the constructor with the most parameters. + + + + + Selects the best constructor from the available constructors. + + Available constructors. + The best constructor. + A single unambiguous match could not be chosen. + + + + Uses reflection to activate instances of a type. + + + + + Create an activator for the provided type. + + Type to activate. + Constructor finder. + Constructor selector. + Parameters configured explicitly for this instance. + Properties configured explicitly for this instance. + + + + Activate an instance in the provided context. + + Context in which to activate instances. + Parameters to the instance. + The activated instance. + + The context parameter here should probably be ILifetimeScope in order to reveal Disposer, + but will wait until implementing a concrete use case to make the decision + + + + + The constructor finder. + + + + + The constructor selector. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to No constructors on type '{0}' can be found with the constructor finder '{1}'.. + + + + + Looks up a localized string similar to None of the constructors found with '{0}' on type '{1}' can be invoked with the available services and parameters:{2}. + + + + + Base class for parameters that provide a constant value. + + + + + Create a constant parameter that will apply to parameters matching + the supplied predicate. + + + + + + + Returns true if the parameter is able to provide a value to a particular site. + + Constructor, method, or property-mutator parameter. + The component context in which the value is being provided. + If the result is true, the valueProvider parameter will + be set to a function that will lazily retrieve the parameter value. If the result is false, + will be set to null. + True if a value can be supplied; otherwise, false. + + + + The value of the parameter. + + + + + Standard container implementation. + + + + + Creates, wires dependencies and manages lifetime for a set of components. + Most instances of are created + by a . + + + + // See ContainerBuilder for the definition of the builder variable + using (var container = builder.Build()) + { + var program = container.Resolve<Program>(); + program.Run(); + } + + + + Most functionality is provided by extension methods + on the inherited interface. + + + + + + + + + An tracks the instantiation of component instances. + It defines a boundary in which instances are shared and configured. + Disposing an will dispose the components that were + resolved through it. + + + + // See IContainer for definition of the container variable + using (var requestScope = container.BeginLifetimeScope()) + { + // Note that handler is resolved from requestScope, not + // from the container: + + var handler = requestScope.Resolve<IRequestHandler>(); + handler.Handle(request); + + // When requestScope is disposed, all resources used in processing + // the request will be released. + } + + + + All long-running applications should resolve components via an + . Choosing the duration of the lifetime is application- + specific. The standard Autofac WCF and ASP.NET/MVC integrations are already configured + to create and release s as appropriate. For example, the + ASP.NET integration will create and release an per HTTP + request. + Most functionality is provided by extension methods + on the inherited interface. + + + + + + + + + + + The context in which a service can be accessed or a component's + dependencies resolved. Disposal of a context will dispose any owned + components. + + + + + Resolve an instance of the provided registration within the context. + + The registration. + Parameters for the instance. + + The component instance. + + + + + + + Associates services with the components that provide them. + + + + + Begin a new nested scope. Component instances created via the new scope + will be disposed along with it. + + A new lifetime scope. + + + + Begin a new nested scope. Component instances created via the new scope + will be disposed along with it. + + The tag applied to the . + A new lifetime scope. + + + + Begin a new nested scope, with additional components available to it. + Component instances created via the new scope + will be disposed along with it. + + + The components registered in the sub-scope will be treated as though they were + registered in the root scope, i.e., SingleInstance() components will live as long + as the root scope. + + Action on a + that adds component registations visible only in the new scope. + A new lifetime scope. + + + + Begin a new nested scope, with additional components available to it. + Component instances created via the new scope + will be disposed along with it. + + + The components registered in the sub-scope will be treated as though they were + registered in the root scope, i.e., SingleInstance() components will live as long + as the root scope. + + The tag applied to the . + Action on a + that adds component registations visible only in the new scope. + A new lifetime scope. + + + + The disposer associated with this . + Component instances can be associated with it manually if required. + + Typical usage does not require interaction with this member- it + is used when extending the container. + + + + The tag applied to the . + + Tags allow a level in the lifetime hierarchy to be identified. + In most applications, tags are not necessary. + + + + + Fired when a new scope based on the current scope is beginning. + + + + + Fired when this scope is ending. + + + + + Fired when a resolve operation is beginning in this scope. + + + + + Create a new container. + + + + + Begin a new sub-scope. Instances created via the sub-scope + will be disposed along with it. + + A new lifetime scope. + + + + Begin a new sub-scope. Instances created via the sub-scope + will be disposed along with it. + + The tag applied to the . + A new lifetime scope. + + + + Begin a new nested scope, with additional components available to it. + Component instances created via the new scope + will be disposed along with it. + + Action on a + that adds component registations visible only in the new scope. + A new lifetime scope. + + + + Begin a new nested scope, with additional components available to it. + Component instances created via the new scope + will be disposed along with it. + + The tag applied to the . + Action on a + that adds component registations visible only in the new scope. + A new lifetime scope. + + + + Resolve an instance of the provided registration within the context. + + The registration. + Parameters for the instance. + + The component instance. + + + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Gets the service object of the specified type. + + An object that specifies the type of service object + to get. + + A service object of type .-or- null if there is + no service object of type . + + + + + The disposer associated with this container. Instances can be associated + with it manually if required. + + + + + Tag applied to the lifetime scope. + + The tag applied to this scope and the contexts generated when + it resolves component dependencies. + + + + Fired when a new scope based on the current scope is beginning. + + + + + Fired when this scope is ending. + + + + + Fired when a resolve operation is beginning in this scope. + + + + + Associates services with the components that provide them. + + + + + Base exception type thrown whenever the dependency resolution process fails. This is a fatal + exception, as Autofac is unable to 'roll back' changes to components that may have already + been made during the operation. For example, 'on activated' handlers may have already been + fired, or 'single instance' components partially constructed. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Gets a message that describes the current exception. + + + The error message that explains the reason for the exception, or an empty string(""). + + + + + Maintains a set of objects to dispose, and disposes them in the reverse order + from which they were added when the Disposer is itself disposed. + + + + + Provided on an object that will dispose of other objects when it is + itself disposed. + + + + + Adds an object to the disposer. When the disposer is + disposed, so will the object be. + + The instance. + + + + Contents all implement IDisposable. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Adds an object to the disposer. When the disposer is + disposed, so will the object be. + + The instance. + + + + Locates the lifetime to which instances of a component should be attached. + + + + + Given the most nested scope visible within the resolve operation, find + the scope for the component. + + The most nested visible scope. + The scope for the component. + + + + Represents a set of components and related functionality + packaged together. + + + + + Apply the module to the component registry. + + Component registry to apply configuration to. + + + + Determines when instances supporting IDisposable are disposed. + + + + + The lifetime scope does not dispose the instances. + + + + + The instances are disposed when the lifetime scope is disposed. + + + + + Determines whether instances are shared within a lifetime scope. + + + + + Each request for an instance will return a new object. + + + + + Each request for an instance will return the same object. + + + + + Defines a nested structure of lifetimes. + + + + + Try to retrieve an instance based on a GUID key. If the instance + does not exist, invoke to create it. + + Key to look up. + Creation function. + An instance. + + + + The root of the sharing hierarchy. + + + + + The parent of this node of the hierarchy, or null. + + + + + Attaches the instance's lifetime to the current lifetime scope. + + + + + Given the most nested scope visible within the resolve operation, find + the scope for the component. + + The most nested visible scope. + The scope for the component. + + + + Lifetime scope implementation. + + + + + Protects shared instances from concurrent access. Other members and the base class are threadsafe. + + + + + The tag applied to root scopes when no other tag is specified. + + + + + Create a lifetime scope for the provided components and nested beneath a parent. + + The tag applied to the . + Components used in the scope. + Parent scope. + + + + Create a root lifetime scope for the provided components. + + The tag applied to the . + Components used in the scope. + + + + Create a root lifetime scope for the provided components. + + Components used in the scope. + + + + Begin a new anonymous sub-scope. Instances created via the sub-scope + will be disposed along with it. + + A new lifetime scope. + + + + Begin a new tagged sub-scope. Instances created via the sub-scope + will be disposed along with it. + + The tag applied to the . + A new lifetime scope. + + + + Begin a new anonymous sub-scope, with additional components available to it. + Component instances created via the new scope + will be disposed along with it. + + Action on a + that adds component registations visible only in the new scope. + A new lifetime scope. + + IContainer cr = // ... + using (var lifetime = cr.BeginLifetimeScope(builder => { + builder.RegisterType<Foo>(); + builder.RegisterType<Bar>().As<IBar>(); }) + { + var foo = lifetime.Resolve<Foo>(); + } + + + + + Begin a new tagged sub-scope, with additional components available to it. + Component instances created via the new scope + will be disposed along with it. + + The tag applied to the . + Action on a + that adds component registations visible only in the new scope. + A new lifetime scope. + + IContainer cr = // ... + using (var lifetime = cr.BeginLifetimeScope("unitOfWork", builder => { + builder.RegisterType<Foo>(); + builder.RegisterType<Bar>().As<IBar>(); }) + { + var foo = lifetime.Resolve<Foo>(); + } + + + + + Resolve an instance of the provided registration within the context. + + The registration. + Parameters for the instance. + + The component instance. + + + + + + + Try to retrieve an instance based on a GUID key. If the instance + does not exist, invoke to create it. + + Key to look up. + Creation function. + An instance. + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Gets the service object of the specified type. + + An object that specifies the type of service object + to get. + + A service object of type .-or- null if there is + no service object of type . + + + + + The parent of this node of the hierarchy, or null. + + + + + The root of the sharing hierarchy. + + + + + The disposer associated with this container. Instances can be associated + with it manually if required. + + + + + Tag applied to the lifetime scope. + + The tag applied to this scope and the contexts generated when + it resolves component dependencies. + + + + Associates services with the components that provide them. + + + + + Fired when a new scope based on the current scope is beginning. + + + + + Fired when this scope is ending. + + + + + Fired when a resolve operation is beginning in this scope. + + + + + Attaches the component's lifetime to scopes matching a supplied expression. + + + + + Match scopes by comparing tags for equality. + + The tags applied to matching scopes. + + + + Given the most nested scope visible within the resolve operation, find + the scope for the component. + + The most nested visible scope. + The scope for the component. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to No scope with a Tag matching '{0}' is visible from the scope in which the instance was requested. This generally indicates that a component registered as per-HTTP request is being requested by a SingleInstance() component (or a similar scenario.) Under the web integration always request dependencies from the DependencyResolver.Current or ILifetimeScopeProvider.RequestLifetime, never from the container itself.. + + + + + Attaches the component's lifetime to the root scope. + + + + + Given the most nested scope visible within the resolve operation, find + the scope for the component. + + The most nested visible scope. + The scope for the component. + + + + A property identified by name. When applied to a reflection-based + component, the name will be matched against property names. + + + + + Create a with the specified constant value. + + The name of the property. + The property value. + + + + The name of the property. + + + + + Fired before the activation process to allow parameters to be changed or an alternative + instance to be provided. + + + + + Initializes a new instance of the class. + + The context. + The component. + The parameters. + + + + The context in which the activation is occurring. + + + + + The component providing the instance being activated. + + + + + The parameters supplied to the activator. + + + + + A service was requested that cannot be provided by the container. To avoid this exception, either register a component + to provide the required service, check for service registration using IsRegistered(), or use the ResolveOptional() + method to resolve an optional dependency. + + This exception is fatal. See for more information. + + + + Initializes a new instance of the class. + + The service. + + + + Initializes a new instance of the class. + + The service. + The inner exception. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The requested service '{0}' has not been registered. To avoid this exception, either register a component to provide the service, check for service registration using IsRegistered(), or use the ResolveOptional() method to resolve an optional dependency.. + + + + + Information about the ocurrence of a component being registered + with a container. + + + + + Create a new instance with a valid container and component registration. + + The container into which the registration + was made. + The component registration. + + + + The container into which the registration was made. + + + + + The component registration. + + + + + Describes a logical component within the container. + + + + + Create a new component registration. + + Unique identifier for the component. + Activator used to activate instances. + Determines how the component will be associated with its lifetime. + Whether the component is shared within its lifetime scope. + Whether the component instances are disposed at the end of their lifetimes. + Services the component provides. + Data associated with the component. + + + + Create a new component registration. + + Unique identifier for the component. + Activator used to activate instances. + Determines how the component will be associated with its lifetime. + Whether the component is shared within its lifetime scope. + Whether the component instances are disposed at the end of their lifetimes. + Services the component provides. + Data associated with the component. + The component registration upon which this registration is based. + + + + Called by the container when an instance is required. + + The context in which the instance will be activated. + Parameters for activation. + + + + Called by the container once an instance has been constructed. + + The context in which the instance was activated. + The parameters supplied to the activator. + The instance. + + + + Called by the container once an instance has been fully constructed, including + any requested objects that depend on the instance. + + The context in which the instance was activated. + The parameters supplied to the activator. + The instance. + + + + Describes the component in a human-readable form. + + A description of the component. + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + The component registration upon which this registration is based. + If this registration was created directly by the user, returns this. + + + + + A unique identifier for this component (shared in all sub-contexts.) + This value also appears in Services. + + + + + The activator used to create instances. + + + + + The lifetime associated with the component. + + + + + Whether the component instances are shared or not. + + + + + Whether the instances of the component should be disposed by the container. + + + + + The services provided by the component. + + + + + Additional data associated with the component. + + + + + Fired when a new instance is required. The instance can be + provided in order to skip the regular activator, by setting the Instance property in + the provided event arguments. + + + + + Fired when a new instance is being activated. The instance can be + wrapped or switched at this time by setting the Instance property in + the provided event arguments. + + + + + Fired when the activation process for a new instance is complete. + + + + + Catch circular dependencies that are triggered by post-resolve processing (e.g. 'OnActivated') + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Circular component dependency detected: {0}.. + + + + + Looks up a localized string similar to Probable circular dependency between factory-scoped components. Chain includes '{0}'. + + + + + An is a component context that sequences and monitors the multiple + activations that go into producing a single requested object graph. + + + + + Get or create and share an instance of in the . + + The scope in the hierarchy in which the operation will begin. + The component to resolve. + Parameters for the component. + The component instance. + + + + Raised when the entire operation is complete. + + + + + Raised when an instance is looked up within the operation. + + + + + A is a component context that sequences and monitors the multiple + activations that go into producing a single requested object graph. + + + + + Create an instance of in the provided scope. + + The most nested scope in which to begin the operation. The operation + can move upward to less nested scopes as components with wider sharing scopes are activated + + + + Resolve an instance of the provided registration within the context. + + The registration. + Parameters for the instance. + + The component instance. + + + + + + + Execute the complete resolve operation. + + + + + Continue building the object graph by instantiating in the + current . + + The current scope of the operation. + The component to activate. + The parameters for the component. + The resolved instance. + + + + + Associates services with the components that provide them. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to An exception was thrown while executing a resolve operation. See the InnerException for details.. + + + + + Looks up a localized string similar to Probable circular dependency between factory-scoped components. Chain includes '{0}'. + + + + + Looks up a localized string similar to This resolve operation has already ended. When registering components using lambdas, the IComponentContext 'c' parameter to the lambda cannot be stored. Instead, either resolve IComponentContext again from 'c', or resolve a Func<> based factory to create subsequent components from.. + + + + + Identifies a service according to a type to which it can be assigned. + + + + + Initializes a new instance of the class. + + Type of the service. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + The parameter is null. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Return a new service of the same kind, but carrying + as the . + + The new service type. + A new service with the service type. + + + + Gets the type of the service. + + The type of the service. + + + + Gets a human-readable description of the service. + + The description. + + + + A handy unique service identifier type - all instances will be regarded as unequal. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The id. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + The parameter is null. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Provides a programmer-readable description of the identifying feature of the service. + + + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + + + Generates activators for open generic types. + + + + + Represents a dependency that can be released by the dependent component. + + The service provided by the dependency. + + + Autofac automatically provides instances of whenever the + service is registered. + + + It is not necessary for , or the underlying component, to implement . + Disposing of the object is the correct way to handle cleanup of the dependency, + as this will dispose of any other components created indirectly as well. + + + When is resolved, a new is created for the + underlying , and tagged with the service matching , + generally a . This means that shared instances can be tied to this + scope by registering them as InstancePerMatchingLifetimeScope(new TypedService(typeof(T))). + + + + The component D below is disposable and implements IService: + + public class D : IService, IDisposable + { + // ... + } + + The dependent component C can dispose of the D instance whenever required by taking a dependency on + : + + public class C + { + IService _service; + + public C(Owned<IService> service) + { + _service = service; + } + + void DoWork() + { + _service.Value.DoSomething(); + } + + void OnFinished() + { + _service.Dispose(); + } + } + + In general, rather than depending on directly, components will depend on + System.Func<Owned<T>> in order to create and dispose of other components as required. + + + + + Create an instance of . + + The value representing the instance. + An IDisposable interface through which ownership can be released. + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + The owned value. + + + + + Generates registrations for services of type whenever the service + T is available. + + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + + + When implemented by a component, an instance of the component will be resolved + and started as soon as the container is built. Autofac will not call the Start() + method when subsequent instances are resolved. If this behavior is required, use + an OnActivated() event handler instead. + + + For equivalent "Stop" functionality, implement . Autofac + will always dispose a component before any of its dependencies (except in the presence + of circular dependencies, in which case the components in the cycle are disposed in + reverse-construction order.) + + + + + Perform once-off startup processing. + + + + + Base class for user-defined modules. Modules can add a set of releated components + to a container () or attach cross-cutting functionality + to other components (. + Modules are given special support in the XML configuration feature - see + http://code.google.com/p/autofac/wiki/StructuringWithModules. + + Provides a user-friendly way to implement + via . + + Defining a module: + + public class DataAccessModule : Module + { + public string ConnectionString { get; set; } + + public override void Load(ContainerBuilder moduleBuilder) + { + moduleBuilder.RegisterGeneric(typeof(MyRepository<>)) + .As(typeof(IRepository<>)) + .InstancePerMatchingLifetimeScope(WebLifetime.Request); + + moduleBuilder.Register(c => new MyDbConnection(ConnectionString)) + .As<IDbConnection>() + .InstancePerMatchingLifetimeScope(WebLifetime.Request); + } + } + + Using the module: + + var builder = new ContainerBuilder(); + builder.RegisterModule(new DataAccessModule { ConnectionString = "..." }); + var container = builder.Build(); + var customers = container.Resolve<IRepository<Customer>>(); + + + + + + Apply the module to the component registry. + + Component registry to apply configuration to. + + + + Override to add registrations to the container. + + + Note that the ContainerBuilder parameter is unique to this module. + + The builder through which components can be + registered. + + + + Override to attach module-specific functionality to a + component registration. + + This method will be called for all existing and future component + registrations - ordering is not important. + The component registry. + The registration to attach functionality to. + + + + Override to perform module-specific processing on a registration source. + + This method will be called for all existing and future sources + - ordering is not important. + The component registry into which the source was added. + The registration source. + + + + The assembly in which the concrete module type is located. To avoid bugs whereby deriving from a module will + change the target assembly, this property can only be used by modules that inherit directly from + . + + + + + Configure the component so that instances are never disposed by the container. + + A registration builder allowing further configuration of the component. + + + + Configure the component so that instances that support IDisposable are + disposed by the container (default.) + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + gets a new, unique instance (default.) + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + gets the same, shared instance. + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a single ILifetimeScope gets the same, shared instance. Dependent components in + different lifetime scopes will get different instances. + + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() within + a ILifetimeScope tagged with any of the provided tags value gets the same, shared instance. + Dependent components in lifetime scopes that are children of the tagged scope will + share the parent's instance. If no appropriately tagged scope can be found in the + hierarchy an is thrown. + + Tag applied to matching lifetime scopes. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + The service type provided by the component. + Key to associate with the component. + A registration builder allowing further configuration of the component. + + + + Configure the component so that every dependent component or call to Resolve() + within a ILifetimeScope created by an owned instance gets the same, shared instance. + Dependent components in lifetime scopes that are children of the owned instance scope will + share the parent's instance. If no appropriate owned instance scope can be found in the + hierarchy an is thrown. + + Key to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. The generic parameter(s) to As() + will be exposed as TypedService instances. + + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. The generic parameter(s) to As() + will be exposed as TypedService instances. + + Service type. + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. The generic parameter(s) to As() + will be exposed as TypedService instances. + + Service type. + Service type. + Service type. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. + + Service types to expose. + A registration builder allowing further configuration of the component. + + + + Configure the services that the component will provide. + + Services to expose. + A registration builder allowing further configuration of the component. + + + + Provide a textual name that can be used to retrieve the component. + + Named service to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Provide a textual name that can be used to retrieve the component. + + Named service to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Provide a key that can be used to retrieve the component. + + Key to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Provide a key that can be used to retrieve the component. + + Key to associate with the component. + The service type provided by the component. + A registration builder allowing further configuration of the component. + + + + Add a handler for the Preparing event. This event allows manipulating of the parameters + that will be provided to the component. + + The event handler. + A registration builder allowing further configuration of the component. + + + + Add a handler for the Activating event. + + The event handler. + A registration builder allowing further configuration of the component. + + + + Add a handler for the Activated event. + + The event handler. + A registration builder allowing further configuration of the component. + + + + Configure the component so that any properties whose types are registered in the + container will be wired to instances of the appropriate service. + + Set wiring options such as circular dependency wiring support. + A registration builder allowing further configuration of the component. + + + + Associates data with the component. + + Key by which the data can be located. + The data value. + A registration builder allowing further configuration of the component. + + + + Associates data with the component. + + The extended properties to associate with the component. + A registration builder allowing further configuration of the component. + + + + Associates data with the component. + + A type with properties whose names correspond to the + property names to configure. + A registration builder allowing further configuration of the component. + + + + The activator data. + + + + + The registration style. + + + + + The registration data. + + + + + Data common to all registrations made in the container, both direct (IComponentRegistration) + and dynamic (IRegistrationSource.) + + + + + Construct a RegistrationData instance. + + The default service that will be used if no others + are added. + + + + Add multiple services for the registration, overriding the default. + + The services to add. + If an empty collection is specified, this will still + clear the default service. + + + + Add a service to the registration, overriding the default. + + The service to add. + + + + Copies the contents of another RegistrationData object into this one. + + The data to copy. + When true, the default service + will be changed to that of the other. + + Thrown if is . + + + + + Empties the configured services. + + + + + The services explicitly assigned to the component. + + + + + The instance ownership assigned to the component. + + + + + The lifetime assigned to the component. + + + + + The sharing mode assigned to the component. + + + + + Extended properties assigned to the component. + + + + + Handlers for the Preparing event. + + + + + Handlers for the Activating event. + + + + + Handlers for the Activated event. + + + + + Adds registration syntax to the type. + + + + + Add a component to the container. + + The builder to register the component with. + The component to add. + + + + Add a registration source to the container. + + The builder to register the registration source via. + The registration source to add. + + + + Register an instance as a component. + + The type of the instance. + Container builder. + The instance to register. + Registration builder allowing the registration to be configured. + If no services are explicitly specified for the instance, the + static type will be used as the default service (i.e. *not* instance.GetType()). + + + + Register a component to be created through reflection. + + The type of the component implementation. + Container builder. + Registration builder allowing the registration to be configured. + + + + Register a component to be created through reflection. + + The type of the component implementation. + Container builder. + Registration builder allowing the registration to be configured. + + + + Register a delegate as a component. + + The type of the instance. + Container builder. + The delegate to register. + Registration builder allowing the registration to be configured. + + + + Register a delegate as a component. + + The type of the instance. + Container builder. + The delegate to register. + Registration builder allowing the registration to be configured. + + + + Register an un-parameterised generic type, e.g. Repository<>. + Concrete types will be made as they are requested, e.g. with Resolve<Repository<int>>(). + + Container builder. + The open generic implementation type. + Registration builder allowing the registration to be configured. + + + + Specifies that the component being registered should only be made the default for services + that have not already been registered. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Specifies that the components being registered should only be made the default for services + that have not already been registered. + + Registration limit type. + Registration style. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Register the types in an assembly. + + Container builder. + The assemblies from which to register types. + Registration builder allowing the registration to be configured. + + + + Register the types in a list. + + Container builder. + The types to register. + Registration builder allowing the registration to be configured. + + + + Specifies a subset of types to register from a scanned assembly. + + Registration limit type. + Registration style. + Activator data type. + Registration to filter types from. + Predicate that returns true for types to register. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a service. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Function mapping types to services. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a service. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Function mapping types to services. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a service. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Function mapping types to services. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a service. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Function mapping types to services. + Registration builder allowing the registration to be configured. + + + + Specifies that a type from a scanned assembly provides its own concrete type as a service. + + Registration limit type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Specifies that a type provides its own concrete type as a service. + + Registration limit type. + Activator data type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Specifies that a type provides its own concrete type as a service. + + Registration limit type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Specify how a type from a scanned assembly provides metadata. + + Registration limit type. + Registration style. + Activator data type. + Registration to set metadata on. + A function mapping the type to a list of metadata items. + Registration builder allowing the registration to be configured. + + + + Use the properties of an attribute (or interface implemented by an attribute) on the scanned type + to provide metadata values. + + Inherited attributes are supported; however, there must be at most one matching attribute + in the inheritance chain. + The attribute applied to the scanned type. + Registration to set metadata on. + Registration builder allowing the registration to be configured. + + + + Specify how a type from a scanned assembly provides metadata. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Key of the metadata item. + A function retrieving the value of the item from the component type. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a named service. + + Registration to set service mapping on. + Service type provided by the component. + Function mapping types to service names. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a named service. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Service type provided by the component. + Function mapping types to service names. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a keyed service. + + Registration to set service mapping on. + Service type provided by the component. + Function mapping types to service keys. + Registration builder allowing the registration to be configured. + + + + Specifies how a type from a scanned assembly is mapped to a keyed service. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + Service type provided by the component. + Function mapping types to service keys. + Registration builder allowing the registration to be configured. + + + + Specifies that a type from a scanned assembly is registered as providing all of its + implemented interfaces. + + Registration limit type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Specifies that a type is registered as providing all of its implemented interfaces. + + Registration limit type. + Activator data type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Specifies that a type is registered as providing all of its implemented interfaces. + + Registration limit type. + Registration to set service mapping on. + Registration builder allowing the registration to be configured. + + + + Set the policy used to find candidate constructors on the implementation type. + + Registration limit type. + Activator data type. + Registration style. + Registration to set policy on. + Policy to be used when searching for constructors. + A registration builder allowing further configuration of the component. + + + + Set the policy used to find candidate constructors on the implementation type. + + Registration limit type. + Activator data type. + Registration style. + Registration to set policy on. + A function that returns the constructors to select from. + A registration builder allowing further configuration of the component. + + + + Set the policy used to select from available constructors on the implementation type. + + Registration limit type. + Activator data type. + Registration style. + Registration to set policy on. + Constructor signature to match. + A registration builder allowing further configuration of the component. + + + + Set the policy used to select from available constructors on the implementation type. + + Registration limit type. + Registration style. + Activator data type. + Registration to set policy on. + Policy to be used when selecting a constructor. + A registration builder allowing further configuration of the component. + + + + Set the policy used to select from available constructors on the implementation type. + + Registration limit type. + Activator data type. + Registration style. + Registration to set policy on. + Expression demonstrating how the constructor is called. + A registration builder allowing further configuration of the component. + + + + Configure an explicit value for a constructor parameter. + + Registration limit type. + Registration style. + Activator data type. + Registration to set parameter on. + Name of a constructor parameter on the target type. + Value to supply to the parameter. + A registration builder allowing further configuration of the component. + + + + Configure an explicit value for a constructor parameter. + + Registration limit type. + Registration style. + Activator data type. + Registration to set parameter on. + The parameter to supply to the constructor. + A registration builder allowing further configuration of the component. + + + + Configure an explicit value for a constructor parameter. + + Registration limit type. + Registration style. + Activator data type. + Registration to set parameter on. + A predicate selecting the parameter to set. + + A registration builder allowing further configuration of the component. + + + + Configure explicit values for constructor parameters. + + Registration limit type. + Registration style. + Activator data type. + Registration to set parameter on. + The parameters to supply to the constructor. + A registration builder allowing further configuration of the component. + + + + Configure an explicit value for a property. + + Registration limit type. + Registration style. + Activator data type. + Registration to set property on. + Name of a property on the target type. + Value to supply to the property. + A registration builder allowing further configuration of the component. + + + + Configure an explicit value for a property. + + Registration limit type. + Registration style. + Activator data type. + Registration to set parameter on. + The property to supply. + A registration builder allowing further configuration of the component. + + + + Configure explicit values for properties. + + Registration limit type. + Registration style. + Activator data type. + Registration to set parameter on. + The properties to supply. + A registration builder allowing further configuration of the component. + + + + Sets the target of the registration (used for metadata generation.) + + The type of the limit. + The type of the activator data. + Registration style + Registration to set target for. + The target. + + Registration builder allowing the registration to be configured. + + + Thrown if or is . + + + + + Provide a handler to be called when the component is registered. + + Registration limit type. + Registration style. + Activator data type. + Registration add handler to. + The handler. + Registration builder allowing the registration to be configured. + + + + Provide a handler to be called when the component is registred. + + Registration limit type. + Registration style. + Registration add handler to. + The handler. + Registration builder allowing the registration to be configured. + + + + Specifies that a type from a scanned assembly is registered if it implements an interface + that closes the provided open generic interface type. + + Registration limit type. + Registration style. + Activator data type. + Registration to set service mapping on. + The open generic interface or base class type for which implementations will be found. + Registration builder allowing the registration to be configured. + + + + Filters the scanned types to include only those assignable to the provided + type. + + Registration limit type. + Registration style. + Activator data type. + Registration to filter types from. + The type or interface which all classes must be assignable from. + Registration builder allowing the registration to be configured. + + + + Filters the scanned types to include only those assignable to the provided + type. + + Registration to filter types from. + The type or interface which all classes must be assignable from. + Registration builder allowing the registration to be configured. + + + + Filters the scanned types to exclude the provided type. + + Registration to filter types from. + The concrete type to exclude. + Registration builder allowing the registration to be configured. + + + + Filters the scanned types to exclude the provided type, providing specific configuration for + the excluded type. + + Registration to filter types from. + Registration for the excepted type. + The concrete type to exclude. + Registration builder allowing the registration to be configured. + + + + Filters the scanned types to include only those in the namespace of the provided type + or one of its sub-namespaces. + + Registration to filter types from. + A type in the target namespace. + Registration builder allowing the registration to be configured. + + + + Filters the scanned types to include only those in the provided namespace + or one of its sub-namespaces. + + Registration limit type. + Registration style. + Activator data type. + Registration to filter types from. + The namespace from which types will be selected. + Registration builder allowing the registration to be configured. + + + + Adapt all components implementing service + to provide using the provided + function. + + Service type to adapt from. + Service type to adapt to. Must not be the + same as . + Container builder. + Function adapting to + service , given the context and parameters. + + + + Adapt all components implementing service + to provide using the provided + function. + + Service type to adapt from. + Service type to adapt to. Must not be the + same as . + Container builder. + Function adapting to + service , given the context. + + + + Adapt all components implementing service + to provide using the provided + function. + + Service type to adapt from. + Service type to adapt to. Must not be the + same as . + Container builder. + Function adapting to + service . + + + + Decorate all components implementing open generic service . + The and parameters must be different values. + + Container builder. + Service type being decorated. Must be an open generic type. + Service key or name associated with the components being decorated. + Service key or name given to the decorated components. + The type of the decorator. Must be an open generic type, and accept a parameter + of type , which will be set to the instance being decorated. + + + + Decorate all components implementing service + using the provided function. + The and parameters must be different values. + + Service type being decorated. + Container builder. + Function decorating a component instance that provides + , given the context and parameters. + Service key or name associated with the components being decorated. + Service key or name given to the decorated components. + + + + Decorate all components implementing service + using the provided function. + The and parameters must be different values. + + Service type being decorated. + Container builder. + Function decorating a component instance that provides + , given the context. + Service key or name associated with the components being decorated. + Service key or name given to the decorated components. + + + + Decorate all components implementing service + using the provided function. + The and parameters must be different values. + + Service type being decorated. + Container builder. + Function decorating a component instance that provides + . + Service key or name associated with the components being decorated. + Service key or name given to the decorated components. + + + + Run a supplied action instead of disposing instances when they're no + longer required. + + Registration limit type. + Activator data type. + Registration style. + Registration to set release action for. + An action to perform instead of disposing the instance. + Registration builder allowing the registration to be configured. + Only one release action can be configured per registration. + + + + Wraps a registration in an implicit and automatically + activates the registration after the container is built. + + Registration to set release action for. + Registration limit type. + Activator data type. + Registration style. + A registration builder allowing further configuration of the component. + + + While you can implement an to perform some logic at + container build time, sometimes you need to just activate a registered component and + that's it. This extension allows you to automatically activate a registration on + container build. No additional logic is executed and the resolved instance is not held + so container disposal will end up disposing of the instance. + + + Depending on how you register the lifetime of the component, you may get an exception + when you build the container - components that are scoped to specific lifetimes (like + ASP.NET components scoped to a request lifetime) will fail to resolve because the + appropriate lifetime is not available. + + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The instance registration '{0}' can support SingleInstance() sharing only.. + + + + + Looks up a localized string similar to A metadata attribute of type {0} was not found on {1}.. + + + + + Looks up a localized string similar to More than one metadata attribute of type {0} was found on {1}.. + + + + + Looks up a localized string similar to No matching constructor exists on type '{0}'.. + + + + + An activator builder with no parameters. + + + + + Return the provided activator. + + The activator to return. + + + + Gets the activator. + + + + + Registration style for individual components. + + + + + The id used for the registration. + + + + + Handlers to notify of the component registration event. + + + + + By default, new registrations override existing registrations as defaults. + If set to true, new registrations will not change existing defaults. + + + + + The component upon which this registration is based. + + + + + Used to build an from component registrations. + + + + var builder = new ContainerBuilder(); + + builder.RegisterType<Logger>() + .As<ILogger>() + .SingleInstance(); + + builder.Register(c => new MessageHandler(c.Resolve<ILogger>())); + + var container = builder.Build(); + // resolve components from container... + + + Most functionality is accessed + via extension methods in . + + + + + + Register a callback that will be invoked when the container is configured. + + This is primarily for extending the builder syntax. + Callback to execute. + + + + Create a new container with the component registrations that have been made. + + Options that influence the way the container is initialised. + + Build can only be called once per + - this prevents ownership issues for provided instances. + Build enables support for the relationship types that come with Autofac (e.g. + Func, Owned, Meta, Lazy, IEnumerable.) To exclude support for these types, + first create the container, then call Update() on the builder. + + A new container with the configured component registrations. + + + + Configure an existing container with the component registrations + that have been made. + + + Update can only be called once per + - this prevents ownership issues for provided instances. + + An existing container to make the registrations in. + + + + Configure an existing container with the component registrations + that have been made and allows additional build options to be specified. + + + Update can only be called once per + - this prevents ownership issues for provided instances. + + An existing container to make the registrations in. + Options that influence the way the container is updated. + + + + Configure an existing registry with the component registrations + that have been made. + + + Update can only be called once per + - this prevents ownership issues for provided instances. + + An existing registry to make the registrations in. + + + + A parameter identified by name. When applied to a reflection-based + component, will be matched against + the name of the component's constructor arguments. When applied to + a delegate-based component, the parameter can be accessed using + . + + + Component with parameter: + + public class MyComponent + { + public MyComponent(int amount) { ... } + } + + Providing the parameter: + + var builder = new ContainerBuilder(); + builder.RegisterType<MyComponent>(); + var container = builder.Build(); + var myComponent = container.Resolve<MyComponent>(new NamedParameter("amount", 123)); + + + + + + Create a with the specified constant value. + + The name of the parameter. + The parameter value. + + + + The name of the parameter. + + + + + Extension methods that simplify extraction of parameter values from + an where T is . + Each method returns the first matching parameter value, or throws an exception if + none is provided. + + + At configuration time, delegate registrations can retrieve parameter values using + the methods , and : + + builder.Register((c, p) => new FtpClient(p.Named<string>("server"))); + + These parameters can be provided at resolution time: + + container.Resolve<FtpClient>(new NamedParameter("server", "ftp.example.com")); + + Alternatively, the parameters can be provided via a Generated Factory - http://code.google.com/p/autofac/wiki/DelegateFactories. + + + + + Retrieve a named parameter value from a instance. + + The type to which the returned value will be cast. + The available parameters to choose from. + The name of the parameter to select. + The value of the selected parameter. + + + + + Retrieve a positional parameter value from a instance. + + The type to which the returned value will be cast. + The available parameters to choose from. + The zero-based position of the parameter to select. + The value of the selected parameter. + The position value is the one associated with the parameter when + it was constructed, not its index into the + sequence. + + + + + Retrieve a typed parameter value from a instance. + + The type to which the returned value will be cast. + The available parameters to choose from. + The value of the selected parameter. + + + + + A parameter that is identified according to an integer representing its + position in an argument list. When applied to a reflection-based + component, will be matched against + the indices of the component's constructor arguments. When applied to + a delegate-based component, the parameter can be accessed using + . + + + Component with parameter: + + public class MyComponent + { + public MyComponent(int amount) { ... } + } + + Providing the parameter: + + var builder = new ContainerBuilder(); + builder.RegisterType<MyComponent>(); + var container = builder.Build(); + var myComponent = container.Resolve<MyComponent>(new PositionalParameter(0, 123)); + + + + + + Construct a positional parameter with the specified constant value. + + The zero-based position of the parameter. + The parameter value. + + + + The zero-based position of the parameter. + + + + + Adds syntactic convenience methods to the interface. + + + + + Set any properties on that can be + resolved in the context. + + Type of instance. Used only to provide method chaining. + The context from which to resolve the service. + The instance to inject properties into. + . + + + + Set any null-valued properties on that can be + resolved by the container. + + Type of instance. Used only to provide method chaining. + The context from which to resolve the service. + The instance to inject properties into. + . + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Name of the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Name of the service. + The parameters. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Name of the service. + The parameters. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Key of the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Key of the service. + The parameters. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Key of the service. + The parameters. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The service to retrieve. + The context from which to resolve the service. + The component instance that provides the service. + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Parameters for the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The type to which the result will be cast. + The context from which to resolve the service. + Parameters for the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + The service type. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Parameters for the service. + The service type. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Parameters for the service. + The service type. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + The service name. + Type of the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Parameters for the service. + The service name. + Type of the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Parameters for the service. + The service name. + Type of the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Key of the service. + Type of the service. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Key of the service. + Type of the service. + The parameters. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Key of the service. + Type of the service. + The parameters. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + The service to resolve. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Parameters for the service. + The service to resolve. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context. + + The context from which to resolve the service. + Parameters for the service. + The service to resolve. + + The component instance that provides the service. + + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The name of the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The name of the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The name of the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The name of the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The name of the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The key of the service. + The service to resolve. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The type of the service. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The type of the service. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + Parameters for the service. + The type of the service. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The service. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The service. + Parameters for the service. + + The component instance that provides the service, or null. + + + + + + Retrieve a service from the context, or null if the service is not + registered. + + The context from which to resolve the service. + The service. + Parameters for the service. + + The component instance that provides the service, or null. + + + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The service to test for the registration of. + True if the service is registered. + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The service to test for the registration of. + True if the service is registered. + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The name of the service to test for the registration of. + Type type of the service to test for the registration of. + True if the service is registered. + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The name of the service to test for the registration of. + Type type of the service to test for the registration of. + True if the service is registered. + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The key of the service to test for the registration of. + Type type of the service to test for the registration of. + True if the service is registered. + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The key of the service to test for the registration of. + Type type of the service to test for the registration of. + True if the service is registered. + + + + Determine whether the specified service is available in the context. + + The context from which to resolve the service. + The service to test for the registration of. + True if the service is registered. + + + + Try to retrieve a service from the context. + + The context from which to resolve the service. + The service to resolve. + The resulting component instance providing the service, or null. + The parameters. + + True if a component providing the service is available. + + + + Thrown if is . + + + + + Try to retrieve a service from the context. + + The context from which to resolve the service. + The service to resolve. + The resulting component instance providing the service, or null. + + True if a component providing the service is available. + + + + + + Try to retrieve a service from the context. + + The context from which to resolve the service. + The service type to resolve. + The resulting component instance providing the service, or null. + + True if a component providing the service is available. + + + + + + Try to retrieve a service from the context. + + The service type to resolve. + The context from which to resolve the service. + The resulting component instance providing the service, or default(T). + + True if a component providing the service is available. + + + + + + Try to retrieve a service from the context. + + The context from which to resolve the service. + The name of the service to resolve. + The type of the service to resolve. + The resulting component instance providing the service, or null. + + True if a component providing the service is available. + + + + + + Try to retrieve a service from the context. + + The context from which to resolve the service. + The key of the service to resolve. + The type of the service to resolve. + The resulting component instance providing the service, or null. + + True if a component providing the service is available. + + + + + + Flexible parameter type allows arbitrary values to be retrieved + from the resolution context. + + + + + Create an instance of the ResolvedParameter class. + + A predicate that determines which parameters on a constructor will be supplied by this instance. + A function that supplies the parameter value given the context. + + + + Returns true if the parameter is able to provide a value to a particular site. + + Constructor, method, or property-mutator parameter. + The component context in which the value is being provided. + If the result is true, the valueProvider parameter will + be set to a function that will lazily retrieve the parameter value. If the result is false, + will be set to null. + True if a value can be supplied; otherwise, false. + + + + Construct a that will match parameters of type + and resolve for those parameters an implementation + registered with the name . + + The type of the parameter to match. + The name of the matching service to resolve. + A configured instance. + + + + + + Construct a that will match parameters of type + and resolve for those parameters an implementation + registered with the key . + + The type of the parameter to match. + The key of the matching service to resolve. + A configured instance. + + + + A parameter that can supply values to sites that exactly + match a specified type. When applied to a reflection-based + component, will be matched against + the types of the component's constructor arguments. When applied to + a delegate-based component, the parameter can be accessed using + . + + + Component with parameter: + + public class MyComponent + { + public MyComponent(int amount) { ... } + } + + Providing the parameter: + + var builder = new ContainerBuilder(); + builder.RegisterType<MyComponent>(); + var container = builder.Build(); + var myComponent = container.Resolve<MyComponent>(new TypedParameter(typeof(int), 123)); + + + + + + Create a typed parameter with the specified constant value. + + The exact type to match. + The parameter value. + + + + Shortcut for creating + by using the + + type to be used for the parameter + The parameter value. + new typed parameter + + + + The type against which targets are matched. + + + + + Extends with methods that are useful in + building scanning rules for . + + + + + Returns true if this type is in the namespace + or one of its sub-namespaces. + + The type to test. + The namespace to test. + True if this type is in the namespace + or one of its sub-namespaces; otherwise, false. + + + + Returns true if this type is in the same namespace as + or one of its sub-namespaces. + + The type to test. + True if this type is in the same namespace as + or one of its sub-namespaces; otherwise, false. + + + Determines whether the candidate type supports any base or + interface that closes the provided generic type. + + + + + + + Determines whether this type is assignable to . + + The type to test assignability to. + True if this type is assignable to references of type + ; otherwise, False. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The type '{0}' is not an open generic class or interface type.. + + + + + Extension methods for . + + + + + Safely returns the set of loadable types from an assembly. + + The from which to load types. + + The set of types from the , or the subset + of types that could be loaded if there was any error. + + + Thrown if is . + + + + + Helper methods used throughout the codebase. + + + + + Enforce that an argument is not null. Returns the + value if valid so that it can be used inline in + base initialiser syntax. + + + + + + + + + Enforce that sequence does not contain null. Returns the + value if valid so that it can be used inline in + base initialiser syntax. + + + The value. + The name. + + + + + Enforces that the provided object is non-null. + + + The value. + + + + + Enforce that an argument is not null or empty. Returns the + value if valid so that it can be used inline in + base initialiser syntax. + + The value. + The description. + + + + + Enforce that the argument is a delegate type. + + The type to test. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The argument '{0}' cannot be empty.. + + + + + Looks up a localized string similar to The object of type '{0}' cannot be null.. + + + + + Looks up a localized string similar to Type {0} returns void.. + + + + + Looks up a localized string similar to The sequence provided as argument '{0}' cannot contain null elements.. + + + + + Looks up a localized string similar to Type {0} is not a delegate type.. + + + + + Extension methods for reflection-related types. + + + + + Maps from a property-set-value parameter to the declaring property. + + Parameter to the property setter. + The property info on which the setter is specified. + True if the parameter is a property setter. + + + + Get a PropertyInfo object from an expression of the form + x => x.P. + + Type declaring the property. + The type of the property. + Expression mapping an instance of the + declaring type to the property value. + Property info. + + + + Get the MethodInfo for a method called in the + expression. + + Type on which the method is called. + Expression demonstrating how the method appears. + The method info for the called method. + + + + Gets the for the new operation called in the expression. + + The type on which the constructor is called. + Expression demonstrating how the constructor is called. + The for the called constructor. + + + + Retrieves a custom attribute of a specified type that is applied to a specified member, + and optionally inspects the ancestors of that member. + + The type of attribute to search for. + The member to inspect. + true to inspect the ancestors of element; otherwise, false. + A custom attribute that matches , or null if no such attribute is found. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The provided expression must be of the form () =>new X(), but the provided expression was {0}.. + + + + + Looks up a localized string similar to The provided expression must be of the form x =>x.M(), but the provided expression was {0}.. + + + + + Looks up a localized string similar to The provided expression must be of the form x =>x.P, but the provided expression was {0}.. + + + + + Adapts an action to the interface. + + + + + Joins the strings into one single string interspersing the elements with the separator (a-la + System.String.Join()). + + The elements. + The separator. + The joined string. + + + + Appends the item to the specified sequence. + + + The sequence. + The trailing item. + + + + + Prepends the item to the specified sequence. + + + The sequence. + The leading item. + + + + Returns the first concrete interface supported by the candidate type that + closes the provided open generic service type. + The type that is being checked for the interface. + The open generic type to locate. + The type of the interface. + + + + Looks for an interface on the candidate type that closes the provided open generic interface type. + + The type that is being checked for the interface. + The open generic service type to locate. + True if a closed implementation was found; otherwise false. + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + + + Signal attribute for static analysis that indicates a helper method is + validating arguments for . + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Delegate Support (Func<T>and Custom Delegates). + + + + diff --git a/dep/Autofac.Extras.FakeItEasy.3.0.0/Autofac.Extras.FakeItEasy.3.0.0.nuspec b/dep/Autofac.Extras.FakeItEasy.3.0.0/Autofac.Extras.FakeItEasy.3.0.0.nuspec new file mode 100644 index 00000000000..c071609174e --- /dev/null +++ b/dep/Autofac.Extras.FakeItEasy.3.0.0/Autofac.Extras.FakeItEasy.3.0.0.nuspec @@ -0,0 +1,23 @@ + + + + Autofac.Extras.FakeItEasy + 3.0.0 + Autofac Extras: FakeItEasy Faking Support + Autofac Contributors + Autofac Contributors + http://www.opensource.org/licenses/mit-license.php + http://autofac.org/ + http://code.google.com/p/autofac/logo + false + This extension provides support for autofaking and creation of fake objects in FakeItEasy using Autofac. + Autofac extension supporting generation of FakeItEasy objects. + + + en-US + + + + + + \ No newline at end of file diff --git a/dep/Autofac.Extras.FakeItEasy.3.0.0/lib/net40/Autofac.Extras.FakeItEasy.dll b/dep/Autofac.Extras.FakeItEasy.3.0.0/lib/net40/Autofac.Extras.FakeItEasy.dll new file mode 100644 index 0000000000000000000000000000000000000000..4f1f62db0efc8b24642a9c8a65759c5658b0c31a GIT binary patch literal 11776 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 + + + Autofac.Extras.FakeItEasy + + + + + Wrapper around and + + + + + Initializes a new instance of the class. + + + to create strict fakes. + This means that any calls to the fakes that have not been explicitly configured will throw an exception. + + + to delegate configured method calls to the base method of the faked method. + + + to configure fake calls to do nothing when called. + + The container builder to use to build the container. + Specifies an action that should be run over a fake object once it's created. + + + + Finalizes an instance of the class. + + + + + Disposes internal container. + + + + + Resolve the specified type in the container (register it if needed) + + The type of the service. + Optional parameters + The service. + + + + Resolve the specified type in the container (register it if needed) + + The type of the service. + Optional parameters + The service. + + + + Resolve the specified type in the container (register it if needed) + + The type of the service. + The implementation of the service. + Optional parameters + The service. + + + + Resolve the specified type in the container (register specified instance if needed) + + The type of the service. + The instance to register if needed. + The instance resolved from container. + + + + Handles disposal of managed and unmanaged resources. + + + to dispose of managed resources (during a manual execution + of ); or + if this is getting run as part of finalization where + managed resources may have already been cleaned up. + + + + + Gets the that handles the component resolution. + + + + Resolves unknown interfaces and Fakes. + + + + Initializes a new instance of the class. + + Whether fakes should be created with strict semantics. + Whether fakes should call base methods. + Whether calls to fakes should do nothing. + An action to perform on a fake when it is created. + + + + Retrieve registrations for an unregistered service, to be used + by the container. + + The service that was requested. + A function that will return existing registrations for a service. + Registrations providing the service. + + + + Creates a fake object. + + The typed service. + A fake object. + + + + Gets whether the registrations provided by this source are 1:1 adapters on top + of other components (I.e. like Meta, Func or Owned.) + + + + diff --git a/dep/FakeItEasy.1.15.0/lib/net35/FakeItEasy.dll b/dep/FakeItEasy.1.15.0/lib/net35/FakeItEasy.dll new file mode 100644 index 0000000000000000000000000000000000000000..bf603e6aed943d90af255ab2fc012f4a7e28e9ed GIT binary patch literal 645120 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

`TUNbd!Z#};E7>Oln?kuzx? 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 literal 0 HcmV?d00001 diff --git a/dep/FakeItEasy.1.17.0/lib/net40/FakeItEasy.xml b/dep/FakeItEasy.1.15.0/lib/net35/FakeItEasy.xml similarity index 95% rename from dep/FakeItEasy.1.17.0/lib/net40/FakeItEasy.xml rename to dep/FakeItEasy.1.15.0/lib/net35/FakeItEasy.xml index d30cdb8d825..54ea9aca845 100644 --- a/dep/FakeItEasy.1.17.0/lib/net40/FakeItEasy.xml +++ b/dep/FakeItEasy.1.15.0/lib/net35/FakeItEasy.xml @@ -84,6 +84,28 @@ An expression where the configured member is called. A configuration object. + +

+ Provides an API entry point for constraining arguments of fake object calls. + + The type of argument to validate. + + + + Gets an argument constraint object that will be used to constrain a method call argument. + + + + + Gets a constraint that considers any value of an argument as valid. + + This is a shortcut for the "Ignored"-property. + + + + Gets a constraint that considers any value of an argument as valid. + + Provides configuration for any (not a specific) call on a faked object. @@ -113,2327 +135,2222 @@ The object B. True if the objects are the same reference. - + - Provides string formatting for arguments of type T when written in call lists. + A collection of method arguments. - The type of the arguments which will be formatted by this instance. - + - Provides string formatting for arguments when written in - call lists. + The arguments this collection contains. - + - Gets a string representing the specified argument value. + Initializes a new instance of the class. - The argument value to get as a string. - A string representation of the value. + The arguments. + The argument names. - + - Gets the type of arguments this formatter works on. + Initializes a new instance of the class. + The arguments. + The method. - + - Gets the priority of the formatter, when two formatters are - registered for the same type the one with the highest - priority is used. + Returns an enumerator that iterates through the collection or arguments. + + A that can be used to iterate through the collection. + - + - Gets a string representing the specified argument value. + Gets the argument at the specified index. - The argument value to get as a string. - A string representation of the value. + The type of the argument to get. + The index of the argument. + The argument at the specified index. - + - Gets a string representing the specified argument value. + Gets the argument with the specified name. - The argument value to get as a string. - A string representation of the value. + The type of the argument to get. + The name of the argument. + The argument with the specified name. - + - Gets the type of arguments this formatter works on. + Gets an empty ArgumentList. - + - Gets the priority of the formatter, when two formatters are - registered for the same type the one with the highest - priority is used. + Gets the number of arguments in the list. - + - Provides the base for rules that can be built using the FakeConfiguration. + Gets the names of the arguments in the list. - + - Represents a call rule that has a description of the calls the - rule is applicable to. + Gets the argument at the specified index. + The index of the argument to get. + The argument at the specified index. - + - Allows for intercepting call to a fake object and - act upon them. + Provides validation extensions for . - + - Gets whether this interceptor is applicable to the specified - call, if true is returned the Apply-method of the interceptor will - be called. + Constrains an argument so that it must be null (Nothing in VB). - The call to check for applicability. - True if the interceptor is applicable. + The type of the argument. + The constraint manager to match the constraint. + A dummy argument value. - + - Applies an action to the call, might set a return value or throw - an exception. + Constrains the string argument to contain the specified text. - The call to apply the interceptor to. + The constraint manager to match the constraint. + The string the argument string should contain. + A dummy argument value. - + - Gets the number of times this call rule is valid, if it's set - to null its infinitely valid. + Constrains the sequence so that it must contain the specified value. + The constraint manager to match the constraint. + The value the collection should contain. + The type of sequence. + A dummy argument value. - + - Writes a description of calls the rule is applicable to. + Constrains the string so that it must start with the specified value. - The writer. + The constraint manager to match the constraint. + The value the string should start with. + A dummy argument value. - + - Gets if this rule is applicable to the specified call. + Constrains the string so that it must end with the specified value. - The call to validate. - True if the rule applies to the call. + The constraint manager to match the constraint. + The value the string should end with. + A dummy argument value. - + - Writes a description of calls the rule is applicable to. + Constrains the string so that it must be null or empty. - The writer to write the description to. + The constraint manager to match the constraint. + A dummy argument value. - + - Gets or sets an action that is called by the Apply method to apply this - rule to a fake object call. + Constrains argument value so that it must be greater than the specified value. + The constraint manager to match the constraint. + The value the string should start with. + The type of argument to constrain. + A dummy argument value. - + - Gets a collection of actions that should be invoked when the configured - call is made. + The tested argument collection should contain the same elements as the + as the specified collection. + The constraint manager to match the constraint. + The sequence to test against. + The type of argument to constrain. + A dummy argument value. - + - Gets or sets values to apply to output and reference variables. + Tests that the IEnumerable contains no items. + The type of argument. + The constraint manager to match the constraint. + A dummy argument value. - + - Gets or sets a value indicating whether the base method of the fake object call should be - called when the fake object call is made. + Tests that the passed in argument is equal to the specified value. + The type of the argument. + The constraint manager to match the constraint. + The value to compare to. + A dummy argument value. - + - Gets or sets the number of times the configured rule should be used. + Tests that the passed in argument is the same instance (reference) as the specified value. + The type of the argument. + The constraint manager to match the constraint. + The reference to compare to. + A dummy argument value. - + - Gets a description of calls the rule is applicable to. + Constrains the argument to be of the specified type. - + The type of argument in the method signature. + The constraint manager. + The type to constrain the argument with. + A dummy value. - + - Aggregate of IReturnValueArgumentValidationConfiguration<T> and IWhereConfiguration<IAnyCallConfigurationWithReturnTypeSpecified<T>>. + Constrains the argument with a predicate. - The type of fake object that is configured. + + The constraint manager. + + + The predicate that should constrain the argument. + + + A human readable description of the constraint. + + + The type of argument in the method signature. + + + A dummy argument value. + - + - Configures a call that returns a value and allows the use to - specify validations for arguments. + Constrains the argument with a predicate. - The type of the member. + + The constraint manager. + + + The predicate that should constrain the argument. + + + A human readable description of the constraint format string. + + + Arguments for the format string. + + + The type of argument in the method signature. + + + A dummy argument value. + - + - Configures a call that returns a value. - - The type of the member. - - - - Configuration that lets the developer specify that an exception should be - thrown by a fake object call. + Constrains the argument with a predicate. + + The constraint manager. + + + The predicate that should constrain the argument. + + + The type of argument in the method signature. + + + A dummy argument value. + - + - Hides standard Object members to make fluent interfaces - easier to read. Found in the source of Autofac: - Based on blog post here: - + Constrains the argument to be not null (Nothing in VB) and to match + the specified predicate. + The type of the argument to constrain. + The constraint manager. + The predicate that constrains non null values. + An action that writes a description of the constraint + to the output. + A dummy argument value. - + - Hides the ToString-method. + Provides string formatting for arguments of type T when written in call lists. - A string representation of the implementing object. + The type of the arguments which will be formatted by this instance. - + - Determines whether the specified is equal to this instance. + Provides string formatting for arguments when written in + call lists. - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - + - Returns a hash code for this instance. + Gets a string representing the specified argument value. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - + The argument value to get as a string. + A string representation of the value. - + - Gets the type. + Gets the type of arguments this formatter works on. - The exact runtime type of the current instance. - + - Throws the specified exception when the currently configured - call gets called. + Gets the priority of the formatter, when two formatters are + registered for the same type the one with the highest + priority is used. - A function that creates the exception to throw. - Configuration object. - + - Configuration for callbacks of fake object calls. + Gets a string representing the specified argument value. - The type of interface to return. + The argument value to get as a string. + A string representation of the value. - + - Executes the specified action when a matching call is being made. + Gets a string representing the specified argument value. - The action to invoke. - A configuration object. + The argument value to get as a string. + A string representation of the value. - + - Allows the developer to assert on a call that's configured. + Gets the type of arguments this formatter works on. - + - Asserts that the configured call has happened the number of times - constrained by the repeatConstraint parameter. + Gets the priority of the formatter, when two formatters are + registered for the same type the one with the highest + priority is used. - A constraint for how many times the call - must have happened. - The call has not been called a number of times - that passes the repeat constraint. - + - Configuration that lets you specify that a fake object call should call it's base method. + Provides extension methods for the common uses. - + - When the configured method or methods are called the call - will be delegated to the base method of the faked method. + Replaces the format item in a specified System.String with the text equivalent + of the value of a corresponding System.Object instance in a specified array using + invariant culture as . - A configuration object. - The fake object is of an abstract type or an interface - and no base method exists. + A composite format string. + An array containing zero or more objects to format. + The formatted string. - + - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. + Gets an enumerable of tuples where the first value of each tuple is a value + from the first collection and the second value of each tuple is the value at the same position + from the second collection. - A function that produces the return value. - A configuration object. + The type of values in the first collection. + The type of values in the second collection. + The first of the collections to combine. + The second of the collections to combine. + An enumerable of tuples. - + - Provides configurations to validate arguments of a fake object call. + Joins the collection to a string. - The type of interface to return. + The type of items in the collection. + The items to join. + A function that converts from an item to a string value. + Separator to insert between each item. + A string representation of the collection. - + - Configures the call to be accepted when the specified predicate returns true. + Gets a dictionary containing the first element from the sequence that has a key specified by the key selector. - The argument predicate. - A configuration object. + The type of items in the sequence. + The type of the key. + The sequence. + The key selector. + A dictionary. - + - Provides a way to configure predicates for when a call should be applied. + Provides the base for rules that can be built using the FakeConfiguration. - The type of fake object that is going to be configured.. - + - Applies a predicate to constrain which calls will be considered for interception. + Represents a call rule that has a description of the calls the + rule is applicable to. - A predicate for a fake object call. - An action that writes a description of the predicate - to the output. - The configuration object. - + - Provides an API entry point for constraining arguments of fake object calls. + Allows for intercepting call to a fake object and + act upon them. - The type of argument to validate. - + - Gets an argument constraint object that will be used to constrain a method call argument. + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + The call to check for applicability. + True if the interceptor is applicable. - + - Gets a constraint that considers any value of an argument as valid. + Applies an action to the call, might set a return value or throw + an exception. - This is a shortcut for the "Ignored"-property. + The call to apply the interceptor to. - + - Gets a constraint that considers any value of an argument as valid. + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. - + - Provides the Twice extension methods for configuring repeats on fake object call behavior. + Writes a description of calls the rule is applicable to. + The writer. - + - Specifies NumberOfTimes(2) to the IRepeatConfiguration{TFake}. + Gets if this rule is applicable to the specified call. - The configuration to set repeat 2 to. + The call to validate. + True if the rule applies to the call. - + - Provides extension methods for writing object calls to output devices. + Writes a description of calls the rule is applicable to. + The writer to write the description to. - + - Writes the calls in the collection to the specified output writer. + Gets or sets an action that is called by the Apply method to apply this + rule to a fake object call. - The type of the calls. - The calls to write. - The writer to write the calls to. - + - Writes all calls in the collection to the console. + Gets a collection of actions that should be invoked when the configured + call is made. - The type of the calls. - The calls to write. - + - Provides the MustNotHaveHappened extension method for asserting calls to fake objects. + Gets or sets values to apply to output and reference variables. - + - Asserts that the specified call has not happened. + Gets or sets a value indicating whether the base method of the fake object call should be + called when the fake object call is made. - The configuration to assert on. - + - Provides the ReturnsNextFromSequence extension method for specifying return values of fake object calls. + Gets or sets the number of times the configured rule should be used. - + - Configures the call to return the next value from the specified sequence each time it's called. Null will - be returned when all the values in the sequence has been returned. + Gets a description of calls the rule is applicable to. - - The type of return value. - - - The call configuration to extend. - - - The values to return in sequence. - + - + - Provides the ReturnsLazily extension methods for specifying return values of fake object calls. + Configuration for any call to a faked object. - + - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. + Provides a way to configure predicates for when a call should be applied. - The type of the return value. - The configuration to extend. - A function that produces the return value. - A configuration object. + The type of fake object that is going to be configured.. - + - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. + Applies a predicate to constrain which calls will be considered for interception. - The type of the return value. - Type of the first argument of the faked method call. - The configuration to extend. - A function that produces the return value. - A configuration object. - The signatures of the faked method and the do not match. + A predicate for a fake object call. + An action that writes a description of the predicate + to the output. + The configuration object. - + - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. + Provides configuration methods for methods that does not have a return value and + allows the use to specify validations for arguments. - The configuration to extend. - A function that produces the return value. - The type of the return value. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - A configuration object. - The signatures of the faked method and the do not match. - + - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. + Provides configuration methods for methods that does not have a return value. - The configuration to extend. - A function that produces the return value. - The type of the return value. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - A configuration object. - The signatures of the faked method and the do not match. - + - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. + Configuration that lets the developer specify that an exception should be + thrown by a fake object call. - The configuration to extend. - A function that produces the return value. - The type of the return value. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Type of the fourth argument of the faked method call. - A configuration object. - The signatures of the faked method and the do not match. - + - Provides a WithAnyArguments extension methods matching calls to fake objects. + Hides standard Object members to make fluent interfaces + easier to read. Found in the source of Autofac: + Based on blog post here: + - + - Specifies that a call to the configured call should be applied no matter what arguments - are used in the call to the faked object. + Hides the ToString-method. - The type of the interface. - The configuration. - A configuration object. + A string representation of the implementing object. - + - Provides the MustHaveHappened extension method for asserting calls to fake objects. + Determines whether the specified is equal to this instance. + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + - + - Asserts that the specified call must have happened once or more. + Returns a hash code for this instance. - The configuration to assert on. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + - + - Provides a Matching extension method for fake objects calls. + Gets the type. + The exact runtime type of the current instance. - + - Filters to contain only the calls that matches the call specification. + Throws the specified exception when the currently configured + call gets called. - The type of fake the call is made on. - The calls to filter. - The call to match on. - A collection of the calls that matches the call specification. + A function that creates the exception to throw. + Configuration object. - + - Provides the Throws extension methods for configuring fake object call behavior. + Configuration for callbacks of fake object calls. + The type of interface to return. - + - Throws the specified exception when the currently configured - call gets called. + Executes the specified action when a matching call is being made. - The configuration to use. - The exception to throw when a call that matches is invoked. - Configuration object. + The action to invoke. + A configuration object. - + - Throws the specified exception when the currently configured - call gets called. + Configuration that lets you specify that a fake object call should call it's base method. - The configuration to use. - A function that returns the exception to throw when invoked. - Configuration object. - + - Throws the specified exception when the currently configured - call gets called. + When the configured method or methods are called the call + will be delegated to the base method of the faked method. - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. + A configuration object. + The fake object is of an abstract type or an interface + and no base method exists. - + - Throws the specified exception when the currently configured - call gets called. + Lets the developer configure output values of out and ref parameters. - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. - + - Throws the specified exception when the currently configured - call gets called. + Specifies output values for out and ref parameters. Specify the values in the order + the ref and out parameters has in the configured call, any non out and ref parameters are ignored. - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. + The values. + A configuration object. - + - Throws the specified exception when the currently configured - call gets called. + Allows the developer to assert on a call that's configured. - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Type of the fourth argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. - + - Throws the specified exception when the currently configured - call gets called. + Asserts that the configured call has happened the number of times + constrained by the repeatConstraint parameter. - The configuration to use. - The type of exception to throw. - Configuration object. + A constraint for how many times the call + must have happened. + The call has not been called a number of times + that passes the repeat constraint. - + - Provides the Invokes extension method for configuring calls to fake objects. + Configures the specified call to do nothing when called. + A configuration object. - + - Executes the specified action when a matching call is being made. This overload can also be used to fake calls with arguments when they don't need to be accessed. + Provides configurations to validate arguments of a fake object call. - The type of fake object. - The configuration that is extended. - The to invoke. - The fake object. + The type of interface to return. - + - Executes the specified action when a matching call is being made. + Configures the call to be accepted when the specified predicate returns true. - The configuration that is extended. - The to invoke. - The type of fake object. - Type of the first argument of the faked method call. - The signatures of the faked method and the do not match. - The fake object. + The argument predicate. + A configuration object. - + - Executes the specified action when a matching call is being made. + Matches calls that has the return type specified in the generic type parameter. - The configuration that is extended. - The to invoke. - The type of fake object. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - The signatures of the faked method and the do not match. - The fake object. + The return type of the members to configure. + A configuration object. - + - Executes the specified action when a matching call is being made. + Manages registration of a set of components in a DictionaryContainer. - The configuration that is extended. - The to invoke. - The type of fake object. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - The signatures of the faked method and the do not match. - The fake object. - + - Executes the specified action when a matching call is being made. + Registers the components of this module. - The configuration that is extended. - The to invoke. - The type of fake object. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Type of the fourth argument of the faked method call. - The signatures of the faked method and the do not match. - The fake object. + The container to register components in. - + - Provides a Where extension method matching calls to fake objects. + A factory that creates instances of the RecordingCallRuleType. - + - Applies a predicate to constrain which calls will be considered for interception. + Creates the specified fake object. - The return type of the where method. - The configuration object to extend. - A predicate for a fake object call. - The configuration object. + The type of the fake. + The fake object the rule belongs to. + The rule that's being recorded. + A RecordingCallRule instance. - + - Provides the Strict extension methods for configuring fake objects. + A factory responsible for creating start configuration for fake objects. - + - Makes the fake strict, this means that any call to the fake - that has not been explicitly configured will throw an exception. + Creates a start configuration for the specified fake object that fakes the + specified type. - The type of fake object. - The configuration. + The type of the fake object. + The fake object to configure. A configuration object. - + - Provides the GetArgument extension methods for getting arguments from fake object calls. + An exception that can be thrown when something goes wrong with the configuration + of a fake object. - + - Gets the argument at the specified index in the arguments collection - for the call. + Initializes a new instance of the class. - The type of the argument to get. - The call to get the argument from. - The index of the argument. - The value of the argument with the specified index. - + - Gets the argument with the specified name in the arguments collection - for the call. + Initializes a new instance of the class. - The type of the argument to get. - The call to get the argument from. - The name of the argument. - The value of the argument with the specified name. + The message. - + - Provides the Returns extension method for specifying return values of fake object calls. + Initializes a new instance of the class. + The message. + The inner exception. - + - Specifies the value to return when the configured call is made. + Initializes a new instance of the class. - The type of the return value. - The configuration to extend. - The value to return. - A configuration object. + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + - + - Provides the Once extension methods for configuring repeats on fake object call behavior. + Handles the configuration of fake object given an expression specifying + a call on a faked object. - + - Specifies NumberOfTimes(1) to the IRepeatConfiguration{TFake}. + Lets you set up expectations and configure repeat for the configured call. - The configuration to set repeat 1 to. - + - A strongly-typed resource class, for looking up localized strings, etc. + Provides configuration for method calls that has a return value. - + - Returns the cached ResourceManager instance used by this class. + Specifies the number of times for the configured event. + The number of times to repeat. - + - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. + A combination of the IAfterCallSpecifiedConfiguration and IOutAndRefParametersConfiguration + interfaces. - + - Looks up a localized string similar to The Apply method of the ExpressionInterceptor may no be called before the Applicator property has been set.. + Aggregate of IReturnValueArgumentValidationConfiguration<T> and IWhereConfiguration<IAnyCallConfigurationWithReturnTypeSpecified<T>>. + The type of fake object that is configured. - + - Looks up a localized string similar to The specified argument name does not exist in the ArgumentList.. + Configures a call that returns a value and allows the use to + specify validations for arguments. + The type of the member. - + - Looks up a localized string similar to Arguments for constructor was specified when generating proxy of interface type.. + Configures a call that returns a value. + The type of the member. - + - Looks up a localized string similar to An argument validation was not configured correctly.. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + A function that produces the return value. + A configuration object. - + - Looks up a localized string similar to The method '{0}' was called too few times, expected #{1} times but was called #{2} times.. + Configurations for when a configured call is recorded. - + - Looks up a localized string similar to The method '{0}' was called too many times, expected #{1} times but was called #{2} times.. + Provides configuration from VisualBasic. - - - Looks up a localized string similar to Can not create fake of the type '{0}', it's not registered in the current container and the current IProxyGenerator can not generate the fake. - - The following constructors failed: - {1}. - - - + - Looks up a localized string similar to Error when accessing FakeObject, the specified argument is of the type '{0}' which is not faked.. + Provides methods for configuring a fake object. + The type of fake object. - + - Looks up a localized string similar to An ExpressionCallMatcher can only be created for expressions that represents a method call or a property getter.. + Configures the behavior of the fake object when a call that matches the specified + call happens. + The type of the return value of the member. + An expression that specifies the calls to configure. + A configuration object. - - - Looks up a localized string similar to - - The current proxy generator failed to create a proxy with the specified arguments for the constructor: - - Reason for failure: - - {0} - - . - - - - - Looks up a localized string similar to FakeItEasy failed to create fake object of type "{0}". - - 1. The type is not registered in the current IFakeObjectContainer. - 2. The current IProxyGenerator failed to generate a proxy for the following reason: - - {1}. - - - + - Looks up a localized string similar to Unable to create fake object.. + Configures the behavior of the fake object when a call that matches the specified + call happens. + An expression that specifies the calls to configure. + A configuration object. - + - Looks up a localized string similar to Only abstract classes can be faked using the A.Fake-method that takes an enumerable of objects as arguments for constructor, use the overload that takes an expression instead.. + Configures the behavior of the fake object when a call is made to any method on the + object. + A configuration object. - + - Looks up a localized string similar to The member accessor expression must be a lambda expression with a MethodCallExpression or MemberAccessExpression as its body.. + A call rule that has been recorded. - + - Looks up a localized string similar to The specified method can not be configured since it can not be intercepted by the current IProxyGenerator.. + A call rule that "sits and waits" for the next call, when + that call occurs the recorded rule is added for that call. + The type of the fake. - + - Looks up a localized string similar to The method of the call did not match the method of the recorded call, the recorded sequence is no longer valid.. + Provides access to a set of calls and a call matcher for these calls. - + - Looks up a localized string similar to No constructor matching the specified arguments was found on the type {0}.. + Provides access to a call matcher. - + - Looks up a localized string similar to Can not generate fake object for the class since no usable default constructor was found, specify a constructor call.. + Gets a call predicate that can be used to check if a fake object call matches + the specified constraint. - + - Looks up a localized string similar to All the recorded calls has been applied, the recorded sequence is no longer valid.. + Gets the set of calls. - + - Looks up a localized string similar to Only expression of the type ExpressionType.New (constructor calls) are accepted.. + Represents a delegate that creates a configuration object from + a fake object and the rule to build. + The rule that's being built. + The fake object the rule is for. + A configuration object. - + - Looks up a localized string similar to The Now-method on the event raise is not meant to be called directly, only use it to register to an event on a fake object that you want to be raised.. + Represents a predicate that matches a fake object call. - + - Looks up a localized string similar to The number of values for out and ref parameters specified does not match the number of out and ref parameters in the call.. + Gets a value indicating whether the call matches the predicate. + The call to match. + True if the call matches the predicate. - + - Looks up a localized string similar to A scope for ordered assertions is already opened, close that scope before opening another one.. + Provides configuration of faked objects. - + - Looks up a localized string similar to The specified call is not made on a fake object.. + Gets a configuration for the specified faked object. + The type of the fake. + The faked object to configure. + A configuration object. + The specified object is not a faked object. + The fakedObject parameter was null. - + - Looks up a localized string similar to The current fake proxy generator can not create proxies of the type {0}.. + Access all types in all assemblies in the same directory as the FakeItEasy assembly. - + - Looks up a localized string similar to FakeItEasy was unable to create dummy of type "{0}", register it in the current IFakeObjectContainer to enable this.. + Provides a set of types that are available. - + - Looks up a localized string similar to Expected to find call {0} the number of times specified by the predicate '{1}' but found it {2} times among the calls:. + Gets a collection of available types. + The available types. - + - Looks up a localized string similar to The number of argument names does not match the number of arguments.. + Initializes a new instance of the class. - + - A class exposing an event handler to attach to an event of a faked object - in order to raise that event. + Gets a collection of available types. - The type of the event args. + The available types. - + - Used by the event raising rule of fake objects to get the event arguments used in - a call to Raise.With. + Represents an argument and a dummy value to use for that argument. - + - Gets the sender of the event. + Initializes a new instance of the class. + A value indicating if the dummy value was successfully resolved. + The type of argument. + The resolved value. - + - Gets the event arguments of the event. + Gets a value indicating whether a dummy argument value was successfully + resolved. - + - Register this event handler to an event on a faked object in order to raise that event. + Gets the type of the argument. - The sender of the event. - Event args for the event. - + - Gets a generic event handler to attach to the event to raise. + Gets the resolved value. - + - Represents a fake object that provides an API for configuring a faked object, exposed by the - FakedObject-property. + Holds a formatter as well as the distance between a type to be formatted + and the type for which the formatted is registered. - The type of the faked object. - + - Provides methods for configuring a fake object. + Represents an event that happens when a call has been intercepted by a proxy. - The type of fake object. - + - Configures the behavior of the fake object when a call that matches the specified - call happens. + Initializes a new instance of the class. - The type of the return value of the member. - An expression that specifies the calls to configure. - A configuration object. + The call. - + - Configures the behavior of the fake object when a call that matches the specified - call happens. + Gets the call that was intercepted. - An expression that specifies the calls to configure. - A configuration object. + The call. - + - Configures the behavior of the fake object when a call is made to any method on the - object. + Keeps track of metadata for interceptions. - A configuration object. - + - Initializes a new instance of the class. - Creates a new fake object. + Gets whether the rule has been called the number of times specified or not. + True if the rule has not been called the number of times specified. - + - Initializes a new instance of the class. - Creates a new fake object using the specified options. + Gets or sets the number of times the rule has been used. - - Options used to create the fake object. - - + - Configures calls to the specified member. + Gets or sets the rule this metadata object is tracking. - An expression specifying the call to configure. - A configuration object. - + - Configures calls to the specified member. + Manages attaching of argument constraints. - The type of value the member returns. - An expression specifying the call to configure. - A configuration object. + The type of argument to constrain. - + - Configures any call to the fake object. + Constrains the argument with a predicate. - A configuration object. + The predicate that should constrain the argument. + An action that will be write a description of the constraint. + A dummy argument value. - + - Gets the faked object. + Inverts the logic of the matches method. - + - Gets all calls made to the faked object. + Validates an argument, checks that it's valid in a specific fake call. - + - Access all types in all assemblies in the same directory as the FakeItEasy assembly. + Writes a description of the argument constraint to the specified writer. + + The writer. + - + - Provides a set of types that are available. + Gets whether the argument is valid. + The argument to validate. + True if the argument is valid. - + - Gets a collection of available types. + Default implementation of . - The available types. - + - Initializes a new instance of the class. + Attaches a fake manager to the proxy so that intercepted + calls can be configured. - + - Gets a collection of available types. + Attaches a to the specified proxy, listening to + the event raiser. - The available types. + The type of the fake object proxy. + The proxy to attach to. + The event raiser to listen to. - + - Configuration for any call to a faked object. + Gets the fake manager associated with the proxy. + The proxy to get the manager from. + A fake manager. - + - Provides configuration methods for methods that does not have a return value and - allows the use to specify validations for arguments. + Attaches a to the specified proxy, listening to + the event raiser. + The type of the fake object proxy. + The proxy to attach to. + The event raiser to listen to. - + - Provides configuration methods for methods that does not have a return value. + Gets the fake manager associated with the proxy. + The proxy to get the manager from. + A fake manager. - + - Lets the developer configure output values of out and ref parameters. + Represents an object that can be tagged with another object. When implemented + by a proxy returned from an FakeItEasy uses the tag + to store a reference to the that handles that proxy. - + - Specifies output values for out and ref parameters. Specify the values in the order - the ref and out parameters has in the configured call, any non out and ref parameters are ignored. + Gets or sets the tag. - The values. - A configuration object. - + - Configures the specified call to do nothing when called. + The default implementation of the IFakeObjectCallFormatter interface. - A configuration object. - + - Matches calls that has the return type specified in the generic type parameter. + Provides string formatting for fake object calls. - The return type of the members to configure. - A configuration object. - + - Manages registration of a set of components in a DictionaryContainer. + Gets a human readable description of the specified + fake object call. + The call to get a description for. + A description of the call. - + - Registers the components of this module. + Gets a human readable description of the specified + fake object call. - The container to register components in. + The call to get a description for. + A description of the call. - + - A factory that creates instances of the RecordingCallRuleType. + Handles configuring of fake objects to delegate all their calls to a wrapped instance. - + - Creates the specified fake object. + Manages configuration of fake objects to wrap instances. - The type of the fake. - The fake object the rule belongs to. - The rule that's being recorded. - A RecordingCallRule instance. - + - A factory responsible for creating start configuration for fake objects. + Configures the specified faked object to wrap the specified instance. + The faked object to configure. + The instance to wrap. + The recorder to use, null if no recording should be made. - + - Creates a start configuration for the specified fake object that fakes the - specified type. + Configures the specified faked object to wrap the specified instance. - The type of the fake object. - The fake object to configure. - A configuration object. + The faked object to configure. + The instance to wrap. + The recorder to use, null if no recording should be made. - + - An exception that can be thrown when something goes wrong with the configuration - of a fake object. + A fake object container where delegates can be registered that are used to + resolve fake objects. - + - Initializes a new instance of the class. + A container that can create fake objects. - + - Initializes a new instance of the class. + Handles global configuration of fake object. - The message. - + - Initializes a new instance of the class. + Applies base configuration to a fake object. - The message. - The inner exception. + The type the fake object represents. + The fake object to configure. - + - Initializes a new instance of the class. + Creates a dummy object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - + The type of dummy object to create. + The dummy object that was created if the method returns true. + True if a dummy object can be created. - + - Handles the configuration of fake object given an expression specifying - a call on a faked object. + Initializes a new instance of the class. + Creates a new instance of the DelegateFakeObjectContainer. - + - Lets you set up expectations and configure repeat for the configured call. + Creates a fake object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + The type of dummy object to create. + The fake object that was created if the method returns true. + True if a fake object can be created. - + - Provides configuration for method calls that has a return value. + Configures the fake. + The type of fake. + The fake object. - + - Specifies the number of times for the configured event. + Registers the specified fake delegate. - The number of times to repeat. + The type of the return value of the method that encapsulates. + The fake delegate. - + - A combination of the IAfterCallSpecifiedConfiguration and IOutAndRefParametersConfiguration - interfaces. + A IFakeObjectContainer implementation that uses MEF to load IFakeDefinitions and + IFakeConfigurations. - + - Configurations for when a configured call is recorded. + Initializes a new instance of the class. + The dummy definitions. + The fake configurators. - + - Provides configuration from VisualBasic. + Creates a fake object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + The type of fake object to create. + The fake object that was created if the method returns true. + True if a fake object can be created. - + - A call rule that has been recorded. + Applies base configuration to a fake object. + The type the fake object represents. + The fake object to configure. - + - A call rule that "sits and waits" for the next call, when - that call occurs the recorded rule is added for that call. + An exception that is thrown when there was an error creating a fake object. - The type of the fake. - + - Provides access to a set of calls and a call matcher for these calls. + Initializes a new instance of the class. - + - Provides access to a call matcher. + Initializes a new instance of the class. + The message. - + - Gets a call predicate that can be used to check if a fake object call matches - the specified constraint. + Initializes a new instance of the class. + The message. + The inner exception. - + - Gets the set of calls. + Initializes a new instance of the class. + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + - + + Auto fake property rule. - Represents a delegate that creates a configuration object from - a fake object and the rule to build. + The central point in the API for proxied fake objects handles interception + of fake object calls by using a set of rules. User defined rules can be inserted + by using the AddRule-method. - The rule that's being built. - The fake object the rule is for. - A configuration object. + Event rule. + Object member rule. + Property behavior rule. + Property setter rule. - + - Represents a predicate that matches a fake object call. + Initializes a new instance of the class. - + - Gets a value indicating whether the call matches the predicate. + Adds a call rule to the fake object. - The call to match. - True if the call matches the predicate. + The rule to add. - + - Represents an argument and a dummy value to use for that argument. + Adds a call rule last in the list of user rules, meaning it has the lowest priority possible. + The rule to add. - + - Initializes a new instance of the class. + Removes the specified rule for the fake object. - A value indicating if the dummy value was successfully resolved. - The type of argument. - The resolved value. + The rule to remove. - + - Gets a value indicating whether a dummy argument value was successfully - resolved. + Adds an interception listener to the manager. + The listener to add. - + - Gets the type of the argument. + Removes any specified user rules. - + - Gets the resolved value. + Gets the faked object. - + - Holds a formatter as well as the distance between a type to be formatted - and the type for which the formatted is registered. + Gets the faked type. - + - Represents an event that happens when a call has been intercepted by a proxy. + Gets the interceptions that are currently registered with the fake object. - + - Initializes a new instance of the class. + Gets a collection of all the calls made to the fake object within the current scope. - The call. - + - Gets the call that was intercepted. + A delegate responsible for creating FakeObject instances. - The call. + An instance of . - + - Keeps track of metadata for interceptions. + Represents a call to a fake object at interception time. - + - Gets whether the rule has been called the number of times specified or not. + Represents a fake object call that can be edited. - True if the rule has not been called the number of times specified. - + - Gets or sets the number of times the rule has been used. + Represents a call to a fake object. - + - Gets or sets the rule this metadata object is tracking. + Gets the method that's called. - + - Manages attaching of argument constraints. + Gets the arguments used in the call. - The type of argument to constrain. - + - Constrains the argument with a predicate. + Gets the faked object the call is performed on. - The predicate that should constrain the argument. - An action that will be write a description of the constraint. - A dummy argument value. - + - Inverts the logic of the matches method. + Sets the return value of the call. + The return value to set. - + - Validates an argument, checks that it's valid in a specific fake call. + Calls the base method of the faked type. - + - Writes a description of the argument constraint to the specified writer. + Sets the value of the argument at the specified index in the parameters list. - - The writer. - + The index of the argument to set the value of. + The value to set to the argument. - + - Gets whether the argument is valid. + Freezes the call so that it can no longer be modified. - The argument to validate. - True if the argument is valid. + A completed fake object call. - + - Default implementation of . + Sets that the call should not be recorded by the fake manager. - + - Attaches a fake manager to the proxy so that intercepted - calls can be configured. + Represents a scope for fake objects, calls configured within a scope + are only valid within that scope. Only calls made within a scope + are accessible from within a scope so for example asserts will only + assert on those calls done within the scope. - + - Attaches a to the specified proxy, listening to - the event raiser. + Provides access to all calls made to fake objects within a scope. + Scopes calls so that only calls made within the scope are visible. - The type of the fake object proxy. - The proxy to attach to. - The event raiser to listen to. - + - Gets the fake manager associated with the proxy. + Creates a new scope and sets it as the current scope. - The proxy to get the manager from. - A fake manager. + The created scope. - + - Attaches a to the specified proxy, listening to - the event raiser. + Creates a new scope and sets it as the current scope, using the specified + container as the container for the new scope. - The type of the fake object proxy. - The proxy to attach to. - The event raiser to listen to. + The container to use for the new scope. + The created scope. - + - Gets the fake manager associated with the proxy. + Closes the scope. - The proxy to get the manager from. - A fake manager. - + - Represents an object that can be tagged with another object. When implemented - by a proxy returned from an FakeItEasy uses the tag - to store a reference to the that handles that proxy. + Adds an intercepted call to the current scope. + The fake object. + The call that is intercepted. - + - Gets or sets the tag. + Adds a fake object call to the current scope. + The fake object. + The rule to add. - + - The default implementation of the IFakeObjectCallFormatter interface. + Represents a completed call to a fake object. - + - Provides string formatting for fake object calls. + Gets the value set to be returned from the call. - + - Gets a human readable description of the specified - fake object call. + Used by the event raising rule of fake objects to get the event arguments used in + a call to Raise.With. - The call to get a description for. - A description of the call. - + - Gets a human readable description of the specified - fake object call. + Gets the sender of the event. - The call to get a description for. - A description of the call. - + - Handles configuring of fake objects to delegate all their calls to a wrapped instance. + Gets the event arguments of the event. - + - Manages configuration of fake objects to wrap instances. + Represents a listener for fake object calls, can be plugged into a + FakeManager instance to listen to all intercepted calls. + The OnBeforeCallIntercepted method will be invoked before the OnBeforeCallIntercepted method of any + previously added listener. The OnAfterCallIntercepted method will be invoked after the OnAfterCallIntercepted + method of any previously added listener. - + - Configures the specified faked object to wrap the specified instance. + Called when the interception begins but before any call rules + has been applied. - The faked object to configure. - The instance to wrap. - The recorder to use, null if no recording should be made. + The intercepted call. - + - Configures the specified faked object to wrap the specified instance. + Called when the interception has been completed and rules has been + applied. - The faked object to configure. - The instance to wrap. - The recorder to use, null if no recording should be made. + The intercepted call. + The rule that was applied to the call. - + - A fake object container where delegates can be registered that are used to - resolve fake objects. + Handles comparisons of instances of . - + - A container that can create fake objects. + Gets a value indicating whether the two instances of would invoke the same method + if invoked on an instance of the target type. + The type of target for invocation. + The first . + The second . + True if the same method would be invoked. - + - Handles global configuration of fake object. + A null implementation for the IFakeObjectContainer interface. - + + + Always returns false and sets the fakeObject to null. + + The type of dummy object to create. + Output variable for the fake object that will always be set to null. + Always return false. + + Applies base configuration to a fake object. The type the fake object represents. The fake object to configure. - + - Creates a dummy object of the specified type using the specified arguments if it's - supported by the container, returns a value indicating if it's supported or not. + Provides instances from type catalogues. - The type of dummy object to create. - The dummy object that was created if the method returns true. - True if a dummy object can be created. - + - Initializes a new instance of the class. - Creates a new instance of the DelegateFakeObjectContainer. + Gets an instance per type in the catalogue that is a descendant + of the specified type. + The type of instances to get. + A sequence of instances of the specified type. - + - Creates a fake object of the specified type using the specified arguments if it's - supported by the container, returns a value indicating if it's supported or not. + A call rule that applies to any call and just delegates the + call to the wrapped object. - The type of dummy object to create. - The fake object that was created if the method returns true. - True if a fake object can be created. - + - Configures the fake. + Initializes a new instance of the class. + Creates a new instance. - The type of fake. - The fake object. + + The object to wrap. + - + - Registers the specified fake delegate. + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. - The type of the return value of the method that encapsulates. - The fake delegate. + The call to check for applicability. + True if the interceptor is applicable. - + - A IFakeObjectContainer implementation that uses MEF to load IFakeDefinitions and - IFakeConfigurations. + Applies an action to the call, might set a return value or throw + an exception. + The call to apply the interceptor to. - + - Initializes a new instance of the class. + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. - The dummy definitions. - The fake configurators. + - + - Creates a fake object of the specified type using the specified arguments if it's - supported by the container, returns a value indicating if it's supported or not. + An interface to be implemented by classes that can generate proxies for FakeItEasy. - The type of fake object to create. - The fake object that was created if the method returns true. - True if a fake object can be created. - + - Applies base configuration to a fake object. + Generates a proxy of the specified type and returns a result object containing information + about the success of the generation and the proxy if it was generated. - The type the fake object represents. - The fake object to configure. + The type of proxy to generate. + Interfaces to be implemented by the proxy. + Arguments to pass to the constructor of the type in . + The custom attribute builders. + A result containing the generated proxy. - + - An exception that is thrown when there was an error creating a fake object. + Generates a proxy of the specified type and returns a result object containing information + about the success of the generation and the proxy if it was generated. + The type of proxy to generate. + Interfaces to be implemented by the proxy. + Arguments to pass to the constructor of the type in . + A result containing the generated proxy. - + - Initializes a new instance of the class. + Gets a value indicating whether the specified member can be intercepted by the proxy generator. + The member to test. + The instance the method will be called on. + The reason the method can not be intercepted. + True if the member can be intercepted. - + - Initializes a new instance of the class. + An object that raises an event every time a call to a proxy has been intercepted. - The message. - + - Initializes a new instance of the class. + Raised when a call is intercepted. - The message. - The inner exception. - + - Initializes a new instance of the class. + An adapter that adapts an to a . - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - - - Auto fake property rule. + - The central point in the API for proxied fake objects handles interception - of fake object calls by using a set of rules. User defined rules can be inserted - by using the AddRule-method. + Initializes a new instance of the class. - Event rule. - Object member rule. - Property behavior rule. - Property setter rule. + The invocation. - + - Initializes a new instance of the class. + Freezes the call so that it can no longer be modified. + A completed fake object call. - + - Adds a call rule to the fake object. + Calls the base method, should not be used with interface types. - The rule to add. - + - Adds a call rule last in the list of user rules, meaning it has the lowest priority possible. + Sets the specified value to the argument at the specified index. - The rule to add. + The index of the argument to set the value to. + The value to set to the argument. - + - Removes the specified rule for the fake object. + Sets the return value of the call. - The rule to remove. + The return value. - + - Adds an interception listener to the manager. + Returns a description of the call. - The listener to add. + + A that represents this instance. + - + - Removes any specified user rules. + Gets a human readable description of the call. + - + - Gets the faked object. + Gets the value set to be returned from the call. - + - Gets the faked type. + Gets the method that's called. - + - Gets the interceptions that are currently registered with the fake object. + Gets the arguments used in the call. - + - Gets a collection of all the calls made to the fake object within the current scope. + Gets the faked object the call is performed on. - + - A delegate responsible for creating FakeObject instances. + A strongly-typed resource class, for looking up localized strings, etc. - An instance of . - + - Represents a call to a fake object at interception time. + Returns the cached ResourceManager instance used by this class. - + - Represents a fake object call that can be edited. + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. - + - Represents a call to a fake object. + Looks up a localized string similar to No constructor matches the passed arguments for constructor.. - + - Gets the method that's called. + Looks up a localized string similar to Arguments for constructor specified for interface type.. - + - Gets the arguments used in the call. + Looks up a localized string similar to The type of proxy "{0}" is sealed.. - + - Gets the faked object the call is performed on. + Looks up a localized string similar to The type of proxy must be an interface or a class but it was {0}.. - + - Sets the return value of the call. + Looks up a localized string similar to No usable default constructor was found on the type {0}.. - The return value to set. - + - Calls the base method of the faked type. + The default implementation of the IFakeAndDummyManager interface. - + - Sets the value of the argument at the specified index in the parameters list. + Handles the creation of fake and dummy objects. - The index of the argument to set the value of. - The value to set to the argument. - + - Freezes the call so that it can no longer be modified. + Creates a dummy of the specified type. - A completed fake object call. + The type of dummy to create. + The created dummy. + The current IProxyGenerator is not able to generate a fake of the specified type and + the current IFakeObjectContainer does not contain the specified type. - + - Sets that the call should not be recorded by the fake manager. + Creates a fake object of the specified type. + The type of fake object to generate. + Options for building the fake object. + A fake object. + The current IProxyGenerator is not able to generate a fake of the specified type. - + - Represents a scope for fake objects, calls configured within a scope - are only valid within that scope. Only calls made within a scope - are accessible from within a scope so for example asserts will only - assert on those calls done within the scope. + Tries to create a dummy of the specified type. + The type of dummy to create. + Outputs the result dummy when creation is successful. + A value indicating whether the creation was successful. - + - Provides access to all calls made to fake objects within a scope. - Scopes calls so that only calls made within the scope are visible. + Tries to create a fake object of the specified type. + The type of fake to create. + Options for the creation of the fake. + The created fake object when creation is successful. + A value indicating whether the creation was successful. - + - Creates a new scope and sets it as the current scope. + Default implementation of the IFakeCreator-interface. - The created scope. - + - Creates a new scope and sets it as the current scope, using the specified - container as the container for the new scope. + A facade used by the public API for testability. - The container to use for the new scope. - The created scope. - + - Closes the scope. + Creates a fake object of the specified type. + The type of fake to create. + Options for the created fake object. + The created fake object. + Was unable to generate the fake in the current configuration. - + - Adds an intercepted call to the current scope. + Creates a dummy object, this can be a fake object or an object resolved + from the current IFakeObjectContainer. - The fake object. - The call that is intercepted. + The type of dummy to create. + The created dummy. + Was unable to generate the fake in the current configuration and + no dummy was registered in the container for the specified type.. - + - Adds a fake object call to the current scope. + Creates a collection of fakes of the specified type. - The fake object. - The rule to add. + The type of fakes to create. + The number of fakes in the collection. + A collection of fake objects of the specified type. - + - Represents a listener for fake object calls, can be plugged into a - FakeManager instance to listen to all intercepted calls. + Initializes a new instance of the class. - The OnBeforeCallIntercepted method will be invoked before the OnBeforeCallIntercepted method of any - previously added listener. The OnAfterCallIntercepted method will be invoked after the OnAfterCallIntercepted - method of any previously added listener. + The fake and dummy manager. - + - Called when the interception begins but before any call rules - has been applied. + Creates a fake object of the specified type. - The intercepted call. + The type of fake to create. + Options for the created fake object. + The created fake object. + Was unable to generate the fake in the current configuration. - + - Called when the interception has been completed and rules has been - applied. + Creates a collection of fakes of the specified type. - The intercepted call. - The rule that was applied to the call. + The type of fakes to create. + The number of fakes in the collection. + + A collection of fake objects of the specified type. + - + - An interface to be implemented by classes that can generate proxies for FakeItEasy. + Creates a dummy object, this can be a fake object or an object resolved + from the current IFakeObjectContainer. + The type of dummy to create. + The created dummy. + Was unable to generate the fake in the current configuration and + no dummy was registered in the container for the specified type.. - + - Generates a proxy of the specified type and returns a result object containing information - about the success of the generation and the proxy if it was generated. + Provides options for fake wrappers. - The type of proxy to generate. - Interfaces to be implemented by the proxy. - Arguments to pass to the constructor of the type in . - The custom attribute builders. - A result containing the generated proxy. + The type of the fake object generated. - + - Generates a proxy of the specified type and returns a result object containing information - about the success of the generation and the proxy if it was generated. + Provides options for generating fake object. - The type of proxy to generate. - Interfaces to be implemented by the proxy. - Arguments to pass to the constructor of the type in . - A result containing the generated proxy. + The type of fake object generated. - + - Gets a value indicating whether the specified member can be intercepted by the proxy generator. + Specifies arguments for the constructor of the faked class. - The member to test. - The instance the method will be called on. - The reason the method can not be intercepted. - True if the member can be intercepted. + The arguments to pass to the constructor of the faked class. + Options object. - + - An object that raises an event every time a call to a proxy has been intercepted. + Specifies arguments for the constructor of the faked class by giving an expression with the call to + the desired constructor using the arguments to be passed to the constructor. + The constructor call to use when creating a class proxy. + Options object. - + - Raised when a call is intercepted. + Specifies that the fake should delegate calls to the specified instance. + The object to delegate calls to. + Options object. - + - Represents a completed call to a fake object. + Specifies that the fake should be created with these additional attributes. + The attributes to build into the proxy. + Options object. - + - Gets the value set to be returned from the call. + Sets up the fake to implement the specified interface in addition to the + originally faked class. + The type of interface to implement. + Options object. + The specified type is not an interface. + The specified type is null. - + - Represents a text writer that writes to the output. + Specifies an action that should be run over the fake object + once it's created. + An action to perform. + Options object. - + - Writes the specified value to the output. + Specifies a fake recorder to use. - The value to write. - The writer for method chaining. + The recorder to use. + Options object. - + - Formats the specified argument value as a string and writes - it to the output. + Initializes a new instance of the class. - The value to write. - The writer for method chaining. + The container. + The fake object creator. - + - Indents the writer. + Contains the result of a call to TryCreateProxy of IProxyGenerator. - A disposable that will unindent the writer when disposed. - + - Provides instances from type catalogues. + Initializes a new instance of the class. + Creates a new instance representing a failed proxy + generation attempt. + + The reason the proxy generation failed. + - + - Gets an instance per type in the catalogue that is a descendant - of the specified type. + Initializes a new instance of the class. + Creates a new instance representing a failed proxy + generation attempt due to an exception being caught. - The type of instances to get. - A sequence of instances of the specified type. + + The reason the proxy generation failed. + + + The exception thrown from the creation attempt. + - + - Handles comparisons of instances of . + Initializes a new instance of the class. + Creates a new instance representing a successful proxy + generation. + + The proxy that was generated. + + + An event raiser that raises + events when calls are intercepted to the proxy. + - + - Gets a value indicating whether the two instances of would invoke the same method - if invoked on an instance of the target type. + Gets a value indicating whether the proxy was successfully created. - The type of target for invocation. - The first . - The second . - True if the same method would be invoked. - + - A null implementation for the IFakeObjectContainer interface. + Gets the generated proxy when it was successfully created. - + - Always returns false and sets the fakeObject to null. + Gets the event raiser that raises events when calls to the proxy are + intercepted. - The type of dummy object to create. - Output variable for the fake object that will always be set to null. - Always return false. - + - Applies base configuration to a fake object. + Gets the reason for failure when the generation was not successful. - The type the fake object represents. - The fake object to configure. - + - A call rule that applies to any call and just delegates the - call to the wrapped object. + Represents a text writer that writes to the output. - + - Initializes a new instance of the class. - Creates a new instance. + Writes the specified value to the output. - - The object to wrap. - + The value to write. + The writer for method chaining. - + - Gets whether this interceptor is applicable to the specified - call, if true is returned the Apply-method of the interceptor will - be called. + Formats the specified argument value as a string and writes + it to the output. - The call to check for applicability. - True if the interceptor is applicable. + The value to write. + The writer for method chaining. - + - Applies an action to the call, might set a return value or throw - an exception. + Indents the writer. - The call to apply the interceptor to. + A disposable that will unindent the writer when disposed. - + - Gets the number of times this call rule is valid, if it's set - to null its infinitely valid. + Represents a definition of how a fake object of the type T should + be created. - + The type of fake. - + - An adapter that adapts an to a . + Represents a definition of how dummies of the specified type should be created. - + - Initializes a new instance of the class. + Creates the fake. - The invocation. + The fake object. - + - Freezes the call so that it can no longer be modified. + Gets the type of fake object the definition is for. - A completed fake object call. - + - Calls the base method, should not be used with interface types. + Creates the dummy. + The dummy object. - + - Sets the specified value to the argument at the specified index. + Creates the dummy. - The index of the argument to set the value to. - The value to set to the argument. + The dummy object. - + - Sets the return value of the call. + Gets the type the definition is for. - The return value. + For type. - + - Returns a description of the call. + A strongly-typed resource class, for looking up localized strings, etc. - - A that represents this instance. - - + - Gets a human readable description of the call. + Returns the cached ResourceManager instance used by this class. - - + - Gets the value set to be returned from the call. + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. - + - Gets the method that's called. + Looks up a localized string similar to The Apply method of the ExpressionInterceptor may no be called before the Applicator property has been set.. - + - Gets the arguments used in the call. + Looks up a localized string similar to The specified argument name does not exist in the ArgumentList.. - + - Gets the faked object the call is performed on. + Looks up a localized string similar to Arguments for constructor was specified when generating proxy of interface type.. - + - A strongly-typed resource class, for looking up localized strings, etc. + Looks up a localized string similar to An argument validation was not configured correctly.. - + - Returns the cached ResourceManager instance used by this class. + Looks up a localized string similar to The method '{0}' was called too few times, expected #{1} times but was called #{2} times.. - + - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. + Looks up a localized string similar to The method '{0}' was called too many times, expected #{1} times but was called #{2} times.. - + + + Looks up a localized string similar to Can not create fake of the type '{0}', it's not registered in the current container and the current IProxyGenerator can not generate the fake. + + The following constructors failed: + {1}. + + + - Looks up a localized string similar to No constructor matches the passed arguments for constructor.. + Looks up a localized string similar to Error when accessing FakeObject, the specified argument is of the type '{0}' which is not faked.. - + - Looks up a localized string similar to Arguments for constructor specified for interface type.. + Looks up a localized string similar to An ExpressionCallMatcher can only be created for expressions that represents a method call or a property getter.. - + + + Looks up a localized string similar to + + The current proxy generator failed to create a proxy with the specified arguments for the constructor: + + Reason for failure: + - {0} + + . + + + + + Looks up a localized string similar to FakeItEasy failed to create fake object of type "{0}". + + 1. The type is not registered in the current IFakeObjectContainer. + 2. The current IProxyGenerator failed to generate a proxy for the following reason: + + {1}. + + + - Looks up a localized string similar to The type of proxy "{0}" is sealed.. + Looks up a localized string similar to Unable to create fake object.. - + - Looks up a localized string similar to The type of proxy must be an interface or a class but it was {0}.. + Looks up a localized string similar to Only abstract classes can be faked using the A.Fake-method that takes an enumerable of objects as arguments for constructor, use the overload that takes an expression instead.. - + - Looks up a localized string similar to No usable default constructor was found on the type {0}.. + Looks up a localized string similar to The member accessor expression must be a lambda expression with a MethodCallExpression or MemberAccessExpression as its body.. - + - The default implementation of the IFakeAndDummyManager interface. + Looks up a localized string similar to The specified method can not be configured since it can not be intercepted by the current IProxyGenerator.. - + - Handles the creation of fake and dummy objects. + Looks up a localized string similar to The method of the call did not match the method of the recorded call, the recorded sequence is no longer valid.. - + - Creates a dummy of the specified type. + Looks up a localized string similar to No constructor matching the specified arguments was found on the type {0}.. - The type of dummy to create. - The created dummy. - The current IProxyGenerator is not able to generate a fake of the specified type and - the current IFakeObjectContainer does not contain the specified type. - + - Creates a fake object of the specified type. + Looks up a localized string similar to Can not generate fake object for the class since no usable default constructor was found, specify a constructor call.. - The type of fake object to generate. - Options for building the fake object. - A fake object. - The current IProxyGenerator is not able to generate a fake of the specified type. - + - Tries to create a dummy of the specified type. + Looks up a localized string similar to All the recorded calls has been applied, the recorded sequence is no longer valid.. - The type of dummy to create. - Outputs the result dummy when creation is successful. - A value indicating whether the creation was successful. - + - Tries to create a fake object of the specified type. + Looks up a localized string similar to Only expression of the type ExpressionType.New (constructor calls) are accepted.. - The type of fake to create. - Options for the creation of the fake. - The created fake object when creation is successful. - A value indicating whether the creation was successful. - - - - Default implementation of the IFakeCreator-interface. - - - - - A facade used by the public API for testability. - - - - - Creates a fake object of the specified type. - - The type of fake to create. - Options for the created fake object. - The created fake object. - Was unable to generate the fake in the current configuration. - - - - Creates a dummy object, this can be a fake object or an object resolved - from the current IFakeObjectContainer. - - The type of dummy to create. - The created dummy. - Was unable to generate the fake in the current configuration and - no dummy was registered in the container for the specified type.. - - - - Creates a collection of fakes of the specified type. - - The type of fakes to create. - The number of fakes in the collection. - A collection of fake objects of the specified type. - - - - Initializes a new instance of the class. - - The fake and dummy manager. - - - - Creates a fake object of the specified type. - - The type of fake to create. - Options for the created fake object. - The created fake object. - Was unable to generate the fake in the current configuration. - - - - Creates a collection of fakes of the specified type. - - The type of fakes to create. - The number of fakes in the collection. - - A collection of fake objects of the specified type. - - - - - Creates a dummy object, this can be a fake object or an object resolved - from the current IFakeObjectContainer. - - The type of dummy to create. - The created dummy. - Was unable to generate the fake in the current configuration and - no dummy was registered in the container for the specified type.. - - - - Provides options for fake wrappers. - - The type of the fake object generated. - - - - Provides options for generating fake object. - - The type of fake object generated. - - - - Specifies arguments for the constructor of the faked class. - - The arguments to pass to the constructor of the faked class. - Options object. - - - - Specifies arguments for the constructor of the faked class by giving an expression with the call to - the desired constructor using the arguments to be passed to the constructor. - - The constructor call to use when creating a class proxy. - Options object. - - - - Specifies that the fake should delegate calls to the specified instance. - - The object to delegate calls to. - Options object. - + - Specifies that the fake should be created with these additional attributes. + Looks up a localized string similar to The Now-method on the event raise is not meant to be called directly, only use it to register to an event on a fake object that you want to be raised.. - The attributes to build into the proxy. - Options object. - + - Sets up the fake to implement the specified interface in addition to the - originally faked class. + Looks up a localized string similar to The number of values for out and ref parameters specified does not match the number of out and ref parameters in the call.. - The type of interface to implement. - Options object. - The specified type is not an interface. - The specified type is null. - + - Specifies an action that should be run over the fake object - once it's created. + Looks up a localized string similar to A scope for ordered assertions is already opened, close that scope before opening another one.. - An action to perform. - Options object. - + - Specifies a fake recorder to use. + Looks up a localized string similar to The specified call is not made on a fake object.. - The recorder to use. - Options object. - + - Initializes a new instance of the class. + Looks up a localized string similar to The current fake proxy generator can not create proxies of the type {0}.. - The container. - The fake object creator. - + - Contains the result of a call to TryCreateProxy of IProxyGenerator. + Looks up a localized string similar to FakeItEasy was unable to create dummy of type "{0}", register it in the current IFakeObjectContainer to enable this.. - + - Initializes a new instance of the class. - Creates a new instance representing a failed proxy - generation attempt. + Looks up a localized string similar to Expected to find call {0} the number of times specified by the predicate '{1}' but found it {2} times among the calls:. - - The reason the proxy generation failed. - - + - Initializes a new instance of the class. - Creates a new instance representing a failed proxy - generation attempt due to an exception being caught. + Looks up a localized string similar to The number of argument names does not match the number of arguments.. - - The reason the proxy generation failed. - - - The exception thrown from the creation attempt. - - + - Initializes a new instance of the class. - Creates a new instance representing a successful proxy - generation. + An exception thrown when an expectation is not met (when asserting on fake object calls). - - The proxy that was generated. - - - An event raiser that raises - events when calls are intercepted to the proxy. - - + - Gets a value indicating whether the proxy was successfully created. + Initializes a new instance of the class. - + - Gets the generated proxy when it was successfully created. + Initializes a new instance of the class. + The message. - + - Gets the event raiser that raises events when calls to the proxy are - intercepted. + Initializes a new instance of the class. + The message. + The inner exception. - + - Gets the reason for failure when the generation was not successful. + Initializes a new instance of the class. + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + @@ -2588,83 +2505,130 @@ The fakedObject was null. The object passed in is not a faked object. - + - Used to tag fields and properties that will be initialized through the - Fake.Initialize-method. + Provides static methods for accessing fake objects. - + - A simple implementation of an IoC container. + Gets the fake object that manages the faked object. + The faked object to get the manager object for. + The fake object manager. - + - The dictionary that stores the registered services. + Creates a new scope and sets it as the current scope. When inside a scope the + getting the calls made to a fake will return only the calls within that scope and when + asserting that calls were made, the calls must have been made within that scope. + The created scope. - + - Initializes a new instance of the class. + Creates a new scope and sets it as the current scope. When inside a scope the + getting the calls made to a fake will return only the calls within that scope and when + asserting that calls were made, the calls must have been made within that scope. + The container to use within the specified scope. + The created scope. - + - Resolves an instance of the specified component type. + Gets a value indicating whether the two objects are equal. - Type of the component. - An instance of the component type. + The first object to compare. + The second object to compare. + True if the two objects are equal. - + - Registers the specified resolver. + Gets a value indicating whether the two objects are the same reference. - The type of component to register. - The resolver. + The object A. + The object B. + True if the objects are the same reference. - + - Registers the specified resolver as a singleton. + Gets all the calls made to the specified fake object. - The type of component to register. - The resolver. + The faked object. + A collection containing the calls to the object. + The object passed in is not a faked object. - + - Provides properties and methods to specify repeat. + Clears the configuration of the faked object. + The faked object to clear the configuration of. - + - Specifies the number of times as repeat. + Sets a new fake to each property or field that is tagged with the FakeAttribute in the specified + fixture. - The number of times expected. - A Repeated instance. + The object to initialize. - + - Specifies once as the repeat. + Represents a fake object that provides an API for configuring a faked object, exposed by the + FakedObject-property. + The type of the faked object. - + - Specifies twice as the repeat. + Initializes a new instance of the class. + Creates a new fake object. - + - Provides functionality for making ordered assertions on fakes. + Initializes a new instance of the class. + Creates a new fake object using the specified options. + + Options used to create the fake object. + - + - Creates a scope that changes the behavior on asserts so that all asserts within - the scope must be to calls in the specified collection of calls. Calls must have happened - in the order that the asserts are specified or the asserts will fail. + Configures calls to the specified member. + + An expression specifying the call to configure. + A configuration object. + + + + Configures calls to the specified member. + + The type of value the member returns. + An expression specifying the call to configure. + A configuration object. + + + + Configures any call to the fake object. + + A configuration object. + + + + Gets the faked object. + + + + + Gets all calls made to the faked object. + + + + + Used to tag fields and properties that will be initialized through the + Fake.Initialize-method. - The calls to assert among. - A disposable used to close the scope. @@ -2712,312 +2676,368 @@ - + - Represents a definition of how a fake object of the type T should - be created. + Provides extension methods for fake objects. - The type of fake. - + - Represents a definition of how dummies of the specified type should be created. + Specifies NumberOfTimes(1) to the IRepeatConfiguration{TFake}. + The configuration to set repeat 1 to. - + - Creates the fake. + Specifies NumberOfTimes(2) to the IRepeatConfiguration{TFake}. - The fake object. + The configuration to set repeat 2 to. - + - Gets the type of fake object the definition is for. + Specifies that a call to the configured call should be applied no matter what arguments + are used in the call to the faked object. + The type of the interface. + The configuration. + A configuration object. - + - Creates the dummy. + Filters to contain only the calls that matches the call specification. - The dummy object. + The type of fake the call is made on. + The calls to filter. + The call to match on. + A collection of the calls that matches the call specification. - + - Creates the dummy. + Asserts that the specified call must have happened once or more. - The dummy object. + The configuration to assert on. - + - Gets the type the definition is for. + Asserts that the specified has not happened. - For type. + The configuration to assert on. - + - Provides validation extensions for . + Configures the call to return the next value from the specified sequence each time it's called. Null will + be returned when all the values in the sequence has been returned. + + The type of return value. + + + The call configuration to extend. + + + The values to return in sequence. + - + - Constrains an argument so that it must be null (Nothing in VB). + Specifies the value to return when the configured call is made. - The type of the argument. - The constraint manager to match the constraint. - A dummy argument value. + The type of the return value. + The configuration to extend. + The value to return. + A configuration object. - + - Constrains the string argument to contain the specified text. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. - The constraint manager to match the constraint. - The string the argument string should contain. - A dummy argument value. + The type of the return value. + The configuration to extend. + A function that produces the return value. + A configuration object. - + - Constrains the sequence so that it must contain the specified value. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. - The constraint manager to match the constraint. - The value the collection should contain. - The type of sequence. - A dummy argument value. + The type of the return value. + Type of the first argument of the faked method call. + The configuration to extend. + A function that produces the return value. + A configuration object. + The signatures of the faked method and the do not match. - + - Constrains the string so that it must start with the specified value. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. - The constraint manager to match the constraint. - The value the string should start with. - A dummy argument value. + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. - + - Constrains the string so that it must end with the specified value. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. - The constraint manager to match the constraint. - The value the string should end with. - A dummy argument value. + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. - + - Constrains the string so that it must be null or empty. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. - The constraint manager to match the constraint. - A dummy argument value. + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. - + - Constrains argument value so that it must be greater than the specified value. + Writes the calls in the collection to the specified text writer. - The constraint manager to match the constraint. - The value the string should start with. - The type of argument to constrain. - A dummy argument value. + The type of the calls. + The calls to write. + The writer to write the calls to. - + - The tested argument collection should contain the same elements as the - as the specified collection. + Writes all calls in the collection to the console. - The constraint manager to match the constraint. - The sequence to test against. - The type of argument to constrain. - A dummy argument value. + The type of the calls. + The calls to write. - + - Tests that the IEnumerable contains no items. + Gets the argument at the specified index in the arguments collection + for the call. - The type of argument. - The constraint manager to match the constraint. - A dummy argument value. + The type of the argument to get. + The call to get the argument from. + The index of the argument. + The value of the argument with the specified index. - + - Tests that the passed in argument is equal to the specified value. + Gets the argument with the specified name in the arguments collection + for the call. - The type of the argument. - The constraint manager to match the constraint. - The value to compare to. - A dummy argument value. + The type of the argument to get. + The call to get the argument from. + The name of the argument. + The value of the argument with the specified name. - + - Tests that the passed in argument is the same instance (reference) as the specified value. - - The type of the argument. - The constraint manager to match the constraint. - The reference to compare to. - A dummy argument value. - - - - Constrains the argument to be of the specified type. + Makes the fake strict, this means that any call to the fake + that has not been explicitly configured will throw an exception. - The type of argument in the method signature. - The constraint manager. - The type to constrain the argument with. - A dummy value. + The type of fake object. + The configuration. + A configuration object. - + - Constrains the argument with a predicate. + Applies a predicate to constrain which calls will be considered for interception. - - The constraint manager. + + The return type of the where method. + + + The configuration object to extend. - The predicate that should constrain the argument. + A predicate for a fake object call. - - A human readable description of the constraint. - - - The type of argument in the method signature. - + to the output. - A dummy argument value. + The configuration object. - + - Constrains the argument with a predicate. + Executes the specified action when a matching call is being made. This overload can also be used to fake calls with arguments when they don't need to be accessed. - - The constraint manager. - - - The predicate that should constrain the argument. - - - A human readable description of the constraint format string. - - - Arguments for the format string. - - - The type of argument in the method signature. - - - A dummy argument value. - + The type of fake object. + The configuration that is extended. + The to invoke. + The fake object. - + - Constrains the argument with a predicate. + Executes the specified action when a matching call is being made. - - The constraint manager. - - - The predicate that should constrain the argument. - - - The type of argument in the method signature. - - - A dummy argument value. - + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. - + - Constrains the argument to be not null (Nothing in VB) and to match - the specified predicate. + Executes the specified action when a matching call is being made. - The type of the argument to constrain. - The constraint manager. - The predicate that constrains non null values. - An action that writes a description of the constraint - to the output. - A dummy argument value. + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. - + - Provides static methods for the IOutputWriter-interface. + Executes the specified action when a matching call is being made. + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. - + - Writes a new line to the writer. + Executes the specified action when a matching call is being made. - The writer to write to. - The writer. + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. - + - Writes the format string to the writer. + Throws the specified exception when the currently configured + call gets called. - The writer to write to. - The format string to write. - Replacements for the format string. - The writer. + The configuration to use. + The exception to throw when a call that matches is invoked. + Configuration object. - + - Writes the specified object to the writer (using the ToString-method of the object). + Throws the specified exception when the currently configured + call gets called. - The writer to write to. - The value to write to the writer. - The writer. + The configuration to use. + A function that returns the exception to throw when invoked. + Configuration object. - + - Provides syntax for specifying the number of times a call must have been repeated when asserting on - fake object calls. + Throws the specified exception when the currently configured + call gets called. - A.CallTo(() => foo.Bar()).Assert(Happened.Once.Exactly); + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. - + - Specifies that a call must have been repeated a number of times - that is validated by the specified repeatValidation argument. + Throws the specified exception when the currently configured + call gets called. - A predicate that specifies the number of times - a call must have been made. - A Repeated-instance. + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. - + - When implemented gets a value indicating if the repeat is matched - by the Happened-instance. + Throws the specified exception when the currently configured + call gets called. - The repeat of a call. - True if the repeat is a match. + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. - + - Asserts that a call has not happened at all. + Throws the specified exception when the currently configured + call gets called. + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. - + - The call must have happened exactly the number of times that is specified in the next step. + Throws the specified exception when the currently configured + call gets called. + The configuration to use. + The type of exception to throw. + Configuration object. - + - The call must have happened any number of times greater than or equal to the number of times that is specified - in the next step. + Provides methods for guarding method arguments. - + - The call must have happened any number of times less than or equal to the number of times that is specified - in the next step. + Throws an exception if the specified argument is null. + The argument. + Name of the argument. + The specified argument was null. - + - Provides methods for creating recorders for self initializing fakes. + When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked. - + - Gets a recorder that records to and loads calls from the specified file. + Gets the value produced by the specified expression when compiled and invoked. - The file to use for recording. - A recorder instance. + The expression to get the value from. + The value produced by the expression. @@ -3045,207 +3065,120 @@ The name of the file to create. - - - Evaluates an expression by compiling it into a delegate and invoking the delegate. - - The expression to be evaluated. - The value returned from the delegate compiled from the expression. - - - - An exception thrown when an expectation is not met (when asserting on fake object calls). - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - - - - - Provides helper methods for checking the value producer signature against call signatures. - - - - - A collection of method arguments. - - - - - The arguments this collection contains. - - - - - Initializes a new instance of the class. - - The arguments. - The argument names. - - - - Initializes a new instance of the class. - - The arguments. - The method. - - - - Returns an enumerator that iterates through the collection or arguments. - - - A that can be used to iterate through the collection. - - - + - Gets the argument at the specified index. + A simple implementation of an IoC container. - The type of the argument to get. - The index of the argument. - The argument at the specified index. - + - Gets the argument with the specified name. + The dictionary that stores the registered services. - The type of the argument to get. - The name of the argument. - The argument with the specified name. - + - Gets an empty ArgumentList. + Initializes a new instance of the class. - + - Gets the number of arguments in the list. + Resolves an instance of the specified component type. + Type of the component. + An instance of the component type. - + - Gets the names of the arguments in the list. + Registers the specified resolver. + The type of component to register. + The resolver. - + - Gets the argument at the specified index. + Registers the specified resolver as a singleton. - The index of the argument to get. - The argument at the specified index. + The type of component to register. + The resolver. - + - Provides methods for guarding method arguments. + Provides properties and methods to specify repeat. - + - Throws an exception if the specified argument is null. + Specifies the number of times as repeat. - The argument. - Name of the argument. - The specified argument was null. + The number of times expected. + A Repeated instance. - + - When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked. + Specifies once as the repeat. - + - Provides static methods for accessing fake objects. + Specifies twice as the repeat. - + - Gets the fake object that manages the faked object. + Lets you specify options for the next call to a fake object. - The faked object to get the manager object for. - The fake object manager. - + - Creates a new scope and sets it as the current scope. When inside a scope the - getting the calls made to a fake will return only the calls within that scope and when - asserting that calls were made, the calls must have been made within that scope. + Specifies options for the next call to the specified fake object. The next call will + be recorded as a call configuration. - The created scope. + The type of the faked object. + The faked object to configure. + A call configuration object. - + - Creates a new scope and sets it as the current scope. When inside a scope the - getting the calls made to a fake will return only the calls within that scope and when - asserting that calls were made, the calls must have been made within that scope. + Provides functionality for making ordered assertions on fakes. - The container to use within the specified scope. - The created scope. - + - Gets a value indicating whether the two objects are equal. + Creates a scope that changes the behavior on asserts so that all asserts within + the scope must be to calls in the specified collection of calls. Calls must have happened + in the order that the asserts are specified or the asserts will fail. - The first object to compare. - The second object to compare. - True if the two objects are equal. + The calls to assert among. + A disposable used to close the scope. - + - Gets a value indicating whether the two objects are the same reference. + Provides static methods for the IOutputWriter-interface. - The object A. - The object B. - True if the objects are the same reference. - + - Gets all the calls made to the specified fake object. + Writes a new line to the writer. - The faked object. - A collection containing the calls to the object. - The object passed in is not a faked object. + The writer to write to. + The writer. - + - Clears the configuration of the faked object. + Writes the format string to the writer. - The faked object to clear the configuration of. + The writer to write to. + The format string to write. + Replacements for the format string. + The writer. - + - Sets a new fake to each property or field that is tagged with the FakeAttribute in the specified - fixture. + Writes the specified object to the writer (using the ToString-method of the object). - The object to initialize. + The writer to write to. + The value to write to the writer. + The writer. @@ -3282,6 +3215,83 @@ A Raise(TEventArgs)-object that exposes the event handler to attach. + + + A class exposing an event handler to attach to an event of a faked object + in order to raise that event. + + The type of the event args. + + + + Register this event handler to an event on a faked object in order to raise that event. + + The sender of the event. + Event args for the event. + + + + Gets a generic event handler to attach to the event to raise. + + + + + Provides methods for creating recorders for self initializing fakes. + + + + + Gets a recorder that records to and loads calls from the specified file. + + The file to use for recording. + A recorder instance. + + + + Provides syntax for specifying the number of times a call must have been repeated when asserting on + fake object calls. + + A.CallTo(() => foo.Bar()).Assert(Happened.Once.Exactly); + + + + Specifies that a call must have been repeated a number of times + that is validated by the specified repeatValidation argument. + + A predicate that specifies the number of times + a call must have been made. + A Repeated-instance. + + + + When implemented gets a value indicating if the repeat is matched + by the Happened-instance. + + The repeat of a call. + True if the repeat is a match. + + + + Asserts that a call has not happened at all. + + + + + The call must have happened exactly the number of times that is specified in the next step. + + + + + The call must have happened any number of times greater than or equal to the number of times that is specified + in the next step. + + + + + The call must have happened any number of times less than or equal to the number of times that is specified + in the next step. + + Handles the registration of root dependencies in an IoC-container. @@ -3510,53 +3520,6 @@ - - - Provides extension methods for the common uses. - - - - - Replaces the format item in a specified System.String with the text equivalent - of the value of a corresponding System.Object instance in a specified array using - invariant culture as . - - A composite format string. - An array containing zero or more objects to format. - The formatted string. - - - - Gets an enumerable of tuples where the first value of each tuple is a value - from the first collection and the second value of each tuple is the value at the same position - from the second collection. - - The type of values in the first collection. - The type of values in the second collection. - The first of the collections to combine. - The second of the collections to combine. - An enumerable of tuples. - - - - Joins the collection to a string. - - The type of items in the collection. - The items to join. - A function that converts from an item to a string value. - Separator to insert between each item. - A string representation of the collection. - - - - Gets a dictionary containing the first element from the sequence that has a key specified by the key selector. - - The type of items in the sequence. - The type of the key. - The sequence. - The key selector. - A dictionary. - An attribute that can be applied to code that should be fixed because there's a @@ -3568,20 +3531,6 @@ Gets or sets the description of the smell. - - - Lets you specify options for the next call to a fake object. - - - - - Specifies options for the next call to the specified fake object. The next call will - be recorded as a call configuration. - - The type of the faked object. - The faked object to configure. - A call configuration object. - Used to tag fields and properties that will be initialized as a SUT through the Fake.Initialize-method. diff --git a/dep/FakeItEasy.1.15.0/lib/net40/FakeItEasy.dll b/dep/FakeItEasy.1.15.0/lib/net40/FakeItEasy.dll new file mode 100644 index 0000000000000000000000000000000000000000..4f27c109966fa5f8bd78d182be4f33537b775c90 GIT binary patch literal 646656 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

2cDn5D8+Z)!uo;bIT$=AwD{dr$b+=e25cx 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�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 literal 0 HcmV?d00001 diff --git a/dep/FakeItEasy.1.17.0/lib/net35/FakeItEasy.xml b/dep/FakeItEasy.1.15.0/lib/net40/FakeItEasy.xml similarity index 95% rename from dep/FakeItEasy.1.17.0/lib/net35/FakeItEasy.xml rename to dep/FakeItEasy.1.15.0/lib/net40/FakeItEasy.xml index 47e4ad4b5e0..08969ecf59e 100644 --- a/dep/FakeItEasy.1.17.0/lib/net35/FakeItEasy.xml +++ b/dep/FakeItEasy.1.15.0/lib/net40/FakeItEasy.xml @@ -84,28 +84,6 @@ An expression where the configured member is called. A configuration object. - -

- Provides an API entry point for constraining arguments of fake object calls. - - The type of argument to validate. - - - - Gets an argument constraint object that will be used to constrain a method call argument. - - - - - Gets a constraint that considers any value of an argument as valid. - - This is a shortcut for the "Ignored"-property. - - - - Gets a constraint that considers any value of an argument as valid. - - Provides configuration for any (not a specific) call on a faked object. @@ -135,786 +113,798 @@ The object B. True if the objects are the same reference. - + - A collection of method arguments. + Provides string formatting for arguments of type T when written in call lists. + The type of the arguments which will be formatted by this instance. - + - The arguments this collection contains. + Provides string formatting for arguments when written in + call lists. - + - Initializes a new instance of the class. + Gets a string representing the specified argument value. - The arguments. - The argument names. + The argument value to get as a string. + A string representation of the value. - + - Initializes a new instance of the class. + Gets the type of arguments this formatter works on. - The arguments. - The method. - + - Returns an enumerator that iterates through the collection or arguments. + Gets the priority of the formatter, when two formatters are + registered for the same type the one with the highest + priority is used. - - A that can be used to iterate through the collection. - - + - Gets the argument at the specified index. + Gets a string representing the specified argument value. - The type of the argument to get. - The index of the argument. - The argument at the specified index. + The argument value to get as a string. + A string representation of the value. - + - Gets the argument with the specified name. + Gets a string representing the specified argument value. - The type of the argument to get. - The name of the argument. - The argument with the specified name. + The argument value to get as a string. + A string representation of the value. - + - Gets an empty ArgumentList. + Gets the type of arguments this formatter works on. - + - Gets the number of arguments in the list. + Gets the priority of the formatter, when two formatters are + registered for the same type the one with the highest + priority is used. - + - Gets the names of the arguments in the list. + Provides the base for rules that can be built using the FakeConfiguration. - + - Gets the argument at the specified index. + Represents a call rule that has a description of the calls the + rule is applicable to. - The index of the argument to get. - The argument at the specified index. - + - Provides validation extensions for . + Allows for intercepting call to a fake object and + act upon them. - + - Constrains an argument so that it must be null (Nothing in VB). + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. - The type of the argument. - The constraint manager to match the constraint. - A dummy argument value. + The call to check for applicability. + True if the interceptor is applicable. - + - Constrains the string argument to contain the specified text. + Applies an action to the call, might set a return value or throw + an exception. - The constraint manager to match the constraint. - The string the argument string should contain. - A dummy argument value. + The call to apply the interceptor to. - + - Constrains the sequence so that it must contain the specified value. + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. - The constraint manager to match the constraint. - The value the collection should contain. - The type of sequence. - A dummy argument value. - + - Constrains the string so that it must start with the specified value. + Writes a description of calls the rule is applicable to. - The constraint manager to match the constraint. - The value the string should start with. - A dummy argument value. + The writer. - + - Constrains the string so that it must end with the specified value. + Gets if this rule is applicable to the specified call. - The constraint manager to match the constraint. - The value the string should end with. - A dummy argument value. + The call to validate. + True if the rule applies to the call. - + - Constrains the string so that it must be null or empty. + Writes a description of calls the rule is applicable to. - The constraint manager to match the constraint. - A dummy argument value. + The writer to write the description to. - + - Constrains argument value so that it must be greater than the specified value. + Gets or sets an action that is called by the Apply method to apply this + rule to a fake object call. - The constraint manager to match the constraint. - The value the string should start with. - The type of argument to constrain. - A dummy argument value. - + - The tested argument collection should contain the same elements as the - as the specified collection. + Gets a collection of actions that should be invoked when the configured + call is made. - The constraint manager to match the constraint. - The sequence to test against. - The type of argument to constrain. - A dummy argument value. - + - Tests that the IEnumerable contains no items. + Gets or sets values to apply to output and reference variables. - The type of argument. - The constraint manager to match the constraint. - A dummy argument value. - + - Tests that the passed in argument is equal to the specified value. + Gets or sets a value indicating whether the base method of the fake object call should be + called when the fake object call is made. - The type of the argument. - The constraint manager to match the constraint. - The value to compare to. - A dummy argument value. - + - Tests that the passed in argument is the same instance (reference) as the specified value. + Gets or sets the number of times the configured rule should be used. - The type of the argument. - The constraint manager to match the constraint. - The reference to compare to. - A dummy argument value. - + - Constrains the argument to be of the specified type. + Gets a description of calls the rule is applicable to. - The type of argument in the method signature. - The constraint manager. - The type to constrain the argument with. - A dummy value. + - + - Constrains the argument with a predicate. + Aggregate of IReturnValueArgumentValidationConfiguration<T> and IWhereConfiguration<IAnyCallConfigurationWithReturnTypeSpecified<T>>. - - The constraint manager. - - - The predicate that should constrain the argument. - - - A human readable description of the constraint. - - - The type of argument in the method signature. - - - A dummy argument value. - + The type of fake object that is configured. - + - Constrains the argument with a predicate. + Configures a call that returns a value and allows the use to + specify validations for arguments. - - The constraint manager. - - - The predicate that should constrain the argument. - - - A human readable description of the constraint format string. - - - Arguments for the format string. - - - The type of argument in the method signature. - - - A dummy argument value. - + The type of the member. - + - Constrains the argument with a predicate. + Configures a call that returns a value. - - The constraint manager. - - - The predicate that should constrain the argument. - - - The type of argument in the method signature. - - - A dummy argument value. - + The type of the member. - + - Constrains the argument to be not null (Nothing in VB) and to match - the specified predicate. + Configuration that lets the developer specify that an exception should be + thrown by a fake object call. - The type of the argument to constrain. - The constraint manager. - The predicate that constrains non null values. - An action that writes a description of the constraint - to the output. - A dummy argument value. - + - Provides string formatting for arguments of type T when written in call lists. + Hides standard Object members to make fluent interfaces + easier to read. Found in the source of Autofac: + Based on blog post here: + - The type of the arguments which will be formatted by this instance. - + - Provides string formatting for arguments when written in - call lists. + Hides the ToString-method. + A string representation of the implementing object. - + - Gets a string representing the specified argument value. + Determines whether the specified is equal to this instance. - The argument value to get as a string. - A string representation of the value. + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + - + - Gets the type of arguments this formatter works on. + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + - + - Gets the priority of the formatter, when two formatters are - registered for the same type the one with the highest - priority is used. + Gets the type. + The exact runtime type of the current instance. - + - Gets a string representing the specified argument value. + Throws the specified exception when the currently configured + call gets called. - The argument value to get as a string. - A string representation of the value. + A function that creates the exception to throw. + Configuration object. - + - Gets a string representing the specified argument value. + Configuration for callbacks of fake object calls. - The argument value to get as a string. - A string representation of the value. + The type of interface to return. - + - Gets the type of arguments this formatter works on. + Executes the specified action when a matching call is being made. + The action to invoke. + A configuration object. - + - Gets the priority of the formatter, when two formatters are - registered for the same type the one with the highest - priority is used. + Allows the developer to assert on a call that's configured. - + - Provides extension methods for the common uses. + Asserts that the configured call has happened the number of times + constrained by the repeatConstraint parameter. + A constraint for how many times the call + must have happened. + The call has not been called a number of times + that passes the repeat constraint. - + - Replaces the format item in a specified System.String with the text equivalent - of the value of a corresponding System.Object instance in a specified array using - invariant culture as . + Configuration that lets you specify that a fake object call should call it's base method. - A composite format string. - An array containing zero or more objects to format. - The formatted string. - + - Gets an enumerable of tuples where the first value of each tuple is a value - from the first collection and the second value of each tuple is the value at the same position - from the second collection. + When the configured method or methods are called the call + will be delegated to the base method of the faked method. - The type of values in the first collection. - The type of values in the second collection. - The first of the collections to combine. - The second of the collections to combine. - An enumerable of tuples. + A configuration object. + The fake object is of an abstract type or an interface + and no base method exists. - + - Joins the collection to a string. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. - The type of items in the collection. - The items to join. - A function that converts from an item to a string value. - Separator to insert between each item. - A string representation of the collection. + A function that produces the return value. + A configuration object. - + - Gets a dictionary containing the first element from the sequence that has a key specified by the key selector. + Provides configurations to validate arguments of a fake object call. - The type of items in the sequence. - The type of the key. - The sequence. - The key selector. - A dictionary. + The type of interface to return. - + - Provides the base for rules that can be built using the FakeConfiguration. + Configures the call to be accepted when the specified predicate returns true. + The argument predicate. + A configuration object. - + - Represents a call rule that has a description of the calls the - rule is applicable to. + Provides a way to configure predicates for when a call should be applied. + The type of fake object that is going to be configured.. - + - Allows for intercepting call to a fake object and - act upon them. + Applies a predicate to constrain which calls will be considered for interception. + A predicate for a fake object call. + An action that writes a description of the predicate + to the output. + The configuration object. - + - Gets whether this interceptor is applicable to the specified - call, if true is returned the Apply-method of the interceptor will - be called. + Provides an API entry point for constraining arguments of fake object calls. - The call to check for applicability. - True if the interceptor is applicable. + The type of argument to validate. - + - Applies an action to the call, might set a return value or throw - an exception. + Gets an argument constraint object that will be used to constrain a method call argument. - The call to apply the interceptor to. - + - Gets the number of times this call rule is valid, if it's set - to null its infinitely valid. + Gets a constraint that considers any value of an argument as valid. + This is a shortcut for the "Ignored"-property. - + - Writes a description of calls the rule is applicable to. + Gets a constraint that considers any value of an argument as valid. - The writer. - + - Gets if this rule is applicable to the specified call. + A strongly-typed resource class, for looking up localized strings, etc. - The call to validate. - True if the rule applies to the call. - + - Writes a description of calls the rule is applicable to. + Returns the cached ResourceManager instance used by this class. - The writer to write the description to. - + - Gets or sets an action that is called by the Apply method to apply this - rule to a fake object call. + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. - + - Gets a collection of actions that should be invoked when the configured - call is made. + Looks up a localized string similar to The Apply method of the ExpressionInterceptor may no be called before the Applicator property has been set.. - + - Gets or sets values to apply to output and reference variables. + Looks up a localized string similar to The specified argument name does not exist in the ArgumentList.. - + - Gets or sets a value indicating whether the base method of the fake object call should be - called when the fake object call is made. + Looks up a localized string similar to Arguments for constructor was specified when generating proxy of interface type.. - + - Gets or sets the number of times the configured rule should be used. + Looks up a localized string similar to An argument validation was not configured correctly.. - + - Gets a description of calls the rule is applicable to. + Looks up a localized string similar to The method '{0}' was called too few times, expected #{1} times but was called #{2} times.. - - + - Configuration for any call to a faked object. + Looks up a localized string similar to The method '{0}' was called too many times, expected #{1} times but was called #{2} times.. - + + + Looks up a localized string similar to Can not create fake of the type '{0}', it's not registered in the current container and the current IProxyGenerator can not generate the fake. + + The following constructors failed: + {1}. + + + - Provides a way to configure predicates for when a call should be applied. + Looks up a localized string similar to Error when accessing FakeObject, the specified argument is of the type '{0}' which is not faked.. - The type of fake object that is going to be configured.. - + - Applies a predicate to constrain which calls will be considered for interception. + Looks up a localized string similar to An ExpressionCallMatcher can only be created for expressions that represents a method call or a property getter.. - A predicate for a fake object call. - An action that writes a description of the predicate - to the output. - The configuration object. - - - Provides configuration methods for methods that does not have a return value and - allows the use to specify validations for arguments. - + + + Looks up a localized string similar to + + The current proxy generator failed to create a proxy with the specified arguments for the constructor: + + Reason for failure: + - {0} + + . + - + + + Looks up a localized string similar to FakeItEasy failed to create fake object of type "{0}". + + 1. The type is not registered in the current IFakeObjectContainer. + 2. The current IProxyGenerator failed to generate a proxy for the following reason: + + {1}. + + + - Provides configuration methods for methods that does not have a return value. + Looks up a localized string similar to Unable to create fake object.. - + - Configuration that lets the developer specify that an exception should be - thrown by a fake object call. + Looks up a localized string similar to Only abstract classes can be faked using the A.Fake-method that takes an enumerable of objects as arguments for constructor, use the overload that takes an expression instead.. - + - Hides standard Object members to make fluent interfaces - easier to read. Found in the source of Autofac: - Based on blog post here: - + Looks up a localized string similar to The member accessor expression must be a lambda expression with a MethodCallExpression or MemberAccessExpression as its body.. - + - Hides the ToString-method. + Looks up a localized string similar to The specified method can not be configured since it can not be intercepted by the current IProxyGenerator.. - A string representation of the implementing object. - + - Determines whether the specified is equal to this instance. + Looks up a localized string similar to The method of the call did not match the method of the recorded call, the recorded sequence is no longer valid.. - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - + - Returns a hash code for this instance. + Looks up a localized string similar to No constructor matching the specified arguments was found on the type {0}.. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - + - Gets the type. + Looks up a localized string similar to Can not generate fake object for the class since no usable default constructor was found, specify a constructor call.. - The exact runtime type of the current instance. - + - Throws the specified exception when the currently configured - call gets called. + Looks up a localized string similar to All the recorded calls has been applied, the recorded sequence is no longer valid.. - A function that creates the exception to throw. - Configuration object. - + - Configuration for callbacks of fake object calls. + Looks up a localized string similar to Only expression of the type ExpressionType.New (constructor calls) are accepted.. - The type of interface to return. - + - Executes the specified action when a matching call is being made. + Looks up a localized string similar to The Now-method on the event raise is not meant to be called directly, only use it to register to an event on a fake object that you want to be raised.. - The action to invoke. - A configuration object. - + - Configuration that lets you specify that a fake object call should call it's base method. + Looks up a localized string similar to The number of values for out and ref parameters specified does not match the number of out and ref parameters in the call.. - + - When the configured method or methods are called the call - will be delegated to the base method of the faked method. + Looks up a localized string similar to A scope for ordered assertions is already opened, close that scope before opening another one.. - A configuration object. - The fake object is of an abstract type or an interface - and no base method exists. - + - Lets the developer configure output values of out and ref parameters. + Looks up a localized string similar to The specified call is not made on a fake object.. - + - Specifies output values for out and ref parameters. Specify the values in the order - the ref and out parameters has in the configured call, any non out and ref parameters are ignored. + Looks up a localized string similar to The current fake proxy generator can not create proxies of the type {0}.. - The values. - A configuration object. - + - Allows the developer to assert on a call that's configured. + Looks up a localized string similar to FakeItEasy was unable to create dummy of type "{0}", register it in the current IFakeObjectContainer to enable this.. - + - Asserts that the configured call has happened the number of times - constrained by the repeatConstraint parameter. + Looks up a localized string similar to Expected to find call {0} the number of times specified by the predicate '{1}' but found it {2} times among the calls:. - A constraint for how many times the call - must have happened. - The call has not been called a number of times - that passes the repeat constraint. - + - Configures the specified call to do nothing when called. + Looks up a localized string similar to The number of argument names does not match the number of arguments.. - A configuration object. - + - Provides configurations to validate arguments of a fake object call. + A class exposing an event handler to attach to an event of a faked object + in order to raise that event. - The type of interface to return. + The type of the event args. - + - Configures the call to be accepted when the specified predicate returns true. + Used by the event raising rule of fake objects to get the event arguments used in + a call to Raise.With. - The argument predicate. - A configuration object. - + - Matches calls that has the return type specified in the generic type parameter. + Gets the sender of the event. - The return type of the members to configure. - A configuration object. - + - Manages registration of a set of components in a DictionaryContainer. + Gets the event arguments of the event. - + - Registers the components of this module. + Register this event handler to an event on a faked object in order to raise that event. - The container to register components in. + The sender of the event. + Event args for the event. - + - A factory that creates instances of the RecordingCallRuleType. + Gets a generic event handler to attach to the event to raise. - + - Creates the specified fake object. + Represents a fake object that provides an API for configuring a faked object, exposed by the + FakedObject-property. - The type of the fake. - The fake object the rule belongs to. - The rule that's being recorded. - A RecordingCallRule instance. + The type of the faked object. - + - A factory responsible for creating start configuration for fake objects. + Provides methods for configuring a fake object. + The type of fake object. - + - Creates a start configuration for the specified fake object that fakes the - specified type. + Configures the behavior of the fake object when a call that matches the specified + call happens. - The type of the fake object. - The fake object to configure. + The type of the return value of the member. + An expression that specifies the calls to configure. A configuration object. - + - An exception that can be thrown when something goes wrong with the configuration - of a fake object. + Configures the behavior of the fake object when a call that matches the specified + call happens. + An expression that specifies the calls to configure. + A configuration object. - + - Initializes a new instance of the class. + Configures the behavior of the fake object when a call is made to any method on the + object. + A configuration object. - + - Initializes a new instance of the class. + Initializes a new instance of the class. + Creates a new fake object. - The message. - + - Initializes a new instance of the class. + Initializes a new instance of the class. + Creates a new fake object using the specified options. - The message. - The inner exception. + + Options used to create the fake object. + - + - Initializes a new instance of the class. + Configures calls to the specified member. - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - + An expression specifying the call to configure. + A configuration object. - + - Handles the configuration of fake object given an expression specifying - a call on a faked object. + Configures calls to the specified member. + The type of value the member returns. + An expression specifying the call to configure. + A configuration object. - + - Lets you set up expectations and configure repeat for the configured call. + Configures any call to the fake object. + A configuration object. - + - Provides configuration for method calls that has a return value. + Gets the faked object. - + - Specifies the number of times for the configured event. + Gets all calls made to the faked object. - The number of times to repeat. - + - A combination of the IAfterCallSpecifiedConfiguration and IOutAndRefParametersConfiguration - interfaces. + Access all types in all assemblies in the same directory as the FakeItEasy assembly. - + - Aggregate of IReturnValueArgumentValidationConfiguration<T> and IWhereConfiguration<IAnyCallConfigurationWithReturnTypeSpecified<T>>. + Provides a set of types that are available. - The type of fake object that is configured. - + - Configures a call that returns a value and allows the use to - specify validations for arguments. + Gets a collection of available types. - The type of the member. + The available types. - + - Configures a call that returns a value. + Initializes a new instance of the class. - The type of the member. - + - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. + Gets a collection of available types. - A function that produces the return value. - A configuration object. + The available types. - + - Configurations for when a configured call is recorded. + Configuration for any call to a faked object. - + - Provides configuration from VisualBasic. + Provides configuration methods for methods that does not have a return value and + allows the use to specify validations for arguments. - + - Provides methods for configuring a fake object. + Provides configuration methods for methods that does not have a return value. - The type of fake object. - + - Configures the behavior of the fake object when a call that matches the specified - call happens. + Lets the developer configure output values of out and ref parameters. - The type of the return value of the member. - An expression that specifies the calls to configure. + + + + Specifies output values for out and ref parameters. Specify the values in the order + the ref and out parameters has in the configured call, any non out and ref parameters are ignored. + + The values. A configuration object. - + - Configures the behavior of the fake object when a call that matches the specified - call happens. + Configures the specified call to do nothing when called. - An expression that specifies the calls to configure. A configuration object. - + - Configures the behavior of the fake object when a call is made to any method on the - object. + Matches calls that has the return type specified in the generic type parameter. + + The return type of the members to configure. + A configuration object. + + + + Manages registration of a set of components in a DictionaryContainer. + + + + + Registers the components of this module. + + The container to register components in. + + + + A factory that creates instances of the RecordingCallRuleType. + + + + + Creates the specified fake object. + + The type of the fake. + The fake object the rule belongs to. + The rule that's being recorded. + A RecordingCallRule instance. + + + + A factory responsible for creating start configuration for fake objects. + + + + + Creates a start configuration for the specified fake object that fakes the + specified type. + The type of the fake object. + The fake object to configure. A configuration object. + + + An exception that can be thrown when something goes wrong with the configuration + of a fake object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Handles the configuration of fake object given an expression specifying + a call on a faked object. + + + + + Lets you set up expectations and configure repeat for the configured call. + + + + + Provides configuration for method calls that has a return value. + + + + + Specifies the number of times for the configured event. + + The number of times to repeat. + + + + A combination of the IAfterCallSpecifiedConfiguration and IOutAndRefParametersConfiguration + interfaces. + + + + + Configurations for when a configured call is recorded. + + + + + Provides configuration from VisualBasic. + + A call rule that has been recorded. @@ -969,48 +959,6 @@ The call to match. True if the call matches the predicate. - - - Provides configuration of faked objects. - - - - - Gets a configuration for the specified faked object. - - The type of the fake. - The faked object to configure. - A configuration object. - The specified object is not a faked object. - The fakedObject parameter was null. - - - - Access all types in all assemblies in the same directory as the FakeItEasy assembly. - - - - - Provides a set of types that are available. - - - - - Gets a collection of available types. - - The available types. - - - - Initializes a new instance of the class. - - - - - Gets a collection of available types. - - The available types. - Represents an argument and a dummy value to use for that argument. @@ -1534,32 +1482,6 @@ The fake object. The rule to add. - - - Represents a completed call to a fake object. - - - - - Gets the value set to be returned from the call. - - - - - Used by the event raising rule of fake objects to get the event arguments used in - a call to Raise.With. - - - - - Gets the sender of the event. - - - - - Gets the event arguments of the event. - - Represents a listener for fake object calls, can be plugged into a @@ -1584,40 +1506,86 @@ The intercepted call. The rule that was applied to the call. - + - Handles comparisons of instances of . + An interface to be implemented by classes that can generate proxies for FakeItEasy. - + - Gets a value indicating whether the two instances of would invoke the same method - if invoked on an instance of the target type. + Generates a proxy of the specified type and returns a result object containing information + about the success of the generation and the proxy if it was generated. - The type of target for invocation. - The first . - The second . - True if the same method would be invoked. + The type of proxy to generate. + Interfaces to be implemented by the proxy. + Arguments to pass to the constructor of the type in . + The custom attribute builders. + A result containing the generated proxy. - + - A null implementation for the IFakeObjectContainer interface. + Generates a proxy of the specified type and returns a result object containing information + about the success of the generation and the proxy if it was generated. + The type of proxy to generate. + Interfaces to be implemented by the proxy. + Arguments to pass to the constructor of the type in . + A result containing the generated proxy. - + - Always returns false and sets the fakeObject to null. + Gets a value indicating whether the specified member can be intercepted by the proxy generator. - The type of dummy object to create. - Output variable for the fake object that will always be set to null. - Always return false. + The member to test. + The instance the method will be called on. + The reason the method can not be intercepted. + True if the member can be intercepted. - + - Applies base configuration to a fake object. + An object that raises an event every time a call to a proxy has been intercepted. - The type the fake object represents. - The fake object to configure. + + + + Raised when a call is intercepted. + + + + + Represents a completed call to a fake object. + + + + + Gets the value set to be returned from the call. + + + + + Represents a text writer that writes to the output. + + + + + Writes the specified value to the output. + + The value to write. + The writer for method chaining. + + + + Formats the specified argument value as a string and writes + it to the output. + + The value to write. + The writer for method chaining. + + + + Indents the writer. + + A disposable that will unindent the writer when disposed. @@ -1632,6 +1600,41 @@ The type of instances to get. A sequence of instances of the specified type. + + + Handles comparisons of instances of . + + + + + Gets a value indicating whether the two instances of would invoke the same method + if invoked on an instance of the target type. + + The type of target for invocation. + The first . + The second . + True if the same method would be invoked. + + + + A null implementation for the IFakeObjectContainer interface. + + + + + Always returns false and sets the fakeObject to null. + + The type of dummy object to create. + Output variable for the fake object that will always be set to null. + Always return false. + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + A call rule that applies to any call and just delegates the @@ -1670,51 +1673,6 @@ - - - An interface to be implemented by classes that can generate proxies for FakeItEasy. - - - - - Generates a proxy of the specified type and returns a result object containing information - about the success of the generation and the proxy if it was generated. - - The type of proxy to generate. - Interfaces to be implemented by the proxy. - Arguments to pass to the constructor of the type in . - The custom attribute builders. - A result containing the generated proxy. - - - - Generates a proxy of the specified type and returns a result object containing information - about the success of the generation and the proxy if it was generated. - - The type of proxy to generate. - Interfaces to be implemented by the proxy. - Arguments to pass to the constructor of the type in . - A result containing the generated proxy. - - - - Gets a value indicating whether the specified member can be intercepted by the proxy generator. - - The member to test. - The instance the method will be called on. - The reason the method can not be intercepted. - True if the member can be intercepted. - - - - An object that raises an event every time a call to a proxy has been intercepted. - - - - - Raised when a call is intercepted. - - An adapter that adapts an to a . @@ -2078,653 +2036,589 @@ Gets the reason for failure when the generation was not successful. - + - Represents a text writer that writes to the output. + Represents a class that can parse a lambda expression + that represents a method or property call. - + - Writes the specified value to the output. + Parses the specified expression. - The value to write. - The writer for method chaining. + The expression to parse. + The parsed expression. - + - Formats the specified argument value as a string and writes - it to the output. + Handles the matching of fake object calls to expressions. - The value to write. - The writer for method chaining. - + - Indents the writer. + Initializes a new instance of the class. - A disposable that will unindent the writer when disposed. + The call specification. + The constraint factory. + The method info manager to use. + A parser to use to parse call expressions. - + - Represents a definition of how a fake object of the type T should - be created. + Matches the specified call against the expression. - The type of fake. + The call to match. + True if the call is matched by the expression. - + - Represents a definition of how dummies of the specified type should be created. + Gets a description of the call. + Description of the call. - + - Creates the fake. + Gets a human readable description of calls that will be matched by this + matcher. - The fake object. - + - Gets the type of fake object the definition is for. + An implementation of the interface that uses + expressions for evaluating if the rule is applicable to a specific call. - + - Creates the dummy. + Initializes a new instance of the class. - The dummy object. + The expression matcher to use. - + - Creates the dummy. + Returns a that represents this instance. - The dummy object. + + A that represents this instance. + - + - Gets the type the definition is for. + Handles the instantiation of ExpressionCallRule instance. - For type. + An expression specifying the call. + A rule instance. - + - A strongly-typed resource class, for looking up localized strings, etc. + Manages breaking call specification expression into their various parts. - + - Returns the cached ResourceManager instance used by this class. + Manages breaking call specification expression into their various parts. - + - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. + Gets the fake object an expression is called on. + The call expression. + The FakeManager instance that manages the faked object the call is made on. + The fakeObjectCall is null. + The specified expression is not an expression where a call is made to a faked object. - + - Looks up a localized string similar to The Apply method of the ExpressionInterceptor may no be called before the Applicator property has been set.. + Gets the fake object an expression is called on. + The call expression. + A FakeObject. + The fakeObjectCall is null. + The specified expression is not an expression where a call is made to a faked object. - + - Looks up a localized string similar to The specified argument name does not exist in the ArgumentList.. + Provides extension methods for configuring and asserting on faked objects + without going through the static methods of the Fake-class. - + - Looks up a localized string similar to Arguments for constructor was specified when generating proxy of interface type.. + Configures the behavior of the fake object when a call that matches the specified + call happens. + The type of fake object to configure. + The type of the return value of the member. + The faked object to configure. + An expression that specifies the calls to configure. + A configuration object. - + - Looks up a localized string similar to An argument validation was not configured correctly.. + Configures the behavior of the fake object when a call that matches the specified + call happens. + The faked object to configure. + The type of fake object to configure. + An expression that specifies the calls to configure. + A configuration object. - + - Looks up a localized string similar to The method '{0}' was called too few times, expected #{1} times but was called #{2} times.. + Configures the behavior of the fake object when a call is made to any method on the + object. + The type of the fake. + The faked object. + A configuration object. - + - Looks up a localized string similar to The method '{0}' was called too many times, expected #{1} times but was called #{2} times.. + Provides an extension method for configuring fake objects. - - - Looks up a localized string similar to Can not create fake of the type '{0}', it's not registered in the current container and the current IProxyGenerator can not generate the fake. - - The following constructors failed: - {1}. - - - + - Looks up a localized string similar to Error when accessing FakeObject, the specified argument is of the type '{0}' which is not faked.. + Gets an object that provides a fluent interface syntax for configuring + the fake object. + The type of the fake object. + The fake object to configure. + A configuration object. + The fakedObject was null. + The object passed in is not a faked object. - + - Looks up a localized string similar to An ExpressionCallMatcher can only be created for expressions that represents a method call or a property getter.. + Used to tag fields and properties that will be initialized through the + Fake.Initialize-method. - - - Looks up a localized string similar to - - The current proxy generator failed to create a proxy with the specified arguments for the constructor: - - Reason for failure: - - {0} - - . - - - - - Looks up a localized string similar to FakeItEasy failed to create fake object of type "{0}". - - 1. The type is not registered in the current IFakeObjectContainer. - 2. The current IProxyGenerator failed to generate a proxy for the following reason: - - {1}. - - - + - Looks up a localized string similar to Unable to create fake object.. + A simple implementation of an IoC container. - + - Looks up a localized string similar to Only abstract classes can be faked using the A.Fake-method that takes an enumerable of objects as arguments for constructor, use the overload that takes an expression instead.. + The dictionary that stores the registered services. - + - Looks up a localized string similar to The member accessor expression must be a lambda expression with a MethodCallExpression or MemberAccessExpression as its body.. + Initializes a new instance of the class. - + - Looks up a localized string similar to The specified method can not be configured since it can not be intercepted by the current IProxyGenerator.. + Resolves an instance of the specified component type. + Type of the component. + An instance of the component type. - + - Looks up a localized string similar to The method of the call did not match the method of the recorded call, the recorded sequence is no longer valid.. + Registers the specified resolver. + The type of component to register. + The resolver. - + - Looks up a localized string similar to No constructor matching the specified arguments was found on the type {0}.. + Registers the specified resolver as a singleton. + The type of component to register. + The resolver. - + - Looks up a localized string similar to Can not generate fake object for the class since no usable default constructor was found, specify a constructor call.. + Provides properties and methods to specify repeat. - + - Looks up a localized string similar to All the recorded calls has been applied, the recorded sequence is no longer valid.. + Specifies the number of times as repeat. + The number of times expected. + A Repeated instance. - + - Looks up a localized string similar to Only expression of the type ExpressionType.New (constructor calls) are accepted.. + Specifies once as the repeat. - + - Looks up a localized string similar to The Now-method on the event raise is not meant to be called directly, only use it to register to an event on a fake object that you want to be raised.. + Specifies twice as the repeat. - + - Looks up a localized string similar to The number of values for out and ref parameters specified does not match the number of out and ref parameters in the call.. + Provides functionality for making ordered assertions on fakes. - + - Looks up a localized string similar to A scope for ordered assertions is already opened, close that scope before opening another one.. + Creates a scope that changes the behavior on asserts so that all asserts within + the scope must be to calls in the specified collection of calls. Calls must have happened + in the order that the asserts are specified or the asserts will fail. + The calls to assert among. + A disposable used to close the scope. - + - Looks up a localized string similar to The specified call is not made on a fake object.. + Provides the base implementation for the IFakeConfigurator-interface. + The type of fakes the configurator can configure. - + - Looks up a localized string similar to The current fake proxy generator can not create proxies of the type {0}.. + Provides configurations for fake objects of a specific type. - + - Looks up a localized string similar to FakeItEasy was unable to create dummy of type "{0}", register it in the current IFakeObjectContainer to enable this.. + Applies the configuration for the specified fake object. + The fake object to configure. - + - Looks up a localized string similar to Expected to find call {0} the number of times specified by the predicate '{1}' but found it {2} times among the calls:. + Gets the type the instance provides configuration for. - + - Looks up a localized string similar to The number of argument names does not match the number of arguments.. + Configures the fake. + The fake object. - + - An exception thrown when an expectation is not met (when asserting on fake object calls). + Applies the configuration for the specified fake object. + The fake object to configure. - + - Initializes a new instance of the class. + Asserts the type of the that fake is of correct. + The fake object. - + - Initializes a new instance of the class. + Gets the type the instance provides configuration for. - The message. + - + - Initializes a new instance of the class. + Represents a definition of how a fake object of the type T should + be created. - The message. - The inner exception. + The type of fake. - + - Initializes a new instance of the class. + Represents a definition of how dummies of the specified type should be created. - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - - + - Represents a class that can parse a lambda expression - that represents a method or property call. + Creates the fake. + The fake object. - + - Parses the specified expression. + Gets the type of fake object the definition is for. - The expression to parse. - The parsed expression. - + - Handles the matching of fake object calls to expressions. + Creates the dummy. + The dummy object. - + - Initializes a new instance of the class. + Creates the dummy. - The call specification. - The constraint factory. - The method info manager to use. - A parser to use to parse call expressions. + The dummy object. - + - Matches the specified call against the expression. + Gets the type the definition is for. - The call to match. - True if the call is matched by the expression. + For type. - + - Gets a description of the call. + Provides validation extensions for . - Description of the call. - + - Gets a human readable description of calls that will be matched by this - matcher. + Constrains an argument so that it must be null (Nothing in VB). + The type of the argument. + The constraint manager to match the constraint. + A dummy argument value. - + - An implementation of the interface that uses - expressions for evaluating if the rule is applicable to a specific call. + Constrains the string argument to contain the specified text. + The constraint manager to match the constraint. + The string the argument string should contain. + A dummy argument value. - + - Initializes a new instance of the class. + Constrains the sequence so that it must contain the specified value. - The expression matcher to use. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Handles the instantiation of ExpressionCallRule instance. - - An expression specifying the call. - A rule instance. - - - - Manages breaking call specification expression into their various parts. - - - - - Manages breaking call specification expression into their various parts. - - - - - Gets the fake object an expression is called on. - - The call expression. - The FakeManager instance that manages the faked object the call is made on. - The fakeObjectCall is null. - The specified expression is not an expression where a call is made to a faked object. - - - - Gets the fake object an expression is called on. - - The call expression. - A FakeObject. - The fakeObjectCall is null. - The specified expression is not an expression where a call is made to a faked object. - - - - Provides extension methods for configuring and asserting on faked objects - without going through the static methods of the Fake-class. - - - - - Configures the behavior of the fake object when a call that matches the specified - call happens. - - The type of fake object to configure. - The type of the return value of the member. - The faked object to configure. - An expression that specifies the calls to configure. - A configuration object. - - - - Configures the behavior of the fake object when a call that matches the specified - call happens. - - The faked object to configure. - The type of fake object to configure. - An expression that specifies the calls to configure. - A configuration object. - - - - Configures the behavior of the fake object when a call is made to any method on the - object. - - The type of the fake. - The faked object. - A configuration object. - - - - Provides an extension method for configuring fake objects. - - - - - Gets an object that provides a fluent interface syntax for configuring - the fake object. - - The type of the fake object. - The fake object to configure. - A configuration object. - The fakedObject was null. - The object passed in is not a faked object. - - - - Provides static methods for accessing fake objects. - - - - - Gets the fake object that manages the faked object. - - The faked object to get the manager object for. - The fake object manager. + The constraint manager to match the constraint. + The value the collection should contain. + The type of sequence. + A dummy argument value. - + - Creates a new scope and sets it as the current scope. When inside a scope the - getting the calls made to a fake will return only the calls within that scope and when - asserting that calls were made, the calls must have been made within that scope. + Constrains the string so that it must start with the specified value. - The created scope. + The constraint manager to match the constraint. + The value the string should start with. + A dummy argument value. - + - Creates a new scope and sets it as the current scope. When inside a scope the - getting the calls made to a fake will return only the calls within that scope and when - asserting that calls were made, the calls must have been made within that scope. + Constrains the string so that it must end with the specified value. - The container to use within the specified scope. - The created scope. + The constraint manager to match the constraint. + The value the string should end with. + A dummy argument value. - + - Gets a value indicating whether the two objects are equal. + Constrains the string so that it must be null or empty. - The first object to compare. - The second object to compare. - True if the two objects are equal. + The constraint manager to match the constraint. + A dummy argument value. - + - Gets a value indicating whether the two objects are the same reference. + Constrains argument value so that it must be greater than the specified value. - The object A. - The object B. - True if the objects are the same reference. + The constraint manager to match the constraint. + The value the string should start with. + The type of argument to constrain. + A dummy argument value. - + - Gets all the calls made to the specified fake object. + The tested argument collection should contain the same elements as the + as the specified collection. - The faked object. - A collection containing the calls to the object. - The object passed in is not a faked object. + The constraint manager to match the constraint. + The sequence to test against. + The type of argument to constrain. + A dummy argument value. - + - Clears the configuration of the faked object. + Tests that the IEnumerable contains no items. - The faked object to clear the configuration of. + The type of argument. + The constraint manager to match the constraint. + A dummy argument value. - + - Sets a new fake to each property or field that is tagged with the FakeAttribute in the specified - fixture. + Tests that the passed in argument is equal to the specified value. - The object to initialize. + The type of the argument. + The constraint manager to match the constraint. + The value to compare to. + A dummy argument value. - + - Represents a fake object that provides an API for configuring a faked object, exposed by the - FakedObject-property. + Tests that the passed in argument is the same instance (reference) as the specified value. - The type of the faked object. + The type of the argument. + The constraint manager to match the constraint. + The reference to compare to. + A dummy argument value. - + - Initializes a new instance of the class. - Creates a new fake object. + Constrains the argument to be of the specified type. + The type of argument in the method signature. + The constraint manager. + The type to constrain the argument with. + A dummy value. - + - Initializes a new instance of the class. - Creates a new fake object using the specified options. + Constrains the argument with a predicate. - - Options used to create the fake object. + + The constraint manager. + + The predicate that should constrain the argument. + + + A human readable description of the constraint. + + + The type of argument in the method signature. + + + A dummy argument value. + - - - Configures calls to the specified member. - - An expression specifying the call to configure. - A configuration object. - - - - Configures calls to the specified member. - - The type of value the member returns. - An expression specifying the call to configure. - A configuration object. - - - - Configures any call to the fake object. - - A configuration object. - - - - Gets the faked object. - - - - - Gets all calls made to the faked object. - - - + - Used to tag fields and properties that will be initialized through the - Fake.Initialize-method. + Constrains the argument with a predicate. + + The constraint manager. + + + The predicate that should constrain the argument. + + + A human readable description of the constraint format string. + + + Arguments for the format string. + + + The type of argument in the method signature. + + + A dummy argument value. + - + - Provides the base implementation for the IFakeConfigurator-interface. + Constrains the argument with a predicate. - The type of fakes the configurator can configure. + + The constraint manager. + + + The predicate that should constrain the argument. + + + The type of argument in the method signature. + + + A dummy argument value. + - + - Provides configurations for fake objects of a specific type. + Constrains the argument to be not null (Nothing in VB) and to match + the specified predicate. + The type of the argument to constrain. + The constraint manager. + The predicate that constrains non null values. + An action that writes a description of the constraint + to the output. + A dummy argument value. - + - Applies the configuration for the specified fake object. + Provides static methods for the IOutputWriter-interface. - The fake object to configure. - + - Gets the type the instance provides configuration for. + Writes a new line to the writer. + The writer to write to. + The writer. - + - Configures the fake. + Writes the format string to the writer. - The fake object. + The writer to write to. + The format string to write. + Replacements for the format string. + The writer. - + - Applies the configuration for the specified fake object. + Writes the specified object to the writer (using the ToString-method of the object). - The fake object to configure. + The writer to write to. + The value to write to the writer. + The writer. - + - Asserts the type of the that fake is of correct. + Provides syntax for specifying the number of times a call must have been repeated when asserting on + fake object calls. - The fake object. + A.CallTo(() => foo.Bar()).Assert(Happened.Once.Exactly); - + - Gets the type the instance provides configuration for. + Specifies that a call must have been repeated a number of times + that is validated by the specified repeatValidation argument. - + A predicate that specifies the number of times + a call must have been made. + A Repeated-instance. - + - Provides the GetArgument extension methods for getting arguments from fake object calls. + When implemented gets a value indicating if the repeat is matched + by the Happened-instance. + The repeat of a call. + True if the repeat is a match. - + - Gets the argument at the specified index in the arguments collection - for the call. + Asserts that a call has not happened at all. - The type of the argument to get. - The call to get the argument from. - The index of the argument. - The value of the argument with the specified index. - + - Gets the argument with the specified name in the arguments collection - for the call. - - The type of the argument to get. - The call to get the argument from. - The name of the argument. - The value of the argument with the specified name. + The call must have happened exactly the number of times that is specified in the next step. + - + - Provides methods for guarding method arguments. + The call must have happened any number of times greater than or equal to the number of times that is specified + in the next step. - + - Throws an exception if the specified argument is null. + The call must have happened any number of times less than or equal to the number of times that is specified + in the next step. - The argument. - Name of the argument. - The specified argument was null. - + - When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked. + Provides methods for creating recorders for self initializing fakes. - + - Evaluates an expression by compiling it into a delegate and invoking the delegate. + Gets a recorder that records to and loads calls from the specified file. - The expression to be evaluated. - The value returned from the delegate compiled from the expression. + The file to use for recording. + A recorder instance. @@ -2752,451 +2646,575 @@ The name of the file to create. - + - Provides the Invokes extension method for configuring calls to fake objects. + Gets the value produced by the specified expression when compiled and invoked. + The expression to get the value from. + The value produced by the expression. - + - Executes the specified action when a matching call is being made. This overload can also be used to fake calls with arguments when they don't need to be accessed. + An exception thrown when an expectation is not met (when asserting on fake object calls). - The type of fake object. - The configuration that is extended. - The to invoke. - The fake object. - + - Executes the specified action when a matching call is being made. + Initializes a new instance of the class. - The configuration that is extended. - The to invoke. - The type of fake object. - Type of the first argument of the faked method call. - The signatures of the faked method and the do not match. - The fake object. - + - Executes the specified action when a matching call is being made. + Initializes a new instance of the class. - The configuration that is extended. - The to invoke. - The type of fake object. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - The signatures of the faked method and the do not match. - The fake object. + The message. - + - Executes the specified action when a matching call is being made. + Initializes a new instance of the class. - The configuration that is extended. - The to invoke. - The type of fake object. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - The signatures of the faked method and the do not match. - The fake object. + The message. + The inner exception. - + - Executes the specified action when a matching call is being made. + Initializes a new instance of the class. - The configuration that is extended. - The to invoke. - The type of fake object. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Type of the fourth argument of the faked method call. - The signatures of the faked method and the do not match. - The fake object. + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + - + - A simple implementation of an IoC container. + Provides extension methods for fake objects. - + - The dictionary that stores the registered services. + Specifies NumberOfTimes(1) to the IRepeatConfiguration{TFake}. + The configuration to set repeat 1 to. - + - Initializes a new instance of the class. + Specifies NumberOfTimes(2) to the IRepeatConfiguration{TFake}. + The configuration to set repeat 2 to. - + - Resolves an instance of the specified component type. + Specifies that a call to the configured call should be applied no matter what arguments + are used in the call to the faked object. - Type of the component. - An instance of the component type. + The type of the interface. + The configuration. + A configuration object. - + - Registers the specified resolver. + Filters to contain only the calls that matches the call specification. - The type of component to register. - The resolver. + The type of fake the call is made on. + The calls to filter. + The call to match on. + A collection of the calls that matches the call specification. - + - Registers the specified resolver as a singleton. + Asserts that the specified call must have happened once or more. - The type of component to register. - The resolver. + The configuration to assert on. - + - Provides properties and methods to specify repeat. + Asserts that the specified has not happened. + The configuration to assert on. - + - Specifies the number of times as repeat. + Configures the call to return the next value from the specified sequence each time it's called. Null will + be returned when all the values in the sequence has been returned. - The number of times expected. - A Repeated instance. + + The type of return value. + + + The call configuration to extend. + + + The values to return in sequence. + - + - Specifies once as the repeat. + Specifies the value to return when the configured call is made. + The type of the return value. + The configuration to extend. + The value to return. + A configuration object. - + - Specifies twice as the repeat. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + The type of the return value. + The configuration to extend. + A function that produces the return value. + A configuration object. - + - Provides a Matching extension method for fake objects calls. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + The type of the return value. + Type of the first argument of the faked method call. + The configuration to extend. + A function that produces the return value. + A configuration object. + The signatures of the faked method and the do not match. - + - Filters to contain only the calls that matches the call specification. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. - The type of fake the call is made on. - The calls to filter. - The call to match on. - A collection of the calls that matches the call specification. + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. - + - Provides the MustHaveHappened extension method for asserting calls to fake objects. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. - + - Asserts that the specified call must have happened once or more. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. - The configuration to assert on. + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Writes the calls in the collection to the specified text writer. + + The type of the calls. + The calls to write. + The writer to write the calls to. + + + + Writes all calls in the collection to the console. + + The type of the calls. + The calls to write. + + + + Gets the argument at the specified index in the arguments collection + for the call. + + The type of the argument to get. + The call to get the argument from. + The index of the argument. + The value of the argument with the specified index. + + + + Gets the argument with the specified name in the arguments collection + for the call. + + The type of the argument to get. + The call to get the argument from. + The name of the argument. + The value of the argument with the specified name. + + + + Makes the fake strict, this means that any call to the fake + that has not been explicitly configured will throw an exception. + + The type of fake object. + The configuration. + A configuration object. + + + + Applies a predicate to constrain which calls will be considered for interception. + + + The return type of the where method. + + + The configuration object to extend. + + + A predicate for a fake object call. + + to the output. + + The configuration object. + + + + + Executes the specified action when a matching call is being made. This overload can also be used to fake calls with arguments when they don't need to be accessed. + + The type of fake object. + The configuration that is extended. + The to invoke. + The fake object. - + - Provides the MustNotHaveHappened extension method for asserting calls to fake objects. + Executes the specified action when a matching call is being made. + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. - + - Asserts that the specified call has not happened. + Executes the specified action when a matching call is being made. - The configuration to assert on. + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. - + - Lets you specify options for the next call to a fake object. + Executes the specified action when a matching call is being made. + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. - + - Specifies options for the next call to the specified fake object. The next call will - be recorded as a call configuration. + Executes the specified action when a matching call is being made. - The type of the faked object. - The faked object to configure. - A call configuration object. + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. - + - Provides the Once extension methods for configuring repeats on fake object call behavior. + Throws the specified exception when the currently configured + call gets called. + The configuration to use. + The exception to throw when a call that matches is invoked. + Configuration object. - + - Specifies NumberOfTimes(1) to the IRepeatConfiguration{TFake}. + Throws the specified exception when the currently configured + call gets called. - The configuration to set repeat 1 to. + The configuration to use. + A function that returns the exception to throw when invoked. + Configuration object. - + - Provides functionality for making ordered assertions on fakes. + Throws the specified exception when the currently configured + call gets called. + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. - + - Creates a scope that changes the behavior on asserts so that all asserts within - the scope must be to calls in the specified collection of calls. Calls must have happened - in the order that the asserts are specified or the asserts will fail. + Throws the specified exception when the currently configured + call gets called. - The calls to assert among. - A disposable used to close the scope. + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. - + - Provides static methods for the IOutputWriter-interface. + Throws the specified exception when the currently configured + call gets called. + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. - + - Writes a new line to the writer. + Throws the specified exception when the currently configured + call gets called. - The writer to write to. - The writer. + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. - + - Writes the format string to the writer. + Throws the specified exception when the currently configured + call gets called. - The writer to write to. - The format string to write. - Replacements for the format string. - The writer. + The configuration to use. + The type of exception to throw. + Configuration object. - + - Writes the specified object to the writer (using the ToString-method of the object). + A collection of method arguments. - The writer to write to. - The value to write to the writer. - The writer. - + - Allows the developer to raise an event on a faked object. + The arguments this collection contains. - + - Raises an event on a faked object by attaching the event handler produced by the method - to the event that is to be raised. + Initializes a new instance of the class. - The type of the event args. - The sender of the event. - The instance containing the event data. - A Raise(TEventArgs)-object that exposes the event handler to attach. + The arguments. + The argument names. - + - Raises an event on a faked object by attaching the event handler produced by the method - to the event that is to be raised. + Initializes a new instance of the class. - The type of the event arguments. - The instance containing the event data. - - A Raise(TEventArgs)-object that exposes the event handler to attach. - + The arguments. + The method. - + - Raises an event with empty event arguments on a faked object by attaching the event handler produced by the method - to the event that is to be raised. + Returns an enumerator that iterates through the collection or arguments. - A Raise(TEventArgs)-object that exposes the event handler to attach. + A that can be used to iterate through the collection. - + - A class exposing an event handler to attach to an event of a faked object - in order to raise that event. + Gets the argument at the specified index. - The type of the event args. + The type of the argument to get. + The index of the argument. + The argument at the specified index. - + - Register this event handler to an event on a faked object in order to raise that event. + Gets the argument with the specified name. - The sender of the event. - Event args for the event. + The type of the argument to get. + The name of the argument. + The argument with the specified name. - + - Gets a generic event handler to attach to the event to raise. + Gets an empty ArgumentList. - + - Provides methods for creating recorders for self initializing fakes. + Gets the number of arguments in the list. - + - Gets a recorder that records to and loads calls from the specified file. + Gets the names of the arguments in the list. - The file to use for recording. - A recorder instance. - + - Provides syntax for specifying the number of times a call must have been repeated when asserting on - fake object calls. + Gets the argument at the specified index. - A.CallTo(() => foo.Bar()).Assert(Happened.Once.Exactly); + The index of the argument to get. + The argument at the specified index. - + - Specifies that a call must have been repeated a number of times - that is validated by the specified repeatValidation argument. + Provides methods for guarding method arguments. - A predicate that specifies the number of times - a call must have been made. - A Repeated-instance. - + - When implemented gets a value indicating if the repeat is matched - by the Happened-instance. + Throws an exception if the specified argument is null. - The repeat of a call. - True if the repeat is a match. + The argument. + Name of the argument. + The specified argument was null. - + - Asserts that a call has not happened at all. + When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked. - + - The call must have happened exactly the number of times that is specified in the next step. + Provides static methods for accessing fake objects. - + - The call must have happened any number of times greater than or equal to the number of times that is specified - in the next step. + Gets the fake object that manages the faked object. + The faked object to get the manager object for. + The fake object manager. - + - The call must have happened any number of times less than or equal to the number of times that is specified - in the next step. + Creates a new scope and sets it as the current scope. When inside a scope the + getting the calls made to a fake will return only the calls within that scope and when + asserting that calls were made, the calls must have been made within that scope. + The created scope. - + - Provides the Returns extension method for specifying return values of fake object calls. + Creates a new scope and sets it as the current scope. When inside a scope the + getting the calls made to a fake will return only the calls within that scope and when + asserting that calls were made, the calls must have been made within that scope. + The container to use within the specified scope. + The created scope. - + - Specifies the value to return when the configured call is made. + Gets a value indicating whether the two objects are equal. - The type of the return value. - The configuration to extend. - The value to return. - A configuration object. + The first object to compare. + The second object to compare. + True if the two objects are equal. - + - Provides the ReturnsLazily extension methods for specifying return values of fake object calls. + Gets a value indicating whether the two objects are the same reference. + The object A. + The object B. + True if the objects are the same reference. - + - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. + Gets all the calls made to the specified fake object. - The type of the return value. - The configuration to extend. - A function that produces the return value. - A configuration object. + The faked object. + A collection containing the calls to the object. + The object passed in is not a faked object. - + - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. + Clears the configuration of the faked object. - The type of the return value. - Type of the first argument of the faked method call. - The configuration to extend. - A function that produces the return value. - A configuration object. - The signatures of the faked method and the do not match. + The faked object to clear the configuration of. - + - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. + Sets a new fake to each property or field that is tagged with the FakeAttribute in the specified + fixture. - The configuration to extend. - A function that produces the return value. - The type of the return value. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - A configuration object. - The signatures of the faked method and the do not match. + The object to initialize. - + - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. + Allows the developer to raise an event on a faked object. - The configuration to extend. - A function that produces the return value. - The type of the return value. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - A configuration object. - The signatures of the faked method and the do not match. - + - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. + Raises an event on a faked object by attaching the event handler produced by the method + to the event that is to be raised. - The configuration to extend. - A function that produces the return value. - The type of the return value. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Type of the fourth argument of the faked method call. - A configuration object. - The signatures of the faked method and the do not match. + The type of the event args. + The sender of the event. + The instance containing the event data. + A Raise(TEventArgs)-object that exposes the event handler to attach. - + - Provides the ReturnsNextFromSequence extension method for specifying return values of fake object calls. + Raises an event on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + The type of the event arguments. + The instance containing the event data. + + A Raise(TEventArgs)-object that exposes the event handler to attach. + - + - Configures the call to return the next value from the specified sequence each time it's called. Null will - be returned when all the values in the sequence has been returned. + Raises an event with empty event arguments on a faked object by attaching the event handler produced by the method + to the event that is to be raised. - - The type of return value. - - - The call configuration to extend. - - - The values to return in sequence. - + + A Raise(TEventArgs)-object that exposes the event handler to attach. + @@ -3426,181 +3444,82 @@ - - - An attribute that can be applied to code that should be fixed because there's a - code smell. - - - - - Gets or sets the description of the smell. - - - - - Provides the Strict extension methods for configuring fake objects. - - - - - Makes the fake strict, this means that any call to the fake - that has not been explicitly configured will throw an exception. - - The type of fake object. - The configuration. - A configuration object. - - - - Provides the Throws extension methods for configuring fake object call behavior. - - - + - Throws the specified exception when the currently configured - call gets called. + Provides extension methods for the common uses. - The configuration to use. - The exception to throw when a call that matches is invoked. - Configuration object. - + - Throws the specified exception when the currently configured - call gets called. + Replaces the format item in a specified System.String with the text equivalent + of the value of a corresponding System.Object instance in a specified array using + invariant culture as . - The configuration to use. - A function that returns the exception to throw when invoked. - Configuration object. + A composite format string. + An array containing zero or more objects to format. + The formatted string. - + - Throws the specified exception when the currently configured - call gets called. + Gets an enumerable of tuples where the first value of each tuple is a value + from the first collection and the second value of each tuple is the value at the same position + from the second collection. - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. + The type of values in the first collection. + The type of values in the second collection. + The first of the collections to combine. + The second of the collections to combine. + An enumerable of tuples. - + - Throws the specified exception when the currently configured - call gets called. + Joins the collection to a string. - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. + The type of items in the collection. + The items to join. + A function that converts from an item to a string value. + Separator to insert between each item. + A string representation of the collection. - + - Throws the specified exception when the currently configured - call gets called. + Gets a dictionary containing the first element from the sequence that has a key specified by the key selector. - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. + The type of items in the sequence. + The type of the key. + The sequence. + The key selector. + A dictionary. - + - Throws the specified exception when the currently configured - call gets called. + An attribute that can be applied to code that should be fixed because there's a + code smell. - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Type of the fourth argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. - + - Throws the specified exception when the currently configured - call gets called. + Gets or sets the description of the smell. - The configuration to use. - The type of exception to throw. - Configuration object. - + - Provides the Twice extension methods for configuring repeats on fake object call behavior. + Lets you specify options for the next call to a fake object. - + - Specifies NumberOfTimes(2) to the IRepeatConfiguration{TFake}. + Specifies options for the next call to the specified fake object. The next call will + be recorded as a call configuration. - The configuration to set repeat 2 to. + The type of the faked object. + The faked object to configure. + A call configuration object. Used to tag fields and properties that will be initialized as a SUT through the Fake.Initialize-method. - - - Provides helper methods for checking the value producer signature against call signatures. - - - - - Provides a Where extension method matching calls to fake objects. - - - - - Applies a predicate to constrain which calls will be considered for interception. - - The return type of the where method. - The configuration object to extend. - A predicate for a fake object call. - The configuration object. - - - - Provides a WithAnyArguments extension methods matching calls to fake objects. - - - - - Specifies that a call to the configured call should be applied no matter what arguments - are used in the call to the faked object. - - The type of the interface. - The configuration. - A configuration object. - - - - Provides extension methods for writing object calls to output devices. - - - - - Writes the calls in the collection to the specified output writer. - - The type of the calls. - The calls to write. - The writer to write the calls to. - - - - Writes all calls in the collection to the console. - - The type of the calls. - The calls to write. - diff --git a/dep/FakeItEasy.1.15.0/lib/sl40/FakeItEasy.dll b/dep/FakeItEasy.1.15.0/lib/sl40/FakeItEasy.dll new file mode 100644 index 0000000000000000000000000000000000000000..b8029c091e7fc881bbfef5fc0c5294fbf96f9f49 GIT binary patch literal 473088 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

%iy7{2uj3B?Y^`(QqWEHYQEUstHQ^ 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%0DDCk+(NO4SW1>8#uPx!c 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

R^Qm^WeDI%!8Yxr<@(PNT3Z9H#e83}+ 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�Be*#DkU>m+l3 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ꗁG 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 a{2#xXlzo%k#D2s5k5~NviT^M3!2bfL$?mBD literal 0 HcmV?d00001 diff --git a/dep/FakeItEasy.1.17.0/lib/sl50/FakeItEasy.xml b/dep/FakeItEasy.1.15.0/lib/sl40/FakeItEasy.xml similarity index 95% rename from dep/FakeItEasy.1.17.0/lib/sl50/FakeItEasy.xml rename to dep/FakeItEasy.1.15.0/lib/sl40/FakeItEasy.xml index 08bb6bd111d..f865bf86973 100644 --- a/dep/FakeItEasy.1.17.0/lib/sl50/FakeItEasy.xml +++ b/dep/FakeItEasy.1.15.0/lib/sl40/FakeItEasy.xml @@ -384,54 +384,6 @@ to the output. A dummy argument value. - -

- Provides a Where extension method matching calls to fake objects. - - - - - Applies a predicate to constrain which calls will be considered for interception. - - The return type of the where method. - The configuration object to extend. - A predicate for a fake object call. - The configuration object. - - - - Provides a WithAnyArguments extension methods matching calls to fake objects. - - - - - Specifies that a call to the configured call should be applied no matter what arguments - are used in the call to the faked object. - - The type of the interface. - The configuration. - A configuration object. - - - - Provides extension methods for writing object calls to output devices. - - - - - Writes the calls in the collection to the specified output writer. - - The type of the calls. - The calls to write. - The writer to write the calls to. - - - - Writes all calls in the collection to the console. - - The type of the calls. - The calls to write. - Provides string formatting for arguments of type T when written in call lists. @@ -536,20 +488,6 @@ The key selector. A dictionary. - - - Provides a Matching extension method for fake objects calls. - - - - - Filters to contain only the calls that matches the call specification. - - The type of fake the call is made on. - The calls to filter. - The call to match on. - A collection of the calls that matches the call specification. - Provides the base for rules that can be built using the FakeConfiguration. @@ -2659,88 +2597,209 @@ - + - Provides the GetArgument extension methods for getting arguments from fake object calls. + Provides extension methods for fake objects. - + - Gets the argument at the specified index in the arguments collection - for the call. + Specifies NumberOfTimes(1) to the IRepeatConfiguration{TFake}. - The type of the argument to get. - The call to get the argument from. - The index of the argument. - The value of the argument with the specified index. + The configuration to set repeat 1 to. - + - Gets the argument with the specified name in the arguments collection - for the call. + Specifies NumberOfTimes(2) to the IRepeatConfiguration{TFake}. - The type of the argument to get. - The call to get the argument from. - The name of the argument. - The value of the argument with the specified name. + The configuration to set repeat 2 to. - + - Provides methods for guarding method arguments. + Specifies that a call to the configured call should be applied no matter what arguments + are used in the call to the faked object. + The type of the interface. + The configuration. + A configuration object. - + - Throws an exception if the specified argument is null. + Filters to contain only the calls that matches the call specification. - The argument. - Name of the argument. - The specified argument was null. + The type of fake the call is made on. + The calls to filter. + The call to match on. + A collection of the calls that matches the call specification. - + - When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked. + Asserts that the specified call must have happened once or more. + The configuration to assert on. - + - Evaluates an expression by compiling it into a delegate and invoking the delegate. + Asserts that the specified has not happened. - The expression to be evaluated. - The value returned from the delegate compiled from the expression. + The configuration to assert on. - + - Provides access to the file system. + Configures the call to return the next value from the specified sequence each time it's called. Null will + be returned when all the values in the sequence has been returned. + + The type of return value. + + + The call configuration to extend. + + + The values to return in sequence. + - + - Opens the specified file in the specified mode. + Specifies the value to return when the configured call is made. - The full path and name of the file to open. - The mode to open the file in. - A stream for reading and writing the file. + The type of the return value. + The configuration to extend. + The value to return. + A configuration object. - + - Gets a value indicating whether the specified file exists. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. - The path and name of the file to check. - True if the file exists. + The type of the return value. + The configuration to extend. + A function that produces the return value. + A configuration object. - + - Creates a file with the specified name. + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. - The name of the file to create. + The type of the return value. + Type of the first argument of the faked method call. + The configuration to extend. + A function that produces the return value. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Writes the calls in the collection to the specified text writer. + + The type of the calls. + The calls to write. + The writer to write the calls to. + + + + Writes all calls in the collection to the console. + + The type of the calls. + The calls to write. + + + + Gets the argument at the specified index in the arguments collection + for the call. + + The type of the argument to get. + The call to get the argument from. + The index of the argument. + The value of the argument with the specified index. + + + + Gets the argument with the specified name in the arguments collection + for the call. + + The type of the argument to get. + The call to get the argument from. + The name of the argument. + The value of the argument with the specified name. + + + + Makes the fake strict, this means that any call to the fake + that has not been explicitly configured will throw an exception. + + The type of fake object. + The configuration. + A configuration object. - + - Provides the Invokes extension method for configuring calls to fake objects. + Applies a predicate to constrain which calls will be considered for interception. + + The return type of the where method. + + + The configuration object to extend. + + + A predicate for a fake object call. + + to the output. + + The configuration object. + - + Executes the specified action when a matching call is being made. This overload can also be used to fake calls with arguments when they don't need to be accessed. @@ -2749,7 +2808,7 @@ The to invoke. The fake object. - + Executes the specified action when a matching call is being made. @@ -2760,7 +2819,7 @@ The signatures of the faked method and the do not match. The fake object. - + Executes the specified action when a matching call is being made. @@ -2772,7 +2831,7 @@ The signatures of the faked method and the do not match. The fake object. - + Executes the specified action when a matching call is being made. @@ -2785,7 +2844,7 @@ The signatures of the faked method and the do not match. The fake object. - + Executes the specified action when a matching call is being made. @@ -2799,31 +2858,159 @@ The signatures of the faked method and the do not match. The fake object. - + - A simple implementation of an IoC container. + Throws the specified exception when the currently configured + call gets called. + The configuration to use. + The exception to throw when a call that matches is invoked. + Configuration object. - + - The dictionary that stores the registered services. + Throws the specified exception when the currently configured + call gets called. + The configuration to use. + A function that returns the exception to throw when invoked. + Configuration object. - + - Initializes a new instance of the class. + Throws the specified exception when the currently configured + call gets called. + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. - + - Resolves an instance of the specified component type. + Throws the specified exception when the currently configured + call gets called. - Type of the component. - An instance of the component type. + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. - + - Registers the specified resolver. + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + The type of exception to throw. + Configuration object. + + + + Provides methods for guarding method arguments. + + + + + Throws an exception if the specified argument is null. + + The argument. + Name of the argument. + The specified argument was null. + + + + When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked. + + + + + Gets the value produced by the specified expression when compiled and invoked. + + The expression to get the value from. + The value produced by the expression. + + + + Provides access to the file system. + + + + + Opens the specified file in the specified mode. + + The full path and name of the file to open. + The mode to open the file in. + A stream for reading and writing the file. + + + + Gets a value indicating whether the specified file exists. + + The path and name of the file to check. + True if the file exists. + + + + Creates a file with the specified name. + + The name of the file to create. + + + + A simple implementation of an IoC container. + + + + + The dictionary that stores the registered services. + + + + + Initializes a new instance of the class. + + + + + Resolves an instance of the specified component type. + + Type of the component. + An instance of the component type. + + + + Registers the specified resolver. The type of component to register. The resolver. @@ -2857,28 +3044,6 @@ Specifies twice as the repeat. - - - Provides the MustHaveHappened extension method for asserting calls to fake objects. - - - - - Asserts that the specified call must have happened once or more. - - The configuration to assert on. - - - - Provides the MustNotHaveHappened extension method for asserting calls to fake objects. - - - - - Asserts that the specified call has not happened. - - The configuration to assert on. - Lets you specify options for the next call to a fake object. @@ -2893,17 +3058,6 @@ The faked object to configure. A call configuration object. - - - Provides the Once extension methods for configuring repeats on fake object call behavior. - - - - - Specifies NumberOfTimes(1) to the IRepeatConfiguration{TFake}. - - The configuration to set repeat 1 to. - Provides functionality for making ordered assertions on fakes. @@ -3052,114 +3206,6 @@ in the next step. - - - Provides the Returns extension method for specifying return values of fake object calls. - - - - - Specifies the value to return when the configured call is made. - - The type of the return value. - The configuration to extend. - The value to return. - A configuration object. - - - - Provides the ReturnsLazily extension methods for specifying return values of fake object calls. - - - - - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. - - The type of the return value. - The configuration to extend. - A function that produces the return value. - A configuration object. - - - - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. - - The type of the return value. - Type of the first argument of the faked method call. - The configuration to extend. - A function that produces the return value. - A configuration object. - The signatures of the faked method and the do not match. - - - - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. - - The configuration to extend. - A function that produces the return value. - The type of the return value. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - A configuration object. - The signatures of the faked method and the do not match. - - - - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. - - The configuration to extend. - A function that produces the return value. - The type of the return value. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - A configuration object. - The signatures of the faked method and the do not match. - - - - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. - - The configuration to extend. - A function that produces the return value. - The type of the return value. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Type of the fourth argument of the faked method call. - A configuration object. - The signatures of the faked method and the do not match. - - - - Provides the ReturnsNextFromSequence extension method for specifying return values of fake object calls. - - - - - Configures the call to return the next value from the specified sequence each time it's called. Null will - be returned when all the values in the sequence has been returned. - - - The type of return value. - - - The call configuration to extend. - - - The values to return in sequence. - - Handles the registration of root dependencies in an IoC-container. @@ -3357,123 +3403,11 @@ Gets or sets the description of the smell. - - - Provides the Strict extension methods for configuring fake objects. - - - - - Makes the fake strict, this means that any call to the fake - that has not been explicitly configured will throw an exception. - - The type of fake object. - The configuration. - A configuration object. - - - - Provides the Throws extension methods for configuring fake object call behavior. - - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - The exception to throw when a call that matches is invoked. - Configuration object. - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - A function that returns the exception to throw when invoked. - Configuration object. - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Type of the fourth argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - The type of exception to throw. - Configuration object. - - - - Provides the Twice extension methods for configuring repeats on fake object call behavior. - - - - - Specifies NumberOfTimes(2) to the IRepeatConfiguration{TFake}. - - The configuration to set repeat 2 to. - Used to tag fields and properties that will be initialized as a SUT through the Fake.Initialize-method. - - - Provides helper methods for checking the value producer signature against call signatures. - - Fixes so that existing Serializable-attributes are omitted in the compilation diff --git a/dep/FakeItEasy.1.17.0/FakeItEasy.1.17.0.nuspec b/dep/FakeItEasy.1.17.0/FakeItEasy.1.17.0.nuspec deleted file mode 100644 index 15c2a7f9097..00000000000 --- a/dep/FakeItEasy.1.17.0/FakeItEasy.1.17.0.nuspec +++ /dev/null @@ -1,19 +0,0 @@ - - - - FakeItEasy - 1.17.0 - FakeItEasy - Patrik Hägne, FakeItEasy contributors - Patrik Hägne, FakeItEasy contributors - https://github.com/FakeItEasy/FakeItEasy/blob/master/License.txt - http://fakeiteasy.github.io/ - http://fakeiteasy.github.io/img/talkingladies.png - false - It's faking amazing! The easy mocking framework for .NET that works great in C# and VB.NET alike. No need to know the difference between a stub, a mock or a spy, everything's a fake! The easy to use, refactoring friendly API makes faking a breeze. - New: Upgrade to Castle.Core 3.2.2 - https://github.com/FakeItEasy/FakeItEasy/issues/236/ - Copyright (c) FakeItEasy contributors. (fakeiteasy@hagne.se) - en-US - TDD unittesting mocks mocking fakes faking stubs stubbing spy spies doubles isolation substitutes substitution - - \ No newline at end of file diff --git a/dep/FakeItEasy.1.17.0/lib/net35/FakeItEasy.dll b/dep/FakeItEasy.1.17.0/lib/net35/FakeItEasy.dll deleted file mode 100644 index fd49d9a689bf1356d3e9ad5475f4e8fc804cd057..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 645632 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�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

aWWBTIjcsXE%Hu$lImSNw0!PUL_}E_Hab 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ÐK%lH1zAUgz{U=SZKX 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 z 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�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%0AU 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%0Db{u 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ⅇa0I@ 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�JDE2D8n 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�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%0DI$rcwx%Mu*|k&DK*$ zP;D(%t12m`a6d~dzq`U9&AXW(B_V$xlb^|?4Q{MuE39S?7iCf-&?8Vx4iSVz?)DVA zSbSyX4MnWz7BxhN&Ky-+W)Ne-ppXtgCL&pj5`hGik4CB1+72WUA8vY{cS;tqNQNRS zvcZ2|W&%W{z{k|d5|DLVyq-l8=2h3CF`=!nGp|8nB%pwaH4=^0OEz?xI29H>8**GJ zCWH5$yYJL+)Qz~=L4k8Dg5r0wc}=&eHuf%N+E?DB(-0A&I16SNUVtc~d{;UJcQsV* z++YL%WwUp{A9R2w86^obL}FWHj~E-{ha%MQecbyFrKnMLR;; z(go?zmebn^q=$vz)wl=?!fcrG3mtT7wk(r>jMfD`>Zy?$hOn6|Zpc2-2ekpIsI5+0 zh2DeVRvajU;lN4U!%84%c^kOJ0+I?RH=0~owvQX@4@ImNE}Je^UZtxxO{|UgG4?hbu5@ z(sh+QCgCOi$YbtN>&ft$c^Ec$S?sK2SCVa;C(Ht6JA;pJ?$(vP zRsgV8dLd?vPyr0i_Gf#rfRCmWYx$K~mI`tL9bgC)LdbEtAJlM&2}8RBoG?h>)E5{Y zLzrP%+<=dwwZYS2HH-Q<=H2l-0T?jaKek9{+n!WaI>vf{Hv%lO!u@VeP^)no${K{V z=Xt(sn^&o7o`*(oA$^rK0_XD8{!!ZzNs)2k9;s&I$C&r3DzcwJ`u19t9LB3F^&0b% ztRs8aXBxhAfHUB?(vC0q7BK78m!>PNHnDsik;VMS$BaAhUE=eV!`L6V*APfRB|4fS zz$T%9k=zcJ5{P_5Oq?1MlWHU&enY|A>xYqfCZsx0xxrft2*VJeFtZB&ypJD4SbQt> z1@%<<%38RPiiG1W5+h{}xgA(RzzaJJLe#TEixh;f!c6$6S}m6OjIjB#??6iOWdWtA zFi{0OQE_1`xWl4Zx^oXQ(`q-7Ar(qO-uVPnNdyHnVHho}8Oe1?h_zan=~bX+eoh(ct)JoYKL5j-OfaH4DnT%K;MMh`s>@11f2sfI z>O?7AywP8p$st)N_#B7u$OHz#g^K0Hx&)N?L9g9e4!=rMEi8BuQuTyHGRmbf6q|1d{KPBksFYF*q<7iUzMh0u$T{ z#4oy*(_<_g?}0*UF&aYxor~)P(2@ORfpRtnae4Bm1(f5xdJd|7?Tsh%sgTPfsnjsq z5hoY=-GMP?_z7-1o*IebDDqHe`~iZ|D3VeXi(K|M2u?$>oZwOX5rSG2%?Vzmzd^wD z3S>(Osl##!6}J(kBjQ3w6ygaUYP9v@jLGt#f{VaJ#t}PXud$BEJsu-av6we;5-9Dj zkBMwdG&y2$wj=U~V&Xtd+z}IdV&a~dsE&!zF)`5*h4vW9#RTI*6NmiYihOrDIJYGx zjya;RHYVa6E7fRT z(V-n=O+@GGYNlQ)IcIz61QE}nA8spM>4ma`Y5fN%McJ)vp zYTHe^-u56@TW2zhvF-(E{G8eLE|9$51?*3IXX`l=od#CxAT7;xF!VJ@Fx0{+E~3Os zQs|I`GJ@1G~+UB_M2GT}^<>hRI7tRQP zc`nko=`cD3hKEhS@a@}W1ZIKBCx1O$U|^=OY`*|A6RHe@N&+;Gvo|X? ze+Y?10+wXH`zyxw1L#n_=m=y2`SZyy5Jpq%!$^wy^U1>@abk z^}xah*0^Q6FopN9N`md#nuJlX)OPw#rnJ9J|+rW*Jy06aMn;V)kKSNw<=xrHb!onhD> z;FmG6MxGfLq0ku)Wnqu_22>NHMC5J&)Vj;?+zv zFRyK}%8+KjL(QTA{IfABF;w8eEW`c7^Y0SNIF9unXzv z*=~Kd$1PmXRts#!q=-`aaT^@m!WD}!7Je!_VH;=h8|y_qO)tx)kWmXBo+p874&^sx0N~aP)nX4~ zWdjRl-U%Z_9n0S)BV)@3@v_6-7N{PXXN3U3FBdI}%64vW+ZE?KrKFr~2_N#hYZ9gW zd+eyE&i2$XPc4tB-uaxgG5t+?{e%{nYQS%635EjEsk*laWy}*vjxGdjfsCP$jDH0-@Fiv#K4;^zXJDTQdE2yw|S<^8ss_1MSG1a@LFf zYf$sMKCmtUw|DG>qXx@ry$@viw`S;lFwRb zu?(K++s$n$41yf=XF$r4SU`rJTGpIR?oXOyiG9dO7n7YvsQXW5Uk%%hj zR;nNp$vp_gWcnV-^w(zkTOiGr5V^{z#J+?2lM?&8l}8}XX;V*Dq@F2IN>NEkpg&HG>SbINOZYontkOvF~PtSSHQS zU}=GXnQf~w5iJ;CHJarbQ$|-ccKF^22!AEW-4;R9?Lr`-LyYZFW@IKn5<{WqLYs~z z82zW-EY{+OZP>M;_QD768Zn6DzzYdGhMoaY-HjSWf*p8Lgnj+Ml9vb!K8LVBn3u+u zEG~B-(Cz%7zo4}s92ze?F|o>n4KUsz+>SpEbJEBjmnK5nE%qIhf@#blc4whS#`>#9 zVWX+NzJrKlZl;;bf`ywcohj@<--@z12#CsahMh)v7j9)#z43fn=9KXdspIm8H$JEZ)&nOc6!~#L_(~ zi}5AWMXwTbwlUSn^z2x%Ut`6-of=>jRwxaJ_{8v*+S*NNy|N2UJotT)s|t^HAs?%WOz|N znl|JQRt;HbS?xF8H*r{7Sb=ZAg&H-d>Lia=Q0?se(1JQ@f~fu$wwZ>N3T+uz`oSZ} z5`9Ng@MPGq95w_WJ9^mf8>$TJc7M^0O}E3dmag7V55j(3n8=xv34131f^<1tT`pID6v&;ulJf7gHE=_ zO1FMC=?zRe^U#3RsW>?^6u6|mP$`_*qo{5AyV2l{wbIf1+BTyft2ba_KS&!PHwf`l zu^t;>DykVZk@<=4wc!}vg z6P<9$XoXRqFl6BL0ETOuF%1SFXg`S2*)reEp3u;agv5F2YIRuEXuK?!%FFg)+y$sO zXwAqicM|X$C5Ltny)qJ62Xr2Wh)@Se{DCgVIyI;vG$VuwL$(_j;aMHb9ic{OtI7=B zCP(JIm^ZL}wtZTEw?_5s1UVMq@P4c<=!1~g*Ny!nEG>Gg5ruW2R1v>0enE?L9vz)c zmX?Wfn0pior%wA0+j2m^!Y15~@%!xnseh*(8Tq-N7Qf~oXP9I@fr^6N1M!9nD4>D{ zt-Tmh48(^)hyg-5o>+B4kDUaC%+SHOaWKS~x&+BW9pc9`)Yr%m^#m0Z$7c$y^zI$x zv;VkFHJu zc~}>eBfn~{p|KLg-WVHlM&YKz{RiFR^T5Okbb&S|EcS7g+{Ob#f&fH_S|~{a6H(c$ zOs2y+95ebZ>*L*wT~RAFXx!-L3Jj+3*>cNV^hXl~h=IicYaxf|nm8lg*D@9;>%Ya^Z50oK1&OV@uU@b=-?0^On1ALQ6Lt%jqoULA9V4@1Sr-rS>K)YSR z7-+}RXDBDm=RnyY)1bt&-0>{8JaEQ5%gFzqftzD zaA<-}Bj22|xkLsX)pIH+bv$^dBZpF}<+y<*Y>*iXFg&qfOYv#DeKQgbQDVX?YjzKK ztvxr>Gme~&#C~sX{OUPVa<}M-xit+6oea~40pvhVsm<}tcxGTLUrzAL=3y%;AKPsA zqkt-*{MEJi#$-8nrym^O2~Dwf+l8G`jCPXZC4#orsy#AL6?PQj34X7dfB$@NYdqTcNQG+c=L(p z;01i<@PZSHIh>ivSD{EIUfdUM=K4(h5+Bu+WZrr(pvMn8rRCWELfBz# zX~OGizr(o{&~Dn%tdiJ4Y`2l(?IE1nUrn>b;hi$1ay(QE8ZuM--9jpLd=iNrTu3jx z<>|5pqb;d+&aK1uPLg&MVWW_>co5PNmovCK6GPW(jX`B_e2r|EC-PW0mj!UQGNQNo zVP>&t0o~i*MU>ZO)JQGYR>{t^K@nE5Rvm6LLM9EAaVM5RxO5Z$rXi3zxlcSORAd;X zP;j5fU{jCo0{Y2s#0EsHqeE$UO^hCytFO(mL%LaHQ@==#oz}5aj$_twOz&>++B@E3 zjpLJs^)KF|Cgv*3Tm|jx6%aHs_&95J1{=??@G7Q9EYl-$9I=igRd&r(Zx+;MA;^WY z1HUN@14`AaLK&+Jy38_`O#$1WcW6co``Zzh3(&&N$R-k~ohUdC#vSx9YXn8JZLQm` zf(&j)gRAZ%5^22yC>W@f@}3JgO+U6Tn4TIOL-QDpM#Nw8=Y2Ui+?_6%`Bh zozP1Puh3X1SnYP-v@|rsTcoF+E%2%3pqDRB@X83Ir;J`?V10(uVYp_xw*v8xSXZ#U zOk+PEM_%x^OZV7p+IyI3?>(%c0^D|}kbCruYz5x(aB^GIQ{_gw8tM(c_lIOs)?kW`9^Mf)X7z(!-Ku&|DMur=bfyMFYR z^Gpn5h5~0D$1r9bl7m^+DR_4(#Nmtv!>NEpldkFcMw!7|L8ftDO-}^|g6OT-E25}z z@&&Q+B%D1W)2aPER(dSu%<4#Q*|^2$L?6e&VPRdmE|NUGeMJ9Jj%e_YiRCLpCKo4; zya2jw@Q@oiJg&1z!;~L;vWNK?`K*8pj#ddhMKyj%wkUwRn6QEDBt0l$*o@8|&A#)p z(Mt+mnWnL1hZ$7vcFYW*GcII@?0sP#uzYAZx6kdy`=ZZGtR1|Q_OVeObK^?Q<&QD? z{E-Fi9J-3HLFsk}2!CCb$IQ_5R%>{bdkFQ?PE=6Cu^f#BES$6DB8}$!tSs(_y)n)} zGe)b-J%glUAc6%ucHP(_Om4kTMx%qVT>@J_aefMRUZcgr{79OAKEXH6`BOnqc0R#r zU7q`EH7Z09%)qRA_CY;(?d3`n(+w0ev=^navJhmgG@Hny+l?~@69xpzHzR7yCy=TT zFJ{>k+BC8Jtc9RZaoR6;ON9}T(k3+s;=4J^p_lLZ4(Llw7v}F66T#BB9fJkI1NcUb z2?iy@0~8y!ra9p*MUXYd?nB7$&`^VW5^C}{TbjAAvVTYyW+l~}m|%Ajl#BN9lU}w% za<|~T8ETu2!xcF)Syzh%J<9!VNgTI`E;HIi0mUNqbfodX?I0!?!bc?^RUCTNZ_ z;k->gLM_sIf2hk%%0B%sWB8mrEc=NE1M zzlZ|BdOizS@I#}xK%)NGKA9GLWCyY@!KlWe3iLjO`lTzpD)&9aeOJo&(b)R1YC&t( z4kj2SyGryUY(elN>C9--l(E9Q8V?m=dlK@)h7TH?%Z)G)9i{3LsT8VGI*oW}{Tw!- z!^0Z|d^g)gEoka)>I^Hfs>_% zM~HJc-kB4|gm$?5`R3sf)J(B8`8l+d#kO;o?(LnGJ-@VH zk0w%3-%Whx4^^a~Y0W^&QV50z&Nz?98Rzk;P3f}nn1Pgy$36!lH8_A;K_8uLO_M^y zYn@#w=d4Be5Fdoa`OX9$IFg8GvqEb6L@@WD+-E|ugY=$>AhqO4@~r>=q(8O@rs9Q3~g1DDxP-aCU=Ycx1zV zW4+bogc+;#k{^}0z2)Ok&2j3_G3P5KWTHG1jC?}uRhY?G3he;VOG)MdS}(yIpM%>i zsvX=!_sUP|SjhO?WDh-14GBb0J`Y&MV#%nPWU z-ud*z!UdD?kkU-gCQ&FkM-e;feb4sPF;6XzDM>_4r9@oq!n7bXwnoI%PERc%58kTt zx!31lg?5et@dky@ z{Sty#A_#(4B6#Ae6h0^LnY)`z{qtdVA>CMkM@e8c9(3OwLYN}9wnPr|iB&c{3w3;A z!4=Q`chs*FBPZBd9MvOWkmo*8ypdet8o;&qCre~F&kLY=X&q1j&FHIE= z62X)ZPvr!YG3L?D!WfmCg@K{4E=r;uO(s%x=~OzENFswrF?t+0T9HHpG;j<(CvW8t zAz$7sGVqAV$4EYA86S@sNm%H~7$RYz<1s`+(4cXU2n+G{21Yta!a}JSB4MG*7$RYz z>KGznp%F1ef~n4%$|Tx%uAyl}s@pWi;6_HonJlY|s0Z+&QdH21(K%K=lNd=4)*?Wr zaJEuL8o4i=J%V0Xj#JZ(dotL9ckx0Lk1^80ESLwgrzXoXgJXHb#rYOg?ipP70PnH5 zq@}eaD9*AZwG^Mi>@;QXy~4;Ij?u)?Ltu(TK|D=hpS%NvIPW@%eTb2x44JA`VwxCR zlgNoACyE?Ta=gfTlJz2aQ^{aUSrVg%R1yPbta#D4P@jYgN7I&*t1z3;>?9PMUzpYn zeG9GnXRooIt>bWPI(_;Bwxbgd-9Nw>*YXf(%(<*&#`PE*k)>SRe63lXe?^slNlUTe3;o&)SzPB zLUIc^@g70fwBgHI!B*53CUKAinF}c}7g8d5HBDg=EG(6#O%;x2TB-9^lr$y-kPt~p zwYB4tLopG+G1KFj!QGzPBlk^u?!^<*^cbYh2KVrB6CZo2ONAyec#q?{=cP$3Bj1aa zfN!JVw(^hicVQSLwFqMPdvQUKV}esxat`hyrMtDDv;0;G-tPqOmr@Qe=m8on=5Hfl zYt1!-hwz6+!(H9U(muqD58iKYLcPB^S-}}FYb`^8C^`TPK45jPMNP5&&liZ_~Z1;{~;{RACw~b+r;gNrAD4AiloB~02_B9^M zz8Q8FQef_>YAdj4$-ElMww{VIe{2LT)gQ#R%N!{-qaL%ZLEIxe5*s54Y6L39VP#&M zHHaj^jm81RnNTYcz}(^HvJcKOTP!gQJp(R4&1_0#HsQ=l8G>%2MQ<{El%?6GJgF;E z@y+{}2A^bZ@{jSkshUjHrzT<6XruCAoRGo=w4n5-)uqf;he%=%U-f7O9P)+ov{@T+9dKM7oklg(DSl2z(F(i37gc9 zZeq`{3AF|l@(z-B*noTEfF!Jn?lxth!3rRUNvFK0s3W| zTaA+0^kC74Lqwc>gD+l9p{C-bG#qG{t{#%a!AXFbO@}4@YCbm|;j?FuLj^zdN}ZNW zvLUypaBvoKc~L&bhZnmc=XY& zF_(K2PER|h0TqiIjm9$OL-T5n55hlWyPm(%{)yg}$@5Pw-;J4`JCv<$L)cEB%J(h^ zi)6aWH4428(wR+1<1P+o4{-`HNyT%Zj_9;(jzLY7!t$nCoJTnPMbxwKg0VG|EcZ+d zl*wPuQBNpyx*iehf?Svg!oVbu;1%{yXp1Zq0A&Kh&`z7N8=|XB+#;R zAua#ylv0D+bL&`ESWV})GMvV%l?G!+?MqO(VqYG|^S*RsdLBe9X-Z<0)Kj`v_R+g= z96K|PQv88Bv}cdwX;Du)mnR{nbg9R*iV)4H2 zB}u&KtbtfcW^(X+wCKe9o=0aSE3rXRH_k)Z$jI}q_TbtMXq9+i7s5q zaf^Kk=)O=X*+^rMf<+O$=>+i#8aG={9P>h31q!DR`nOtY2{sg3YGAkk%4fL zHG|yrK7g%`f;38ILN=FG!J~gaZK7`@TV|ZZpeqJ2Jcn2BK|ANgsVy1<&t~n0!HEeS zUm0cr=?o62aLCBr!fF;IKQ$ay7)y+WVvOg6U`wWzh|QMW<(zHf2nACF34LRADC7|f zAEmgyZjR`&Q;vr#`di|l{aISSPHAzCg~zRMjH^GZAXrYolpVix0mH&;9%s~Y7S>^@ z5Zysx9Sex#?`CW|!)g5^6c-9~^>W8JC%y@Dgj#NKDbvLDM3D;SVoJlF&i!?h=0=5hpzu&Z5h!P&6)2 zh{xxz#?{Uu68HT)nnl6r6|q{xML` z4tt=UX~AUC^%4v`CRr&nzzG5<9(!(g;|x#X7Ea7q>{e@N3-Oy4{2(}5zP{ZWqaZx` zT(qfdzwtpeaHhBMOxHkRhwh?GUlxD`OsPzF5!1fK9^q(-P0-N>0=I_p554;LwV);5S#Zn!sA1M^u|$@G}!Q!PK8^ zOb(+@-&i(=JmdonFbS{(*mK`wv01}{5n3i*i}eyV_2gEwX@l7yv}g7ks&cZrGCpyH zgtmv+4>Gm=sn;ZN!sU9tt?gTan}hM^l_RzbGJO|F3oKr2+wNs0M>d`2RPqy;T*Xm~ z<|5{fzm@Y5>@)f*U6G_z+qzwCQyt7@`f?)9&h(uvt*p=VYdNVum+6;R|He%JMhsT4 z@rX?aHYlR8<3eAG^B5Kh%A(jpjb@ZMfic}yK)b76$=nRnLuq8ez$*7`G9q(FVVBGt zgsUCG8*e6hqY7y=3Sr|}$*TXzLcDpLY!|bVI0|AF4J&NNU#X&Bh^|lN`WVFKXYeog zXfeNB?L&#cukU{Rsh~A!z-t9s-#9810|guiqYY?CjQ1X(QMKR&rC~FGtNAoe6fjyg zD5Y>W&hH(FJCwe|nZ8{%o;y6X+fxTYQKvA^l>I(xzx!KK95|*%BMLQDIM>kEZOPv4 zncnTJE*NWE4U<)Z_aSzq0ql9)!tR8M+$CDm;OvC<4tMp0h5FUO{6Y{V4Xa zY&4s(cnJwE<(w_YOfOAh@d=qi)z!i^uTq5gY0bj0Kly*&0mAoBcN zY;&kfNI#e@u!Sp(M6KY|fmX$7#7LQC9j71-v|yx#vDtS+Zj{WCt)@nBvtLzjje`*o z5i=)iGmF`srohYbFgR@&V$+EyBD8e18=GR^yZvJd2DTy#Tqof0%r;VXpn}9>iZ)4a zX$JOWHebMmlejP@=3_>PW*&nd^ybNA8D4Fr($szK84QbnG2igVD=;j)4#7MDv#+`+ z6~zMd)`lXnrPaz_6cbBgqCF;-Yas*kK_=GHM?_<+p2=YxJs7W@iO{TW^IFcAF&+|O zq4hCDf{N$z{2gwQUDNi>8?k<~c_VYeO=nx6T>$wlP!~3YU^%-7CCj}b(7L`e`K%@k z`c(($ntI*LC9KUk#R(h2^{uva5D^muD0lpoY;QSvcE8e)J8o^S#HoSfaqwb&@kCYu zux8Kf*3!Ytgbp5JDh7`t6@y1lW97(w193ii^0(F^tXC#~FY|e?)l+Y*ClZqNIAuMq zbqpH-t0T5`-Ur*XgEBsAL$`PakQ_4R8EP*v_k%xMfz3Om)y+GltX&m&V~mM8mSy}p z$--LnsI0P35SEIpYPe>E4{R3SOK5GcL~Tts}mS^X`<@LA#;V3Hv^ zI&AVq0t)L;#)_Pac$;^#s=-jUBDef6tDysnbucsRUJb`!4=Zjx#IjltVOcD~)DJDt zz(kBvFurc)7`u%7t+4Ye93F+k%P{2ONdX+2;C6Rx_8FPEzq7kpR97jt0zW{12N z=nFZJ_to;o%bVOMMInUU8J9#`!`-O}iP<~M7~lB448$}%B-ZTwHsKq=^L9sN1ypGF zQMa3tt7YC3!(5+C*)zw^IXhTpz(7bO2zPquEpMk zp?k^CYCts`AL;x4=RdOHojX^5|F>s-uzdE8356?0oi}hEeo5Md_{I6l&-m2PiZkGN zI+$Wc;i_bif5zwb(3s20jCp_Bm_H3O=Ev~3Bx%fP@VfyU&JMv3PLsmt7(O}hzY#}} z?*P3Hev|{JK6m508NdR3P6chut>3a71{;4nj~Y{76@VJs7&vMYsAhbInE7}v#;4q@ z!_)F@^i+?hHiKe_a&r@&yDjxSW7fZfQa%m$mxO&2Pb=lOldW&LIpVQjfU;7a0A-~F zQvyjTHol!P4#Y$878=3G3l#Ak@P4$pTA8~?B|9~1QjJgr3>0!3{MF*m|WEcKwn z%FQF7sQV%23D5WWF>#30)L4^spe)}@K-s)abXd7*@xHGGW#gFdsB+T*>TURxo15{p zB|YgQv0dHiu`h$VUwq&5)I;9)=brj4D4T+^X|cT1Jawk0#)GnaXMwUd-iIo0Q!vkA zX>$drk4xj7p6c<`dpz|~PwfLm$!YUNkNwzDYs}N2`0sr|vCN0G#A!Jd6w5qq#(`qI z<>ob@Z2Dg3sU@J8(zIFT_|oRpBjS|i99C}L?L*w;LX?}^JaxCHKIf=4CD!y^V6>dH z`S;%&r-P%wY^wh3!v@o1J%9B}vHp@COM7aRr%w0OSVyJJBv4lJOz-oyp)f7?DL-5?0vuD!~Veg{?b!_^uEbg$0?`+ zW$We3K-qlE0A;P|98bN;@u9uke9Fx~df$(MvNiOxpseJtd*7ddvKoKH`vzyn^3tGe zhzTC62W8VT)l+AA>Ksqa_0)V&R!Y0aPTLsUS{E>z`sX<>u#}dfHQ!Gvav90A*rVV+%ah3d;6*Z}EILcxs2|+vTY{ zJ@pw+eZf=z;;A2ivT6B+ryc=ia~ZwH`VKKwploY*6f`Y(9j?}4&b_bca{HpfBP zdNguo9LGdZOmo`I1+@g9a4gn@<6u9}bl`(mAUMl1fk0i}>A;(LQR|`4icq}<-&NjCq9WQqXN3gFk{56x; zmhj9nIiz`E338s~bb6%1Tr4>ofo#RcmGHx8MJ z>sGrI>Mss4W`tQIWW+Nz6p^(;US5K%7jj++vO&m|CCJ-^TvLKvC*-CQWTTKfOOWe@ z94JBFF63t=$PGeL7@09&OyLd6*EEMDfaH{Sj^5sgPr{sHwuon`<5>^non{xXYaC)s zoq4a2EhWg!LOxuAykE!{OOOvp^7kE*fSjGOpFcQc8;(1DP@&R)jnh0vd8jty9g+ag zZeg=L&r8kiLM|&oJ}TteXCZez3;B8p^3MwO)U%NBNT=1|OO553`7C7R2?*_{*C8`e z2R^2}?{G-Mj5nVVa=S++nlCE$&jYcx`YQ8vA^%o_+^ec4w3U!V{66V$B7l@_WT;Y+k%&)|=%p5c~ZznJaVr2tJ3^&Ahsns4~NRAv2S^v^Kg=F7sCDCA;z3 zN%{J^M>@^N#PhQfYnd*oWI`0Rq@N4=a4<`?1#%Wdolv%&mYJarB+ zW~2F?ca}pAa&^BcC$+ zLXHn#1LP8X66n3YEMzrY8yxZ#A(^RhFY_7mRq1Ct{FzUNdO*kr95N%=ZypL+I=4H- znEmF*()?$AsQu=M((}y{eKjRQ%4wxr|oPmzS z+QtF%M@fFALlWS5D$F5;Gd%J|wCAh^7Xsm^DHndplts+N5-;b=CKXX*>wKs$o1sFs zmLQcvK30NM3HfvhQX}LmB}hid_dW7ebDEIyPsf`7Do*jzGLM$laL0Fguyn&KFc99@GB4Rj%Z^GN_gHQo~u1iBDh(|Kne1G z#r{EutjEaa14{E9K=?1gk&Tcqd1OfNVIhY-QW@MKkHa-SF5^_rk z@}NT9RTAosp5xGcEYIkp2?ni$XqBf_zoTz7phL zgd8eCzOJ}_;E)6)->+Q!$|Gk7qfzOr&C?!vO)xIOT%>9OQ-@E&oD)nEPh$zvh~}i) z%mvaRp1Hv}Lav4@kIzHF>w>vLZi36oxh!~7VwXW52ZZ&@n1#VV2>C(@vPhwR;Ex9hl$eV+= z33;G%{I)e`=?>}&eF>eWWiRVer z^OoRNA*T$tIcoLrH-Y>RpDV&WL8o|r1J~2|7;_g8 zjvUe>Es_9ot$5CKh{614v*McSc|H}~D4sb$=Hp|`r-SXvMZqBnAUhOli$k`TeL8rb zkef@8n}vL|1o?o{b03f&;nRyyw0@LBQfa6Abh`-S|o4|QMgB_aRnko{#}4Zb2de*t3U910GJr|y(E_Cvw_ zLSE~U`-AT&h0B33R069ZKN8P+$MZnhw}T_%+37?5Yw)mm?sUlEvL6P26!K+$U zLrBG`aW0MouT8REj4MIrh=(&)h8mqX8ng*%0T0uBN7>O}xkB;%GA%PZ zM6e^tHX(CbEay+b`^1w4V$=MmV5g7s_6VmB<#)X%s zSPQOkNN4zp@Xg}s@jR~xmx8C-yvrfy41GnoLdb59Obk~m)Mp)X+R(}2wL7k9`W+9I`q&LwRzC-%Kz}0EBF?^SJ(heDeQ12D;(h{Ec37G=K)|9E?t&%g} zA>D~-;fKWYW``U}w1giP((RD#Wz$34KL(BUdF1TyE+IR7sMmyd3)$_F*M^@I@(CYm zX80K)|LTyjiF3mJLXLW5PIy4bpM9wF!h=GFjfpMu{O~J6#yI3i;&tISgw#7^ERcT_ zGRGsY55Fs9iAOF94-0v_moq>7k&qib&&A;pA$vS>Y4{5v+{t3KdU^OuA>a1M72&Ui z{K6sI%NB>f5%Rd_SsXqlB*JpGmGkEC4?<4y$d%y}LZ&-pd)bokPeSH8q&u-R{IihD zJx^PR*JLQKWnNAPPC3w4-v)#=<(#3*!m^4SEPR_ou)Z4NUQdMD<&fQpuCS&e2jtU0 zYzxp84j0c?9kQr=ML0^xw;i(0tO?H)auf*L!-a`8;Y)>-XX6%fO*pQC_4H*xDA{0b zZlZXmIHW0YZTKo7mpNo~Vtv>wWW7Vym%lAMSI8|Mxh}jw$RQw%y{r7X@C`!#?06F9 zy6|El!_SQKwK2RxNY){X%HJNoS;#9L@<3UCxJt;s<0XpK#yi6GLgxBVH-^^>xy(!6 z5xzsnN{_rZ+)=?1+OPf3eN%3_mQM&wHMo;U4i6 z{)lad;7OPdh9491r9Z^Tt>LGIe9OzZE4*LG&+xRN?h3yt^a@kwBX z@suI7jk=cvrUjpE=JVm`Ax!g9ha`ZUh99pmW(5$w_wEcokDq*{)oq50@3qO3MJQuF z1Q*|V6B#Ethu}Ia}1Z6TV73*8t&|AMZNDdLe}pq(R!a*&zw=OcC_{m55lv=bI9?GNd6!^SIBpKs2_%}6Y`KpeiUA$*nbCvvsz;w3>OHg92@82 z!SGTcXOtk954jb*6HAbVl03^H3CMYqLR|_ZmVBjp z{fI*-xl=s%mGG<)&*2iDbxO}~N|5V>JmZl0$%n$c?e$GALw139?B@ zLkaS6n|Ft7!@Bk-m7a?ok^pkAcsd-?o%~7oYaweq&ribN331$fTjHJOAR4Uk!aYY!>oshx`Uei;(DLR!(p7;qWXWqk-7fjEBQ> zhqA_<;gMg2uN%txHK_!7z0z|LkcIeQS8=#R=~>~B1dw)wGUn|L=?s4vc8O<;Lv|;B z8Fnl74>{zH5hP;GI@j5YK%MNdV~+@{pJFXt+r!eBAT=CVZ!O{^F23l79-{ zCuHc$ZJM`XP5)LQbq?8`d@9^6WQs%XNIo6z5%OAxVEi23t+*}$Vl{R={G^a>ApDmw z&xHRf3c!$V88v5{;Cc z^E@&-I#tMDlR#+Ned6_jsf(I!ipC^~jiLhLEp2=bn_pY&1tafADh7 zj4lvz+#}7FG^L>73<|OQTmri^Ma}^GuAEoD}=ys6)sS z&r=^Q7g8+KDbZU`;%SOj2q{{^)M(X7dY%?tt=QLi$OPe{?C&W}DT}%3 zs0HD~*v2}e;Z>};8HYTX>WoGTnO1_FBIHt!yfvy5@{b-_8I2RN-y^G{2~{VyqN}1; z3i*!X!Fq2rN$L5CM^;C#lAK>TWOT)vs6ogxCCC)XDb~|9QL}hnHYv{6x@g)-JnN#f zt4?f5u8CeFo^xHO8NoHtIYNpye@%3*ki}l|wb2|Qt39$lI$y|uM>a%rh3xdm+oIPi zg?D@8x@ewwig9g>-XNa)JkRyf#X`R4kiFsCqf3SS((~L9Efn&M=gCKJK1p&uYCQ=l zL~TNf`Ra)}gcS4D8(k%&n6JL5Q%Esi{n1;66mu~Utx$S~PL9iBFj^&Kyhk=gYlKWG zL9P{Yp+`1H*Gck<66AUzd5^p!x}oaCc798gmz*7*XG_$lP#^ZlJEM09DfS@mif$BA zw5YAoyMz?$`?hGCkk5KK?~dLhq?B2tos@^`}uYH_BrO-_AP~jn^qS8X6)I!t5LPbRrVTPleg#iae zA!CwA%SzOU(u@>K%hJk>iqZ_ppJMt;Dl1DcBPvTxDl*IWyVkn*F!((0bG_HgKlk<7 z_gZVOz4m$UnL)c;Oj+Y?=U**QOxfw3;-?P~Q#xAisb7B?KeimDG8t+wJp^SKJLfZH zn5fk;_g;GFCGA|JkGYH=js1pO%RW%QOH8@OJ7ti5x0o`_J7utbub48XSiz&(8GS}&|#FUP!f)IW7CADtS=Uh^2m>zdYty^`cn9^|;9-${((oUG3bV)mR z=qdQG69H_2w?AX_RIwDxyi>;N*`ij3cgh4k|B{yP(cPlf7H^pdeW57xrgzGH`a@z$ z$JI`xUV0fn4}R<|Gg&Va?R-m9_V`cMmx(E-yi=y=kBYT?fu>}rQTh|2Ot)L)`r3{u ztHiuIu8pVbPl+iVTT8V5w3yPdf6dbIKZo$NAKxK~?9K+Mc)}1lfZdDuEusVQ1g57U zwje%%c$&)niMSK~GZOEz5!qw~_gwfkD59T+XWfVc5r-j8Mhruohd64oY_AXEDtH{G zzk`^B*npUY=@*3uupxLmpF4Q~8-?gbyce+$`RRxcATB~&PUW9Mtb$)a{21|7#9tBL zLA_phC%YHXYVTTjKRgog5aNA^jfe?|Un251}B_gcj75Z^~^MQlb)Lb)z@ zH+BlKFXCCmV8lYiP{cnF$5Olp@o)5pk7FN9x9Z8|QP@o6*_7_A0FjT&IuQr3j}Uo( ztbWV#0~qgrN58FhyR#!GuTN1}3nK6L<#->Gg?KZf|C9l23V%O>7?0Q&<#G@QB9iQV-viG? zoQXIGF&i-+dA{AHz$LI7aSh@kOy}!=3CzdSP36iE`M9h^{-M?QwOjY5qZ15^SKGr`SZ>&M83YqBJPE!A%2GFKV>-M&pl_M z9saa47SsLkL?;1JZhr&VHSk=_|9V8e-Hk)c#QYtIIfxmE^HF{g;zGoS5sMKYNAw`d zah2myhVpzo$}#pixM#Q%fk0Zuod93~B99&EFKSbpF?PrL5J@ECx z_dCA6`F?jC{rwx|{ii4l|CWjU2v0)%6)_+2cf^f|{~-Pc(JxA2rxE$~dUZEh?@q)X zn4XE)J8A%1f!G&uBjR3^!@sZb*{&7#1ydAMO zVlTvzQJ0PM3e)-aITn$R+f0b9p~iwl>5y(s=poimr!mu>g`87gys1haWAI-hPWTG_hoWB7=g&A$0B}$`h0u; z0`|bojTxlGz zzWMQqAMXZYdNbM`j>yMD9M@2fk5eB+emv+iZCXhf^1S^Sh*x8J5#sfT8xcn$9zYz2 zcn)z2V!r?!9}w?GOhwE>%tu^}xCHS%#77aoL##mT+8v(_K)e<4HN;rNcM+E&)+4@x z_$lHM#BUM*M*InJP!AlR5${7(r*~)b5idhri`W(K)Zark0SEzumzDHr`izt@mHNOfaRe4kJzsl zB3_UEaw#I;{;LoJW=zA6jmY)Hw`+c!@9n)5r_SE66X9-?=3JUwGn-StZ91hfbMQa)zSWTb{4_P`n*6YKFq@ zM&#!^Cn7%{ED~`5dkS$T^6O~&+lc&p*MJz0>5YgvSg!983*o;h|24+r0r(W+Lx@)f zGWG~!5MnvvNJKs#C&fh~%JHf|d;C0Bg~*SO-2C{s4Y2~{_;u6=A`W0Ji0@$h&LZ;l zex71yD@?;rZG=spR?-D=D9ZIf+=G7f6;{{~io+@1iFg3{PtpIQXn#EX4dQ)>ch4Bk zrX#i@CL*?Dx(iW>9>5kLc183c_K8;5a>SuihO;LTt>a%%v|P>+(Zkt#OurlPCB#V7 zdjoL};$B4Syg3Ku`S!>ozi#7^j}MQ0e0b#J!y~_L<8i-er#t&i#91YM@lz$eqh^&1 z6%ogKigOV8dS8Ud*T+i46OlNcQodG1IllZnz{j_D)Nu9%rYB+fS`c~t3y6IA_;D@` z^XL0h5ti$UevCbdazhaLesd?qIf$!$rWe3`{*O_trgE~M1K1w80^_ouVk6>O_*=v( z#9t9#!Ti+zjBQ8kj`$X0U&MD2LlIji4`&l8&OzKr$K_qIwh z_%-}7;wbd*B<1nNO4f|&{SjLbMkzwScJLcgaX@_I3d^Jki75+Xk?Wg-^MoK=!T(M@qN#Rn;tia3Bhidcen z<^2`DAqDf}(Kf_)u^rSSwoV?*8WH(*lsq4VvL?6;%g6U)|0#pnFYuEy2eZG#bcN|b zjIBYtT@jx_?1i`y@hZeu5wAsj8}U{|zF+eFaTkr_u9?$H?!@#u+&5wl>cyzGzF{{PHBjq*o)+J6Z?3d{DUmF$GS!8pt1P*^Q|0(rhX zKO^$x`4f>Zk2Y(t_xQrEKlu5I$IE8P<5J)(g&jaSzCHdZ;sB-(U~Isw0nCmVhVhl- zFo5-ehoHPQ-)rDmQ?2EY+uttCcO<62h4phcVk?$=I^qpzZ#LpE#3YIth1$9vy;fr!Z`khn22_51F;`?=dX+9=F4X-r##LNX8|b3 z`@^@-EJUmQewfb3(>fpU`v<Jk$hYUO5c#-& zhqxR0pAq*W--fs!?m7t99PwL3?(e*o?YE*G ztG|5z{{{6UQSKb3^ZBF6MC9wEn*1iB@Aksi2hYEQ z>Hna8p6AyY`w-RpaUF-qx9iUkZ@~P%M&$dASdSPNYq_oM?9}se^xpRmrhdr%gdg|#esu)LfuYFrcKQCp_m}b1&UA`# zhf5-ZL5&7ZpyNLX{VK1U}UH+fw!R!>({}YiPPyeB4_0PB#=i~bo=8wp)D|#S? zWB%6ueG|-&)BJq*369hJx_;M8>o}paJCUDozjb`Fj^}cD??u1vMSiNcf742mVArh9 z^W$EM>HNHAJ!e=C^XCm8(DW}w9Khsps^d7r&trVM;?F5~Kl%N`Z1n$klutzb8}Uix z`TF7Og&!X>Fx@tU-}hrbLgeFe4MpE^$?=X0o_`@fAN4LhpYh`WKhMeI_;412a(sP+ zBl7F0*@(rkQ+NPNMtmIYaRfD zhWWmLScCWq;`_WGhSK=M&$b=zaQYof$6**#My}aKDR5z|KIyVSv-}?MKotCteCu{$@uQ7u)MG2_ZwHh zy#E6cdH=2Z_FIHaaop}5C8Ph8&bFpEQ$7G+AL7S(%RI{c)@1jH`I>AxMSh$;5oxj% zxPf9%j8hIg5OE3O^=R) I)bM!XI2Ma0pwrO1^Rbvd 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 z%0D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 diff --git a/dep/FakeItEasy.1.17.0/lib/win8/FakeItEasy.dll b/dep/FakeItEasy.1.17.0/lib/win8/FakeItEasy.dll deleted file mode 100644 index 9048fb8f34921dc401d0d50a9e550fe9ecc162e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474624 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�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%0DI$rcwx%Mu*|k&DK*$ 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 I)bM!XI2Ma0pwrO1^Rbvd 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 z%0D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 diff --git a/dep/FakeItEasy.1.17.0/lib/win8/FakeItEasy.xml b/dep/FakeItEasy.1.17.0/lib/win8/FakeItEasy.xml deleted file mode 100644 index 08bb6bd111d..00000000000 --- a/dep/FakeItEasy.1.17.0/lib/win8/FakeItEasy.xml +++ /dev/null @@ -1,3490 +0,0 @@ - - - - FakeItEasy - - - -

- Provides methods for generating fake objects. - - - - - Creates a fake object of the type T. - - The type of fake object to create. - A fake object. - - - - Creates a fake object of the type T. - - The type of fake object to create. - A lambda where options for the built fake object can be specified. - A fake object. - - - - Creates a collection of fakes of the specified type. - - The type of fakes to create. - The number of fakes in the collection. - A collection of fake objects of the specified type. - - - - Gets a dummy object of the specified type. The value of a dummy object - should be irrelevant. Dummy objects should not be configured. - - The type of dummy to return. - A dummy object of the specified type. - Dummies of the specified type can not be created. - - - - Gets a value indicating whether the two objects are equal. - - The first object to compare. - The second object to compare. - True if the two objects are equal. - - - - Gets a value indicating whether the two objects are the same reference. - - The object A. - The object B. - True if the objects are the same reference. - - - - Configures a call to a faked object. - - An expression where the configured member is called. - A configuration object. - - - - Gets a configuration object allowing for further configuration of - any call to the specified faked object. - - - The fake to configure. - - - A configuration object. - - - - - Configures a call to a faked object. - - The type of member on the faked object to configure. - An expression where the configured member is called. - A configuration object. - - - - Provides an API entry point for constraining arguments of fake object calls. - - The type of argument to validate. - - - - Gets an argument constraint object that will be used to constrain a method call argument. - - - - - Gets a constraint that considers any value of an argument as valid. - - This is a shortcut for the "Ignored"-property. - - - - Gets a constraint that considers any value of an argument as valid. - - - - - Provides configuration for any (not a specific) call on a faked object. - - - - - Gets a configuration object allowing for further configuration of - any call to the specified faked object. - - The faked object to configure. - A configuration object. - - - - Gets a value indicating whether the two objects are equal. - - The first object to compare. - The second object to compare. - True if the two objects are equal. - - - - Gets a value indicating whether the two objects are the same reference. - - The object A. - The object B. - True if the objects are the same reference. - - - - A collection of method arguments. - - - - - The arguments this collection contains. - - - - - Initializes a new instance of the class. - - The arguments. - The argument names. - - - - Initializes a new instance of the class. - - The arguments. - The method. - - - - Returns an enumerator that iterates through the collection or arguments. - - - A that can be used to iterate through the collection. - - - - - Gets the argument at the specified index. - - The type of the argument to get. - The index of the argument. - The argument at the specified index. - - - - Gets the argument with the specified name. - - The type of the argument to get. - The name of the argument. - The argument with the specified name. - - - - Gets an empty ArgumentList. - - - - - Gets the number of arguments in the list. - - - - - Gets the names of the arguments in the list. - - - - - Gets the argument at the specified index. - - The index of the argument to get. - The argument at the specified index. - - - - Provides validation extensions for . - - - - - Constrains an argument so that it must be null (Nothing in VB). - - The type of the argument. - The constraint manager to match the constraint. - A dummy argument value. - - - - Constrains the string argument to contain the specified text. - - The constraint manager to match the constraint. - The string the argument string should contain. - A dummy argument value. - - - - Constrains the sequence so that it must contain the specified value. - - The constraint manager to match the constraint. - The value the collection should contain. - The type of sequence. - A dummy argument value. - - - - Constrains the string so that it must start with the specified value. - - The constraint manager to match the constraint. - The value the string should start with. - A dummy argument value. - - - - Constrains the string so that it must end with the specified value. - - The constraint manager to match the constraint. - The value the string should end with. - A dummy argument value. - - - - Constrains the string so that it must be null or empty. - - The constraint manager to match the constraint. - A dummy argument value. - - - - Constrains argument value so that it must be greater than the specified value. - - The constraint manager to match the constraint. - The value the string should start with. - The type of argument to constrain. - A dummy argument value. - - - - The tested argument collection should contain the same elements as the - as the specified collection. - - The constraint manager to match the constraint. - The sequence to test against. - The type of argument to constrain. - A dummy argument value. - - - - Tests that the IEnumerable contains no items. - - The type of argument. - The constraint manager to match the constraint. - A dummy argument value. - - - - Tests that the passed in argument is equal to the specified value. - - The type of the argument. - The constraint manager to match the constraint. - The value to compare to. - A dummy argument value. - - - - Tests that the passed in argument is the same instance (reference) as the specified value. - - The type of the argument. - The constraint manager to match the constraint. - The reference to compare to. - A dummy argument value. - - - - Constrains the argument to be of the specified type. - - The type of argument in the method signature. - The constraint manager. - The type to constrain the argument with. - A dummy value. - - - - Constrains the argument with a predicate. - - - The constraint manager. - - - The predicate that should constrain the argument. - - - A human readable description of the constraint. - - - The type of argument in the method signature. - - - A dummy argument value. - - - - - Constrains the argument with a predicate. - - - The constraint manager. - - - The predicate that should constrain the argument. - - - A human readable description of the constraint format string. - - - Arguments for the format string. - - - The type of argument in the method signature. - - - A dummy argument value. - - - - - Constrains the argument with a predicate. - - - The constraint manager. - - - The predicate that should constrain the argument. - - - The type of argument in the method signature. - - - A dummy argument value. - - - - - Constrains the argument to be not null (Nothing in VB) and to match - the specified predicate. - - The type of the argument to constrain. - The constraint manager. - The predicate that constrains non null values. - An action that writes a description of the constraint - to the output. - A dummy argument value. - - - - Provides a Where extension method matching calls to fake objects. - - - - - Applies a predicate to constrain which calls will be considered for interception. - - The return type of the where method. - The configuration object to extend. - A predicate for a fake object call. - The configuration object. - - - - Provides a WithAnyArguments extension methods matching calls to fake objects. - - - - - Specifies that a call to the configured call should be applied no matter what arguments - are used in the call to the faked object. - - The type of the interface. - The configuration. - A configuration object. - - - - Provides extension methods for writing object calls to output devices. - - - - - Writes the calls in the collection to the specified output writer. - - The type of the calls. - The calls to write. - The writer to write the calls to. - - - - Writes all calls in the collection to the console. - - The type of the calls. - The calls to write. - - - - Provides string formatting for arguments of type T when written in call lists. - - The type of the arguments which will be formatted by this instance. - - - - Provides string formatting for arguments when written in - call lists. - - - - - Gets a string representing the specified argument value. - - The argument value to get as a string. - A string representation of the value. - - - - Gets the type of arguments this formatter works on. - - - - - Gets the priority of the formatter, when two formatters are - registered for the same type the one with the highest - priority is used. - - - - - Gets a string representing the specified argument value. - - The argument value to get as a string. - A string representation of the value. - - - - Gets a string representing the specified argument value. - - The argument value to get as a string. - A string representation of the value. - - - - Gets the type of arguments this formatter works on. - - - - - Gets the priority of the formatter, when two formatters are - registered for the same type the one with the highest - priority is used. - - - - - Provides extension methods for the common uses. - - - - - Replaces the format item in a specified System.String with the text equivalent - of the value of a corresponding System.Object instance in a specified array using - invariant culture as . - - A composite format string. - An array containing zero or more objects to format. - The formatted string. - - - - Gets an enumerable of tuples where the first value of each tuple is a value - from the first collection and the second value of each tuple is the value at the same position - from the second collection. - - The type of values in the first collection. - The type of values in the second collection. - The first of the collections to combine. - The second of the collections to combine. - An enumerable of tuples. - - - - Joins the collection to a string. - - The type of items in the collection. - The items to join. - A function that converts from an item to a string value. - Separator to insert between each item. - A string representation of the collection. - - - - Gets a dictionary containing the first element from the sequence that has a key specified by the key selector. - - The type of items in the sequence. - The type of the key. - The sequence. - The key selector. - A dictionary. - - - - Provides a Matching extension method for fake objects calls. - - - - - Filters to contain only the calls that matches the call specification. - - The type of fake the call is made on. - The calls to filter. - The call to match on. - A collection of the calls that matches the call specification. - - - - Provides the base for rules that can be built using the FakeConfiguration. - - - - - Represents a call rule that has a description of the calls the - rule is applicable to. - - - - - Allows for intercepting call to a fake object and - act upon them. - - - - - Gets whether this interceptor is applicable to the specified - call, if true is returned the Apply-method of the interceptor will - be called. - - The call to check for applicability. - True if the interceptor is applicable. - - - - Applies an action to the call, might set a return value or throw - an exception. - - The call to apply the interceptor to. - - - - Gets the number of times this call rule is valid, if it's set - to null its infinitely valid. - - - - - Writes a description of calls the rule is applicable to. - - The writer. - - - - Gets if this rule is applicable to the specified call. - - The call to validate. - True if the rule applies to the call. - - - - Writes a description of calls the rule is applicable to. - - The writer to write the description to. - - - - Gets or sets an action that is called by the Apply method to apply this - rule to a fake object call. - - - - - Gets a collection of actions that should be invoked when the configured - call is made. - - - - - Gets or sets values to apply to output and reference variables. - - - - - Gets or sets a value indicating whether the base method of the fake object call should be - called when the fake object call is made. - - - - - Gets or sets the number of times the configured rule should be used. - - - - - Gets a description of calls the rule is applicable to. - - - - - - Configuration for any call to a faked object. - - - - - Provides a way to configure predicates for when a call should be applied. - - The type of fake object that is going to be configured.. - - - - Applies a predicate to constrain which calls will be considered for interception. - - A predicate for a fake object call. - An action that writes a description of the predicate - to the output. - The configuration object. - - - - Provides configuration methods for methods that does not have a return value and - allows the use to specify validations for arguments. - - - - - Provides configuration methods for methods that does not have a return value. - - - - - Configuration that lets the developer specify that an exception should be - thrown by a fake object call. - - - - - Hides standard Object members to make fluent interfaces - easier to read. Found in the source of Autofac: - Based on blog post here: - - - - - - Hides the ToString-method. - - A string representation of the implementing object. - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Gets the type. - - The exact runtime type of the current instance. - - - - Throws the specified exception when the currently configured - call gets called. - - A function that creates the exception to throw. - Configuration object. - - - - Configuration for callbacks of fake object calls. - - The type of interface to return. - - - - Executes the specified action when a matching call is being made. - - The action to invoke. - A configuration object. - - - - Configuration that lets you specify that a fake object call should call it's base method. - - - - - When the configured method or methods are called the call - will be delegated to the base method of the faked method. - - A configuration object. - The fake object is of an abstract type or an interface - and no base method exists. - - - - Lets the developer configure output values of out and ref parameters. - - - - - Specifies output values for out and ref parameters. Specify the values in the order - the ref and out parameters has in the configured call, any non out and ref parameters are ignored. - - The values. - A configuration object. - - - - Allows the developer to assert on a call that's configured. - - - - - Asserts that the configured call has happened the number of times - constrained by the repeatConstraint parameter. - - A constraint for how many times the call - must have happened. - The call has not been called a number of times - that passes the repeat constraint. - - - - Configures the specified call to do nothing when called. - - A configuration object. - - - - Provides configurations to validate arguments of a fake object call. - - The type of interface to return. - - - - Configures the call to be accepted when the specified predicate returns true. - - The argument predicate. - A configuration object. - - - - Matches calls that has the return type specified in the generic type parameter. - - The return type of the members to configure. - A configuration object. - - - - Manages registration of a set of components in a DictionaryContainer. - - - - - Registers the components of this module. - - The container to register components in. - - - - A factory that creates instances of the RecordingCallRuleType. - - - - - Creates the specified fake object. - - The type of the fake. - The fake object the rule belongs to. - The rule that's being recorded. - A RecordingCallRule instance. - - - - A factory responsible for creating start configuration for fake objects. - - - - - Creates a start configuration for the specified fake object that fakes the - specified type. - - The type of the fake object. - The fake object to configure. - A configuration object. - - - - An exception that can be thrown when something goes wrong with the configuration - of a fake object. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Handles the configuration of fake object given an expression specifying - a call on a faked object. - - - - - Lets you set up expectations and configure repeat for the configured call. - - - - - Provides configuration for method calls that has a return value. - - - - - Specifies the number of times for the configured event. - - The number of times to repeat. - - - - A combination of the IAfterCallSpecifiedConfiguration and IOutAndRefParametersConfiguration - interfaces. - - - - - Aggregate of IReturnValueArgumentValidationConfiguration<T> and IWhereConfiguration<IAnyCallConfigurationWithReturnTypeSpecified<T>>. - - The type of fake object that is configured. - - - - Configures a call that returns a value and allows the use to - specify validations for arguments. - - The type of the member. - - - - Configures a call that returns a value. - - The type of the member. - - - - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. - - A function that produces the return value. - A configuration object. - - - - Configurations for when a configured call is recorded. - - - - - Provides configuration from VisualBasic. - - - - - Provides methods for configuring a fake object. - - The type of fake object. - - - - Configures the behavior of the fake object when a call that matches the specified - call happens. - - The type of the return value of the member. - An expression that specifies the calls to configure. - A configuration object. - - - - Configures the behavior of the fake object when a call that matches the specified - call happens. - - An expression that specifies the calls to configure. - A configuration object. - - - - Configures the behavior of the fake object when a call is made to any method on the - object. - - A configuration object. - - - - A call rule that has been recorded. - - - - - A call rule that "sits and waits" for the next call, when - that call occurs the recorded rule is added for that call. - - The type of the fake. - - - - Provides access to a set of calls and a call matcher for these calls. - - - - - Provides access to a call matcher. - - - - - Gets a call predicate that can be used to check if a fake object call matches - the specified constraint. - - - - - Gets the set of calls. - - - - - Represents a delegate that creates a configuration object from - a fake object and the rule to build. - - The rule that's being built. - The fake object the rule is for. - A configuration object. - - - - Represents a predicate that matches a fake object call. - - - - - Gets a value indicating whether the call matches the predicate. - - The call to match. - True if the call matches the predicate. - - - - Provides configuration of faked objects. - - - - - Gets a configuration for the specified faked object. - - The type of the fake. - The faked object to configure. - A configuration object. - The specified object is not a faked object. - The fakedObject parameter was null. - - - - Represents an argument and a dummy value to use for that argument. - - - - - Initializes a new instance of the class. - - A value indicating if the dummy value was successfully resolved. - The type of argument. - The resolved value. - - - - Gets a value indicating whether a dummy argument value was successfully - resolved. - - - - - Gets the type of the argument. - - - - - Gets the resolved value. - - - - - Holds a formatter as well as the distance between a type to be formatted - and the type for which the formatted is registered. - - - - - Represents an event that happens when a call has been intercepted by a proxy. - - - - - Initializes a new instance of the class. - - The call. - - - - Gets the call that was intercepted. - - The call. - - - - Keeps track of metadata for interceptions. - - - - - Gets whether the rule has been called the number of times specified or not. - - True if the rule has not been called the number of times specified. - - - - Gets or sets the number of times the rule has been used. - - - - - Gets or sets the rule this metadata object is tracking. - - - - - Manages attaching of argument constraints. - - The type of argument to constrain. - - - - Constrains the argument with a predicate. - - The predicate that should constrain the argument. - An action that will be write a description of the constraint. - A dummy argument value. - - - - Inverts the logic of the matches method. - - - - - Validates an argument, checks that it's valid in a specific fake call. - - - - - Writes a description of the argument constraint to the specified writer. - - - The writer. - - - - - Gets whether the argument is valid. - - The argument to validate. - True if the argument is valid. - - - - Default implementation of . - - - - - Attaches a fake manager to the proxy so that intercepted - calls can be configured. - - - - - Attaches a to the specified proxy, listening to - the event raiser. - - The type of the fake object proxy. - The proxy to attach to. - The event raiser to listen to. - - - - Gets the fake manager associated with the proxy. - - The proxy to get the manager from. - A fake manager. - - - - Attaches a to the specified proxy, listening to - the event raiser. - - The type of the fake object proxy. - The proxy to attach to. - The event raiser to listen to. - - - - Gets the fake manager associated with the proxy. - - The proxy to get the manager from. - A fake manager. - - - - Represents an object that can be tagged with another object. When implemented - by a proxy returned from an FakeItEasy uses the tag - to store a reference to the that handles that proxy. - - - - - Gets or sets the tag. - - - - - The default implementation of the IFakeObjectCallFormatter interface. - - - - - Provides string formatting for fake object calls. - - - - - Gets a human readable description of the specified - fake object call. - - The call to get a description for. - A description of the call. - - - - Gets a human readable description of the specified - fake object call. - - The call to get a description for. - A description of the call. - - - - Handles configuring of fake objects to delegate all their calls to a wrapped instance. - - - - - Manages configuration of fake objects to wrap instances. - - - - - Configures the specified faked object to wrap the specified instance. - - The faked object to configure. - The instance to wrap. - The recorder to use, null if no recording should be made. - - - - Configures the specified faked object to wrap the specified instance. - - The faked object to configure. - The instance to wrap. - The recorder to use, null if no recording should be made. - - - - A fake object container where delegates can be registered that are used to - resolve fake objects. - - - - - A container that can create fake objects. - - - - - Handles global configuration of fake object. - - - - - Applies base configuration to a fake object. - - The type the fake object represents. - The fake object to configure. - - - - Creates a dummy object of the specified type using the specified arguments if it's - supported by the container, returns a value indicating if it's supported or not. - - The type of dummy object to create. - The dummy object that was created if the method returns true. - True if a dummy object can be created. - - - - Initializes a new instance of the class. - Creates a new instance of the DelegateFakeObjectContainer. - - - - - Creates a fake object of the specified type using the specified arguments if it's - supported by the container, returns a value indicating if it's supported or not. - - The type of dummy object to create. - The fake object that was created if the method returns true. - True if a fake object can be created. - - - - Configures the fake. - - The type of fake. - The fake object. - - - - Registers the specified fake delegate. - - The type of the return value of the method that encapsulates. - The fake delegate. - - - - A IFakeObjectContainer implementation that uses MEF to load IFakeDefinitions and - IFakeConfigurations. - - - - - Initializes a new instance of the class. - - The dummy definitions. - The fake configurators. - - - - Creates a fake object of the specified type using the specified arguments if it's - supported by the container, returns a value indicating if it's supported or not. - - The type of fake object to create. - The fake object that was created if the method returns true. - True if a fake object can be created. - - - - Applies base configuration to a fake object. - - The type the fake object represents. - The fake object to configure. - - - - An exception that is thrown when there was an error creating a fake object. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - Auto fake property rule. - - The central point in the API for proxied fake objects handles interception - of fake object calls by using a set of rules. User defined rules can be inserted - by using the AddRule-method. - - Event rule. - Object member rule. - Property behavior rule. - Property setter rule. - - - - Initializes a new instance of the class. - - - - - Adds a call rule to the fake object. - - The rule to add. - - - - Adds a call rule last in the list of user rules, meaning it has the lowest priority possible. - - The rule to add. - - - - Removes the specified rule for the fake object. - - The rule to remove. - - - - Adds an interception listener to the manager. - - The listener to add. - - - - Removes any specified user rules. - - - - - Gets the faked object. - - - - - Gets the faked type. - - - - - Gets the interceptions that are currently registered with the fake object. - - - - - Gets a collection of all the calls made to the fake object within the current scope. - - - - - A delegate responsible for creating FakeObject instances. - - An instance of . - - - - Represents a call to a fake object at interception time. - - - - - Represents a fake object call that can be edited. - - - - - Represents a call to a fake object. - - - - - Gets the method that's called. - - - - - Gets the arguments used in the call. - - - - - Gets the faked object the call is performed on. - - - - - Sets the return value of the call. - - The return value to set. - - - - Calls the base method of the faked type. - - - - - Sets the value of the argument at the specified index in the parameters list. - - The index of the argument to set the value of. - The value to set to the argument. - - - - Freezes the call so that it can no longer be modified. - - A completed fake object call. - - - - Sets that the call should not be recorded by the fake manager. - - - - - Represents a scope for fake objects, calls configured within a scope - are only valid within that scope. Only calls made within a scope - are accessible from within a scope so for example asserts will only - assert on those calls done within the scope. - - - - - Provides access to all calls made to fake objects within a scope. - Scopes calls so that only calls made within the scope are visible. - - - - - Creates a new scope and sets it as the current scope. - - The created scope. - - - - Creates a new scope and sets it as the current scope, using the specified - container as the container for the new scope. - - The container to use for the new scope. - The created scope. - - - - Closes the scope. - - - - - Adds an intercepted call to the current scope. - - The fake object. - The call that is intercepted. - - - - Adds a fake object call to the current scope. - - The fake object. - The rule to add. - - - - Represents a completed call to a fake object. - - - - - Gets the value set to be returned from the call. - - - - - Used by the event raising rule of fake objects to get the event arguments used in - a call to Raise.With. - - - - - Gets the sender of the event. - - - - - Gets the event arguments of the event. - - - - - Represents a listener for fake object calls, can be plugged into a - FakeManager instance to listen to all intercepted calls. - - The OnBeforeCallIntercepted method will be invoked before the OnBeforeCallIntercepted method of any - previously added listener. The OnAfterCallIntercepted method will be invoked after the OnAfterCallIntercepted - method of any previously added listener. - - - - Called when the interception begins but before any call rules - has been applied. - - The intercepted call. - - - - Called when the interception has been completed and rules has been - applied. - - The intercepted call. - The rule that was applied to the call. - - - - Handles comparisons of instances of . - - - - - Gets a value indicating whether the two instances of would invoke the same method - if invoked on an instance of the target type. - - The type of target for invocation. - The first . - The second . - True if the same method would be invoked. - - - - A null implementation for the IFakeObjectContainer interface. - - - - - Always returns false and sets the fakeObject to null. - - The type of dummy object to create. - Output variable for the fake object that will always be set to null. - Always return false. - - - - Applies base configuration to a fake object. - - The type the fake object represents. - The fake object to configure. - - - - A call rule that applies to any call and just delegates the - call to the wrapped object. - - - - - Initializes a new instance of the class. - Creates a new instance. - - - The object to wrap. - - - - - Gets whether this interceptor is applicable to the specified - call, if true is returned the Apply-method of the interceptor will - be called. - - The call to check for applicability. - True if the interceptor is applicable. - - - - Applies an action to the call, might set a return value or throw - an exception. - - The call to apply the interceptor to. - - - - Gets the number of times this call rule is valid, if it's set - to null its infinitely valid. - - - - - - An interface to be implemented by classes that can generate proxies for FakeItEasy. - - - - - Generates a proxy of the specified type and returns a result object containing information - about the success of the generation and the proxy if it was generated. - - The type of proxy to generate. - Interfaces to be implemented by the proxy. - Arguments to pass to the constructor of the type in . - The custom attribute builders. - A result containing the generated proxy. - - - - Generates a proxy of the specified type and returns a result object containing information - about the success of the generation and the proxy if it was generated. - - The type of proxy to generate. - Interfaces to be implemented by the proxy. - Arguments to pass to the constructor of the type in . - A result containing the generated proxy. - - - - Gets a value indicating whether the specified member can be intercepted by the proxy generator. - - The member to test. - The instance the method will be called on. - The reason the method can not be intercepted. - True if the member can be intercepted. - - - - An object that raises an event every time a call to a proxy has been intercepted. - - - - - Raised when a call is intercepted. - - - - - An adapter that adapts an to a . - - - - - Initializes a new instance of the class. - - The invocation. - - - - Freezes the call so that it can no longer be modified. - - A completed fake object call. - - - - Calls the base method, should not be used with interface types. - - - - - Sets the specified value to the argument at the specified index. - - The index of the argument to set the value to. - The value to set to the argument. - - - - Sets the return value of the call. - - The return value. - - - - Returns a description of the call. - - - A that represents this instance. - - - - - Gets a human readable description of the call. - - - - - - Gets the value set to be returned from the call. - - - - - Gets the method that's called. - - - - - Gets the arguments used in the call. - - - - - Gets the faked object the call is performed on. - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to No constructor matches the passed arguments for constructor.. - - - - - Looks up a localized string similar to Arguments for constructor specified for interface type.. - - - - - Looks up a localized string similar to The type of proxy "{0}" is sealed.. - - - - - Looks up a localized string similar to The type of proxy must be an interface or a class but it was {0}.. - - - - - Looks up a localized string similar to No usable default constructor was found on the type {0}.. - - - - - The default implementation of the IFakeAndDummyManager interface. - - - - - Handles the creation of fake and dummy objects. - - - - - Creates a dummy of the specified type. - - The type of dummy to create. - The created dummy. - The current IProxyGenerator is not able to generate a fake of the specified type and - the current IFakeObjectContainer does not contain the specified type. - - - - Creates a fake object of the specified type. - - The type of fake object to generate. - Options for building the fake object. - A fake object. - The current IProxyGenerator is not able to generate a fake of the specified type. - - - - Tries to create a dummy of the specified type. - - The type of dummy to create. - Outputs the result dummy when creation is successful. - A value indicating whether the creation was successful. - - - - Tries to create a fake object of the specified type. - - The type of fake to create. - Options for the creation of the fake. - The created fake object when creation is successful. - A value indicating whether the creation was successful. - - - - Default implementation of the IFakeCreator-interface. - - - - - A facade used by the public API for testability. - - - - - Creates a fake object of the specified type. - - The type of fake to create. - Options for the created fake object. - The created fake object. - Was unable to generate the fake in the current configuration. - - - - Creates a dummy object, this can be a fake object or an object resolved - from the current IFakeObjectContainer. - - The type of dummy to create. - The created dummy. - Was unable to generate the fake in the current configuration and - no dummy was registered in the container for the specified type.. - - - - Creates a collection of fakes of the specified type. - - The type of fakes to create. - The number of fakes in the collection. - A collection of fake objects of the specified type. - - - - Initializes a new instance of the class. - - The fake and dummy manager. - - - - Creates a fake object of the specified type. - - The type of fake to create. - Options for the created fake object. - The created fake object. - Was unable to generate the fake in the current configuration. - - - - Creates a collection of fakes of the specified type. - - The type of fakes to create. - The number of fakes in the collection. - - A collection of fake objects of the specified type. - - - - - Creates a dummy object, this can be a fake object or an object resolved - from the current IFakeObjectContainer. - - The type of dummy to create. - The created dummy. - Was unable to generate the fake in the current configuration and - no dummy was registered in the container for the specified type.. - - - - Provides options for fake wrappers. - - The type of the fake object generated. - - - - Provides options for generating fake object. - - The type of fake object generated. - - - - Specifies arguments for the constructor of the faked class. - - The arguments to pass to the constructor of the faked class. - Options object. - - - - Specifies arguments for the constructor of the faked class by giving an expression with the call to - the desired constructor using the arguments to be passed to the constructor. - - The constructor call to use when creating a class proxy. - Options object. - - - - Specifies that the fake should delegate calls to the specified instance. - - The object to delegate calls to. - Options object. - - - - Specifies that the fake should be created with these additional attributes. - - The attributes to build into the proxy. - Options object. - - - - Sets up the fake to implement the specified interface in addition to the - originally faked class. - - The type of interface to implement. - Options object. - The specified type is not an interface. - The specified type is null. - - - - Specifies an action that should be run over the fake object - once it's created. - - An action to perform. - Options object. - - - - Specifies a fake recorder to use. - - The recorder to use. - Options object. - - - - Initializes a new instance of the class. - - The container. - The fake object creator. - - - - Contains the result of a call to TryCreateProxy of IProxyGenerator. - - - - - Initializes a new instance of the class. - Creates a new instance representing a failed proxy - generation attempt. - - - The reason the proxy generation failed. - - - - - Initializes a new instance of the class. - Creates a new instance representing a failed proxy - generation attempt due to an exception being caught. - - - The reason the proxy generation failed. - - - The exception thrown from the creation attempt. - - - - - Initializes a new instance of the class. - Creates a new instance representing a successful proxy - generation. - - - The proxy that was generated. - - - An event raiser that raises - events when calls are intercepted to the proxy. - - - - - Gets a value indicating whether the proxy was successfully created. - - - - - Gets the generated proxy when it was successfully created. - - - - - Gets the event raiser that raises events when calls to the proxy are - intercepted. - - - - - Gets the reason for failure when the generation was not successful. - - - - - Represents a text writer that writes to the output. - - - - - Writes the specified value to the output. - - The value to write. - The writer for method chaining. - - - - Formats the specified argument value as a string and writes - it to the output. - - The value to write. - The writer for method chaining. - - - - Indents the writer. - - A disposable that will unindent the writer when disposed. - - - - Represents a definition of how a fake object of the type T should - be created. - - The type of fake. - - - - Represents a definition of how dummies of the specified type should be created. - - - - - Creates the fake. - - The fake object. - - - - Gets the type of fake object the definition is for. - - - - - Creates the dummy. - - The dummy object. - - - - Creates the dummy. - - The dummy object. - - - - Gets the type the definition is for. - - For type. - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to The Apply method of the ExpressionInterceptor may no be called before the Applicator property has been set.. - - - - - Looks up a localized string similar to The specified argument name does not exist in the ArgumentList.. - - - - - Looks up a localized string similar to Arguments for constructor was specified when generating proxy of interface type.. - - - - - Looks up a localized string similar to An argument validation was not configured correctly.. - - - - - Looks up a localized string similar to The method '{0}' was called too few times, expected #{1} times but was called #{2} times.. - - - - - Looks up a localized string similar to The method '{0}' was called too many times, expected #{1} times but was called #{2} times.. - - - - - Looks up a localized string similar to Can not create fake of the type '{0}', it's not registered in the current container and the current IProxyGenerator can not generate the fake. - - The following constructors failed: - {1}. - - - - - Looks up a localized string similar to Error when accessing FakeObject, the specified argument is of the type '{0}' which is not faked.. - - - - - Looks up a localized string similar to An ExpressionCallMatcher can only be created for expressions that represents a method call or a property getter.. - - - - - Looks up a localized string similar to - - The current proxy generator failed to create a proxy with the specified arguments for the constructor: - - Reason for failure: - - {0} - - . - - - - - Looks up a localized string similar to FakeItEasy failed to create fake object of type "{0}". - - 1. The type is not registered in the current IFakeObjectContainer. - 2. The current IProxyGenerator failed to generate a proxy for the following reason: - - {1}. - - - - - Looks up a localized string similar to Unable to create fake object.. - - - - - Looks up a localized string similar to Only abstract classes can be faked using the A.Fake-method that takes an enumerable of objects as arguments for constructor, use the overload that takes an expression instead.. - - - - - Looks up a localized string similar to The member accessor expression must be a lambda expression with a MethodCallExpression or MemberAccessExpression as its body.. - - - - - Looks up a localized string similar to The specified method can not be configured since it can not be intercepted by the current IProxyGenerator.. - - - - - Looks up a localized string similar to The method of the call did not match the method of the recorded call, the recorded sequence is no longer valid.. - - - - - Looks up a localized string similar to No constructor matching the specified arguments was found on the type {0}.. - - - - - Looks up a localized string similar to Can not generate fake object for the class since no usable default constructor was found, specify a constructor call.. - - - - - Looks up a localized string similar to All the recorded calls has been applied, the recorded sequence is no longer valid.. - - - - - Looks up a localized string similar to Only expression of the type ExpressionType.New (constructor calls) are accepted.. - - - - - Looks up a localized string similar to The Now-method on the event raise is not meant to be called directly, only use it to register to an event on a fake object that you want to be raised.. - - - - - Looks up a localized string similar to The number of values for out and ref parameters specified does not match the number of out and ref parameters in the call.. - - - - - Looks up a localized string similar to A scope for ordered assertions is already opened, close that scope before opening another one.. - - - - - Looks up a localized string similar to The specified call is not made on a fake object.. - - - - - Looks up a localized string similar to The current fake proxy generator can not create proxies of the type {0}.. - - - - - Looks up a localized string similar to FakeItEasy was unable to create dummy of type "{0}", register it in the current IFakeObjectContainer to enable this.. - - - - - Looks up a localized string similar to Expected to find call {0} the number of times specified by the predicate '{1}' but found it {2} times among the calls:. - - - - - Looks up a localized string similar to The number of argument names does not match the number of arguments.. - - - - - An exception thrown when an expectation is not met (when asserting on fake object calls). - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Represents a class that can parse a lambda expression - that represents a method or property call. - - - - - Parses the specified expression. - - The expression to parse. - The parsed expression. - - - - Handles the matching of fake object calls to expressions. - - - - - Initializes a new instance of the class. - - The call specification. - The constraint factory. - The method info manager to use. - A parser to use to parse call expressions. - - - - Matches the specified call against the expression. - - The call to match. - True if the call is matched by the expression. - - - - Gets a description of the call. - - Description of the call. - - - - Gets a human readable description of calls that will be matched by this - matcher. - - - - - An implementation of the interface that uses - expressions for evaluating if the rule is applicable to a specific call. - - - - - Initializes a new instance of the class. - - The expression matcher to use. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Handles the instantiation of ExpressionCallRule instance. - - An expression specifying the call. - A rule instance. - - - - Manages breaking call specification expression into their various parts. - - - - - Manages breaking call specification expression into their various parts. - - - - - Gets the fake object an expression is called on. - - The call expression. - The FakeManager instance that manages the faked object the call is made on. - The fakeObjectCall is null. - The specified expression is not an expression where a call is made to a faked object. - - - - Gets the fake object an expression is called on. - - The call expression. - A FakeObject. - The fakeObjectCall is null. - The specified expression is not an expression where a call is made to a faked object. - - - - Provides extension methods for configuring and asserting on faked objects - without going through the static methods of the Fake-class. - - - - - Configures the behavior of the fake object when a call that matches the specified - call happens. - - The type of fake object to configure. - The type of the return value of the member. - The faked object to configure. - An expression that specifies the calls to configure. - A configuration object. - - - - Configures the behavior of the fake object when a call that matches the specified - call happens. - - The faked object to configure. - The type of fake object to configure. - An expression that specifies the calls to configure. - A configuration object. - - - - Configures the behavior of the fake object when a call is made to any method on the - object. - - The type of the fake. - The faked object. - A configuration object. - - - - Provides an extension method for configuring fake objects. - - - - - Gets an object that provides a fluent interface syntax for configuring - the fake object. - - The type of the fake object. - The fake object to configure. - A configuration object. - The fakedObject was null. - The object passed in is not a faked object. - - - - Provides static methods for accessing fake objects. - - - - - Gets the fake object that manages the faked object. - - The faked object to get the manager object for. - The fake object manager. - - - - Creates a new scope and sets it as the current scope. When inside a scope the - getting the calls made to a fake will return only the calls within that scope and when - asserting that calls were made, the calls must have been made within that scope. - - The created scope. - - - - Creates a new scope and sets it as the current scope. When inside a scope the - getting the calls made to a fake will return only the calls within that scope and when - asserting that calls were made, the calls must have been made within that scope. - - The container to use within the specified scope. - The created scope. - - - - Gets a value indicating whether the two objects are equal. - - The first object to compare. - The second object to compare. - True if the two objects are equal. - - - - Gets a value indicating whether the two objects are the same reference. - - The object A. - The object B. - True if the objects are the same reference. - - - - Gets all the calls made to the specified fake object. - - The faked object. - A collection containing the calls to the object. - The object passed in is not a faked object. - - - - Clears the configuration of the faked object. - - The faked object to clear the configuration of. - - - - Sets a new fake to each property or field that is tagged with the FakeAttribute in the specified - fixture. - - The object to initialize. - - - - Represents a fake object that provides an API for configuring a faked object, exposed by the - FakedObject-property. - - The type of the faked object. - - - - Initializes a new instance of the class. - Creates a new fake object. - - - - - Initializes a new instance of the class. - Creates a new fake object using the specified options. - - - Options used to create the fake object. - - - - - Configures calls to the specified member. - - An expression specifying the call to configure. - A configuration object. - - - - Configures calls to the specified member. - - The type of value the member returns. - An expression specifying the call to configure. - A configuration object. - - - - Configures any call to the fake object. - - A configuration object. - - - - Gets the faked object. - - - - - Gets all calls made to the faked object. - - - - - Used to tag fields and properties that will be initialized through the - Fake.Initialize-method. - - - - - Provides the base implementation for the IFakeConfigurator-interface. - - The type of fakes the configurator can configure. - - - - Provides configurations for fake objects of a specific type. - - - - - Applies the configuration for the specified fake object. - - The fake object to configure. - - - - Gets the type the instance provides configuration for. - - - - - Configures the fake. - - The fake object. - - - - Applies the configuration for the specified fake object. - - The fake object to configure. - - - - Asserts the type of the that fake is of correct. - - The fake object. - - - - Gets the type the instance provides configuration for. - - - - - - Provides the GetArgument extension methods for getting arguments from fake object calls. - - - - - Gets the argument at the specified index in the arguments collection - for the call. - - The type of the argument to get. - The call to get the argument from. - The index of the argument. - The value of the argument with the specified index. - - - - Gets the argument with the specified name in the arguments collection - for the call. - - The type of the argument to get. - The call to get the argument from. - The name of the argument. - The value of the argument with the specified name. - - - - Provides methods for guarding method arguments. - - - - - Throws an exception if the specified argument is null. - - The argument. - Name of the argument. - The specified argument was null. - - - - When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked. - - - - - Evaluates an expression by compiling it into a delegate and invoking the delegate. - - The expression to be evaluated. - The value returned from the delegate compiled from the expression. - - - - Provides access to the file system. - - - - - Opens the specified file in the specified mode. - - The full path and name of the file to open. - The mode to open the file in. - A stream for reading and writing the file. - - - - Gets a value indicating whether the specified file exists. - - The path and name of the file to check. - True if the file exists. - - - - Creates a file with the specified name. - - The name of the file to create. - - - - Provides the Invokes extension method for configuring calls to fake objects. - - - - - Executes the specified action when a matching call is being made. This overload can also be used to fake calls with arguments when they don't need to be accessed. - - The type of fake object. - The configuration that is extended. - The to invoke. - The fake object. - - - - Executes the specified action when a matching call is being made. - - The configuration that is extended. - The to invoke. - The type of fake object. - Type of the first argument of the faked method call. - The signatures of the faked method and the do not match. - The fake object. - - - - Executes the specified action when a matching call is being made. - - The configuration that is extended. - The to invoke. - The type of fake object. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - The signatures of the faked method and the do not match. - The fake object. - - - - Executes the specified action when a matching call is being made. - - The configuration that is extended. - The to invoke. - The type of fake object. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - The signatures of the faked method and the do not match. - The fake object. - - - - Executes the specified action when a matching call is being made. - - The configuration that is extended. - The to invoke. - The type of fake object. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Type of the fourth argument of the faked method call. - The signatures of the faked method and the do not match. - The fake object. - - - - A simple implementation of an IoC container. - - - - - The dictionary that stores the registered services. - - - - - Initializes a new instance of the class. - - - - - Resolves an instance of the specified component type. - - Type of the component. - An instance of the component type. - - - - Registers the specified resolver. - - The type of component to register. - The resolver. - - - - Registers the specified resolver as a singleton. - - The type of component to register. - The resolver. - - - - Provides properties and methods to specify repeat. - - - - - Specifies the number of times as repeat. - - The number of times expected. - A Repeated instance. - - - - Specifies once as the repeat. - - - - - Specifies twice as the repeat. - - - - - Provides the MustHaveHappened extension method for asserting calls to fake objects. - - - - - Asserts that the specified call must have happened once or more. - - The configuration to assert on. - - - - Provides the MustNotHaveHappened extension method for asserting calls to fake objects. - - - - - Asserts that the specified call has not happened. - - The configuration to assert on. - - - - Lets you specify options for the next call to a fake object. - - - - - Specifies options for the next call to the specified fake object. The next call will - be recorded as a call configuration. - - The type of the faked object. - The faked object to configure. - A call configuration object. - - - - Provides the Once extension methods for configuring repeats on fake object call behavior. - - - - - Specifies NumberOfTimes(1) to the IRepeatConfiguration{TFake}. - - The configuration to set repeat 1 to. - - - - Provides functionality for making ordered assertions on fakes. - - - - - Creates a scope that changes the behavior on asserts so that all asserts within - the scope must be to calls in the specified collection of calls. Calls must have happened - in the order that the asserts are specified or the asserts will fail. - - The calls to assert among. - A disposable used to close the scope. - - - - Provides static methods for the IOutputWriter-interface. - - - - - Writes a new line to the writer. - - The writer to write to. - The writer. - - - - Writes the format string to the writer. - - The writer to write to. - The format string to write. - Replacements for the format string. - The writer. - - - - Writes the specified object to the writer (using the ToString-method of the object). - - The writer to write to. - The value to write to the writer. - The writer. - - - - Allows the developer to raise an event on a faked object. - - - - - Raises an event on a faked object by attaching the event handler produced by the method - to the event that is to be raised. - - The type of the event args. - The sender of the event. - The instance containing the event data. - A Raise(TEventArgs)-object that exposes the event handler to attach. - - - - Raises an event on a faked object by attaching the event handler produced by the method - to the event that is to be raised. - - The type of the event arguments. - The instance containing the event data. - - A Raise(TEventArgs)-object that exposes the event handler to attach. - - - - - Raises an event with empty event arguments on a faked object by attaching the event handler produced by the method - to the event that is to be raised. - - - A Raise(TEventArgs)-object that exposes the event handler to attach. - - - - - A class exposing an event handler to attach to an event of a faked object - in order to raise that event. - - The type of the event args. - - - - Register this event handler to an event on a faked object in order to raise that event. - - The sender of the event. - Event args for the event. - - - - Gets a generic event handler to attach to the event to raise. - - - - - Provides methods for creating recorders for self initializing fakes. - - - - - Provides syntax for specifying the number of times a call must have been repeated when asserting on - fake object calls. - - A.CallTo(() => foo.Bar()).Assert(Happened.Once.Exactly); - - - - Specifies that a call must have been repeated a number of times - that is validated by the specified repeatValidation argument. - - A predicate that specifies the number of times - a call must have been made. - A Repeated-instance. - - - - When implemented gets a value indicating if the repeat is matched - by the Happened-instance. - - The repeat of a call. - True if the repeat is a match. - - - - Asserts that a call has not happened at all. - - - - - The call must have happened exactly the number of times that is specified in the next step. - - - - - The call must have happened any number of times greater than or equal to the number of times that is specified - in the next step. - - - - - The call must have happened any number of times less than or equal to the number of times that is specified - in the next step. - - - - - Provides the Returns extension method for specifying return values of fake object calls. - - - - - Specifies the value to return when the configured call is made. - - The type of the return value. - The configuration to extend. - The value to return. - A configuration object. - - - - Provides the ReturnsLazily extension methods for specifying return values of fake object calls. - - - - - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. - - The type of the return value. - The configuration to extend. - A function that produces the return value. - A configuration object. - - - - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. - - The type of the return value. - Type of the first argument of the faked method call. - The configuration to extend. - A function that produces the return value. - A configuration object. - The signatures of the faked method and the do not match. - - - - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. - - The configuration to extend. - A function that produces the return value. - The type of the return value. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - A configuration object. - The signatures of the faked method and the do not match. - - - - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. - - The configuration to extend. - A function that produces the return value. - The type of the return value. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - A configuration object. - The signatures of the faked method and the do not match. - - - - Specifies a function used to produce a return value when the configured call is made. - The function will be called each time this call is made and can return different values - each time. - - The configuration to extend. - A function that produces the return value. - The type of the return value. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Type of the fourth argument of the faked method call. - A configuration object. - The signatures of the faked method and the do not match. - - - - Provides the ReturnsNextFromSequence extension method for specifying return values of fake object calls. - - - - - Configures the call to return the next value from the specified sequence each time it's called. Null will - be returned when all the values in the sequence has been returned. - - - The type of return value. - - - The call configuration to extend. - - - The values to return in sequence. - - - - - Handles the registration of root dependencies in an IoC-container. - - - - - Registers the dependencies. - - The container to register the dependencies in. - - - - DTO for recorded calls. - - - - - Initializes a new instance of the class. - - The method. - The output arguments. - The return value. - - - - Gets the method that was called. - - The method. - - - - Gets the output arguments of the call. - - The output arguments. - - - - Gets the return value of the call. - - The return value. - - - - Represents storage for recorded calls for self initializing - fakes. - - - - - Loads the recorded calls for the specified recording. - - The recorded calls for the recording with the specified id. - - - - Saves the specified calls as the recording with the specified id, - overwriting any previous recording. - - The calls to save. - - - - An interface for recorders that provides stored responses for self initializing fakes. - - - - - Applies the call if the call has been recorded. - - The call to apply to from recording. - - - - Records the specified call. - - The call to record. - - - - Gets a value indicating whether the recorder is currently recording. - - - - - An exception that can be thrown when recording for self initialized - fakes fails or when playback fails. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner exception. - - - - Manages the applying of recorded calls and recording of new calls when - using self initialized fakes. - - - - - Initializes a new instance of the class. - - The storage. - - - - Applies the call if the call has been recorded. - - The call to apply to from recording. - - - - Records the specified call. - - The call to record. - - - - Saves all recorded calls to the storage. - - - - - Gets a value indicating whether the recorder is currently recording. - - - - - - Represents a factory responsible for creating recording manager - instances. - - The storage the manager should use. - A RecordingManager instance. - - - - A call rule use for self initializing fakes, delegates call to - be applied by the recorder. - - - - - Initializes a new instance of the class. - - The wrapped rule. - The recorder. - - - - Gets whether this interceptor is applicable to the specified - call, if true is returned the Apply-method of the interceptor will - be called. - - The call to check for applicability. - True if the interceptor is applicable. - - - - Applies an action to the call, might set a return value or throw - an exception. - - The call to apply the interceptor to. - - - - Gets the number of times this call rule is valid, if it's set - to null its infinitely valid. - - - - - - An attribute that can be applied to code that should be fixed because there's a - code smell. - - - - - Gets or sets the description of the smell. - - - - - Provides the Strict extension methods for configuring fake objects. - - - - - Makes the fake strict, this means that any call to the fake - that has not been explicitly configured will throw an exception. - - The type of fake object. - The configuration. - A configuration object. - - - - Provides the Throws extension methods for configuring fake object call behavior. - - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - The exception to throw when a call that matches is invoked. - Configuration object. - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - A function that returns the exception to throw when invoked. - Configuration object. - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - A function that returns the exception to throw when invoked. - Type of the first argument of the faked method call. - Type of the second argument of the faked method call. - Type of the third argument of the faked method call. - Type of the fourth argument of the faked method call. - Configuration object. - The signatures of the faked method and the do not match. - - - - Throws the specified exception when the currently configured - call gets called. - - The configuration to use. - The type of exception to throw. - Configuration object. - - - - Provides the Twice extension methods for configuring repeats on fake object call behavior. - - - - - Specifies NumberOfTimes(2) to the IRepeatConfiguration{TFake}. - - The configuration to set repeat 2 to. - - - - Used to tag fields and properties that will be initialized as a SUT through the Fake.Initialize-method. - - - - - Provides helper methods for checking the value producer signature against call signatures. - - - - - Fixes so that existing Serializable-attributes are omitted in the compilation - of the silverlight project. - - - - - Fixes so that existing NonSerialized-attributes are omitted in the compilation - of the silverlight project. - - - - diff --git a/dep/repositories.config b/dep/repositories.config index 2e1978a719b..2cb419a2515 100644 --- a/dep/repositories.config +++ b/dep/repositories.config @@ -4,6 +4,7 @@ + diff --git a/src/CodeGeneration/CodeGeneration.LowLevelClient/Views/IElasticsearchClient.Generated.cshtml b/src/CodeGeneration/CodeGeneration.LowLevelClient/Views/IElasticsearchClient.Generated.cshtml index 0c30404933f..a7e9eeaa976 100644 --- a/src/CodeGeneration/CodeGeneration.LowLevelClient/Views/IElasticsearchClient.Generated.cshtml +++ b/src/CodeGeneration/CodeGeneration.LowLevelClient/Views/IElasticsearchClient.Generated.cshtml @@ -21,7 +21,7 @@ namespace Elasticsearch.Net public interface IElasticsearchClient { IConnection Connection { get; } - IConnectionSettings2 Settings { get; } + IConnectionConfigurationValues Settings { get; } IElasticsearchSerializer Serializer { get; } @foreach(var kv in Model.Endpoints) diff --git a/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs b/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs index 467b11b3693..9eb71cebaf0 100644 --- a/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs +++ b/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs @@ -10,9 +10,9 @@ namespace Elasticsearch.Net.Connection.HttpClient { public class ElasticsearchHttpClient : IConnection { - private IConnectionSettings2 _settings; + private IConnectionConfigurationValues _settings; - public ElasticsearchHttpClient(IConnectionSettings2 settings) + public ElasticsearchHttpClient(IConnectionConfigurationValues settings) { _settings = settings; } @@ -20,7 +20,7 @@ public ElasticsearchHttpClient(IConnectionSettings2 settings) public ElasticsearchResponse DoSyncRequest(string method, string path, byte[] data = null) { var client = new System.Net.Http.HttpClient(); - var uri = new Uri(this._settings.Uri, path); + var uri = new Uri(this._settings.ConnectionPool.GetNext(), path); HttpResponseMessage response = null; byte[] result = null; HttpContent content = null; diff --git a/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs b/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs index f98df32a1a6..068a4e6f605 100644 --- a/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs +++ b/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs @@ -16,9 +16,9 @@ public class ThriftConnection : IConnection, IDisposable private readonly int _timeout; private readonly int _poolSize; private bool _disposed; - private readonly IConnectionSettings2 _connectionSettings; + private readonly IConnectionConfigurationValues _connectionSettings; - public ThriftConnection(IConnectionSettings2 connectionSettings) + public ThriftConnection(IConnectionConfigurationValues connectionSettings) { this._connectionSettings = connectionSettings; this._timeout = connectionSettings.Timeout; @@ -28,7 +28,10 @@ public ThriftConnection(IConnectionSettings2 connectionSettings) for (var i = 0; i <= connectionSettings.MaximumAsyncConnections; i++) { - var tsocket = new TSocket(connectionSettings.Host, connectionSettings.Port); + var uri = this._connectionSettings.ConnectionPool.GetNext(); + var host = uri.Host; + var port = uri.Port; + var tsocket = new TSocket(host, port); var transport = new TBufferedTransport(tsocket, 1024); var protocol = new TBinaryProtocol(transport); var client = new Rest.Client(protocol); diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/FixedNodesConnectionPoolTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/FixedNodesConnectionPoolTests.cs new file mode 100644 index 00000000000..dc9bca7feea --- /dev/null +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/FixedNodesConnectionPoolTests.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using Autofac.Extras.FakeItEasy; +using Elasticsearch.Net.Connection; +using Elasticsearch.Net.Exceptions; +using Elasticsearch.Net.Tests.Unit.Stubs; +using FakeItEasy; +using FluentAssertions; +using NUnit.Framework; + +namespace Elasticsearch.Net.Tests.Unit.Connection +{ + [TestFixture] + public class StaticConnectionPoolTests + { + private static Uri[] _uris = new[] + { + new Uri("http://localhost:9200"), + new Uri("http://localhost:9201"), + new Uri("http://localhost:9202"), + new Uri("http://localhost:9203"), + }; + + private static readonly int _retries = _uris.Count() - 1; + + private readonly ConnectionConfiguration _connectionConfig = new ConnectionConfiguration() + .SetMaxRetries(_retries); + + [Test] + public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + var connectionPool = new StaticConnectionPool(_uris); + + fake.Provide(new ConnectionConfiguration(connectionPool)); + + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + getCall.Throws(); + + var client = fake.Resolve(); + + //we don't specify our own value so it should be up to the connection pool + client.Settings.MaxRetries.Should().Be(null); + + client.Settings.ConnectionPool.MaxRetries.Should().Be(_retries); + + Assert.Throws(()=> client.Info()); + getCall.MustHaveHappened(Repeated.Exactly.Times(_retries + 1)); + + } + } + + [Test] + public void AllNodesMustBeTriedOnce() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + var connectionPool = new StaticConnectionPool(_uris); + fake.Provide(new ConnectionConfiguration(connectionPool)); + var connection = fake.Resolve(); + + var calls = _uris.Select(u => + A.CallTo(()=> fake.Resolve().Observe(A.That.Matches(uu=>uu.Port == u.Port))) + ).ToList(); + + fake.Provide(connection); + + foreach (var c in calls) + c.Throws(); + + var client = fake.Resolve(); + + Assert.Throws(()=> client.Info()); + + foreach (var call in calls) + call.MustHaveHappened(Repeated.Exactly.Once); + + } + } + + [Test] + public void HardRetryLimitTakesPrecedence() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + var connectionPool = new StaticConnectionPool(_uris); + fake.Provide(new ConnectionConfiguration(connectionPool) + .SetMaxRetries(7)); + var connection = fake.Resolve(); + + var calls = _uris.Select(u => + A.CallTo(()=> fake.Resolve().Observe(A.That.Matches(uu=>uu.Port == u.Port))) + ).ToList(); + + fake.Provide(connection); + + foreach (var c in calls) + c.Throws(); + + var client = fake.Resolve(); + + Assert.Throws(()=> client.Info()); + + //twice because we say we want the retry the call 7 times (original + retry == 8) + foreach (var call in calls) + call.MustHaveHappened(Repeated.Exactly.Twice); + + } + } + } +} diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs new file mode 100644 index 00000000000..75124389237 --- /dev/null +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Autofac.Extras.FakeItEasy; +using Elasticsearch.Net.Connection; +using Elasticsearch.Net.Exceptions; +using FakeItEasy; +using FluentAssertions; +using NUnit.Framework; + +namespace Elasticsearch.Net.Tests.Unit.Connection +{ + [TestFixture] + public class RetryTests + { + private static readonly int _retries = 4; + + + //we do not pass a Uri or IConnectionPool so this config + //defaults to SingleNodeConnectionPool() + private readonly ConnectionConfiguration _connectionConfig = new ConnectionConfiguration() + .SetMaxRetries(_retries); + + [Test] + public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + fake.Provide(_connectionConfig); + + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + getCall.Throws(); + + var client = fake.Resolve(); + + client.Settings.MaxRetries.Should().Be(_retries); + + Assert.Throws(()=> client.Info()); + getCall.MustHaveHappened(Repeated.Exactly.Times(_retries + 1)); + + } + } + + [Test] + public void ShouldNotRetryOn400() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + var settings = fake.Provide(_connectionConfig); + + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + getCall.Returns(ElasticsearchResponse.Create(settings, 400, "GET", "/", null, null)); + + var client = fake.Resolve(); + + Assert.DoesNotThrow(()=> client.Info()); + getCall.MustHaveHappened(Repeated.Exactly.Once); + + } + } + + [Test] + public void ShouldNotRetryOn500() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + var settings = fake.Provide(_connectionConfig); + + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + getCall.Returns(ElasticsearchResponse.Create(settings, 500, "GET", "/", null, null)); + + var client = fake.Resolve(); + + Assert.DoesNotThrow(()=> client.Info()); + getCall.MustHaveHappened(Repeated.Exactly.Once); + + } + } + + [Test] + public void ShouldNotRetryOn201() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + var settings = fake.Provide(_connectionConfig); + + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + getCall.Returns(ElasticsearchResponse.Create(settings, 201, "GET", "/", null, null)); + + var client = fake.Resolve(); + + Assert.DoesNotThrow(()=> client.Info()); + getCall.MustHaveHappened(Repeated.Exactly.Once); + + } + } + + [Test] + public void ShouldRetryOn503() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + var settings = fake.Provide(_connectionConfig); + + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + getCall.Returns(ElasticsearchResponse.Create(settings, 503, "GET", "/", null, null)); + + var client = fake.Resolve(); + + Assert.Throws(()=> client.Info()); + getCall.MustHaveHappened(Repeated.Exactly.Times(_retries + 1)); + + } + } + } +} diff --git a/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj b/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj new file mode 100644 index 00000000000..cb7494ce58c --- /dev/null +++ b/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj @@ -0,0 +1,84 @@ + + + + + Debug + AnyCPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F} + Library + Properties + Elasticsearch.Net.Tests.Unit + Elasticsearch.Net.Tests.Unit + v4.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\dep\Autofac.3.2.0\lib\net40\Autofac.dll + + + ..\..\dep\Autofac.Extras.FakeItEasy.3.0.0\lib\net40\Autofac.Extras.FakeItEasy.dll + + + False + ..\..\dep\FakeItEasy.1.15.0\lib\net40\FakeItEasy.dll + + + ..\..\dep\FluentAssertions.2.0.0.1\lib\net45\FluentAssertions.dll + + + False + ..\..\dep\NUnit.2.6.1\lib\nunit.framework.dll + + + ..\..\dep\Purify - Preview\PUrify.dll + + + + + + + + + + + + + + + + + + + + + {e97ccf40-0ba6-43fe-9f2d-58d454134088} + Elasticsearch.Net + + + + + \ No newline at end of file diff --git a/src/Elasticsearch.Net.Tests.Unit/Properties/AssemblyInfo.cs b/src/Elasticsearch.Net.Tests.Unit/Properties/AssemblyInfo.cs new file mode 100644 index 00000000000..20ef3da245b --- /dev/null +++ b/src/Elasticsearch.Net.Tests.Unit/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Elasticsearch.Net.Tests.Unit")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Elasticsearch.Net.Tests.Unit")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7acd8afb-9881-4f7c-9454-7d29944465c4")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs b/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs new file mode 100644 index 00000000000..e4a8c9dc306 --- /dev/null +++ b/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Elasticsearch.Net.Connection; + +namespace Elasticsearch.Net.Tests.Unit.Stubs +{ + public interface IUriObserver + { + void Observe(Uri uri); + } + + public class UriObserver : IUriObserver + { + public virtual void Observe(Uri uri) { } + } + + public interface IResponseGenerator + { + ElasticsearchResponse Create(); + } + + public class ResponseGenerator : IResponseGenerator + { + public virtual ElasticsearchResponse Create() + { + return null; + } + } + + public class NoopConnection : IConnection + { + private readonly IConnectionConfigurationValues _configValues; + private readonly IUriObserver _uriObserver; + private readonly IResponseGenerator _responseGenerator; + + public NoopConnection( + IConnectionConfigurationValues configValues + , IUriObserver uriObserver + , IResponseGenerator responseGenerator) + { + _uriObserver = uriObserver; + _responseGenerator = responseGenerator; + _configValues = configValues; + } + + + public virtual Task Get(string path) + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return Task.FromResult(_responseGenerator.Create()); + } + + public virtual ElasticsearchResponse GetSync(string path) + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return _responseGenerator.Create(); + } + + public virtual Task Head(string path) + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return Task.FromResult(_responseGenerator.Create()); + } + + public virtual ElasticsearchResponse HeadSync(string path) + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return _responseGenerator.Create(); + } + + public virtual Task Post(string path, byte[] data) + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return Task.FromResult(_responseGenerator.Create()); + } + + public virtual ElasticsearchResponse PostSync(string path, byte[] data) + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return _responseGenerator.Create(); + } + + public virtual Task Put(string path, byte[] data) + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return Task.FromResult(_responseGenerator.Create()); + } + + public virtual ElasticsearchResponse PutSync(string path, byte[] data) + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return _responseGenerator.Create(); + } + + public virtual Task Delete(string path) + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return Task.FromResult(_responseGenerator.Create()); + } + + public virtual ElasticsearchResponse DeleteSync(string path) + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return _responseGenerator.Create(); + } + + public virtual Task Delete(string path, byte[] data) + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return Task.FromResult(_responseGenerator.Create()); + } + + public virtual ElasticsearchResponse DeleteSync(string path, byte[] data) + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return _responseGenerator.Create(); + } + } +} diff --git a/src/Elasticsearch.Net.Tests.Unit/app.config b/src/Elasticsearch.Net.Tests.Unit/app.config new file mode 100644 index 00000000000..4be2548cbd3 --- /dev/null +++ b/src/Elasticsearch.Net.Tests.Unit/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/Elasticsearch.Net.Tests.Unit/packages.config b/src/Elasticsearch.Net.Tests.Unit/packages.config new file mode 100644 index 00000000000..e665f257735 --- /dev/null +++ b/src/Elasticsearch.Net.Tests.Unit/packages.config @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/Elasticsearch.Net/Domain/ElasticsearchConnectionSettings.cs b/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs similarity index 73% rename from src/Elasticsearch.Net/Domain/ElasticsearchConnectionSettings.cs rename to src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs index ab6a3cee809..67e8e7986fd 100644 --- a/src/Elasticsearch.Net/Domain/ElasticsearchConnectionSettings.cs +++ b/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs @@ -3,57 +3,72 @@ using System.Linq; using System; using System.Collections.Specialized; +using System.Net; +using Elasticsearch.Net.Connection; namespace Elasticsearch.Net { - public class ElasticsearchConnectionSettings : - ElasticsearchConnectionSettings, - IElasticsearchConnectionSettings + public class ConnectionConfiguration : + ConnectionConfiguration, + IConnectionConfiguration { - public ElasticsearchConnectionSettings(Uri uri = null) + public ConnectionConfiguration(Uri uri = null) : base(uri) { + } + public ConnectionConfiguration(IConnectionPool connectionPool) + : base(connectionPool) + { + } } - public class ElasticsearchConnectionSettings : IConnectionSettings2 - where T : ElasticsearchConnectionSettings + public class ConnectionConfiguration : IConnectionConfigurationValues + where T : ConnectionConfiguration { - - public Uri Uri { get; private set; } - public string Host { get; private set; } - public int Port { get; private set; } + public IConnectionPool ConnectionPool { get; private set; } + //public Uri Uri { get; private set; } + //public string Host { get; private set; } + //public int Port { get; private set; } public int Timeout { get; private set; } public string ProxyUsername { get; private set; } public string ProxyPassword { get; private set; } public string ProxyAddress { get; private set; } public int MaximumAsyncConnections { get; private set; } + public int? MaxRetries { get; private set; } public bool UsesPrettyResponses { get; private set; } public bool TraceEnabled { get; private set; } public Action ConnectionStatusHandler { get; private set; } public NameValueCollection QueryStringParameters { get; private set; } public bool UriSpecifiedBasicAuth { get; private set; } - IElasticsearchSerializer IConnectionSettings2.Serializer { get; set; } + IElasticsearchSerializer IConnectionConfigurationValues.Serializer { get; set; } - public ElasticsearchConnectionSettings(Uri uri = null) + public ConnectionConfiguration(IConnectionPool connectionPool) { this.Timeout = 60*1000; - uri = uri ?? new Uri("http://localhost:9200"); - - //this makes sure that paths stay relative i.e if the root uri is: - //http://my-saas-provider.com/instance - if (!uri.OriginalString.EndsWith("/")) - uri = new Uri(uri.OriginalString + "/"); - this.Host = uri.Host; - this.Port = uri.Port; - this.UriSpecifiedBasicAuth = !uri.UserInfo.IsNullOrEmpty(); - this.Uri = uri; + //this.UriSpecifiedBasicAuth = !uri.UserInfo.IsNullOrEmpty(); + //this.Uri = uri; this.ConnectionStatusHandler = this.ConnectionStatusDefaultHandler; this.MaximumAsyncConnections = 0; + this.ConnectionPool = connectionPool; + } + + public ConnectionConfiguration(Uri uri = null) + : this(new SingleNodeConnectionPool(uri ?? new Uri("http://localhost:9200"))) + { + //this.Host = uri.Host; + //this.Port = uri.Port; + } + + public T SetMaxRetries(int maxRetries) + { + this.MaxRetries = maxRetries; + return (T) this; } + /// /// Enable Trace signals to the IConnection that it should put debug information on the Trace. /// diff --git a/src/Elasticsearch.Net/Connection/ConnectionError.cs b/src/Elasticsearch.Net/Connection/ConnectionError.cs index 6a228719ccd..8d7b689a82b 100644 --- a/src/Elasticsearch.Net/Connection/ConnectionError.cs +++ b/src/Elasticsearch.Net/Connection/ConnectionError.cs @@ -22,7 +22,7 @@ public enum ConnectionErrorType public class ConnectionError { public ConnectionErrorType Type { get; set; } - public HttpStatusCode HttpStatusCode { get; set; } + public HttpStatusCode? HttpStatusCode { get; set; } public string ExceptionMessage { get; set; } public Exception OriginalException { get; set; } public byte[] ResponseReadFromWebException { get; set; } diff --git a/src/Elasticsearch.Net/Connection/ConnectionException.cs b/src/Elasticsearch.Net/Connection/ConnectionException.cs index 52eee01b260..f94fc0e0ffe 100644 --- a/src/Elasticsearch.Net/Connection/ConnectionException.cs +++ b/src/Elasticsearch.Net/Connection/ConnectionException.cs @@ -6,7 +6,7 @@ namespace Elasticsearch.Net.Connection public class ConnectionException : System.Exception { public int HttpStatusCode { get; private set; } - public ConnectionException(int statusCode = 500, string response = null) : base(Enum.GetName(typeof(HttpStatusCode), statusCode)) + public ConnectionException(int statusCode = -1, string response = null) : base(Enum.GetName(typeof(HttpStatusCode), statusCode)) { this.HttpStatusCode = statusCode; } diff --git a/src/Elasticsearch.Net/Connection/ConnectionPool.cs b/src/Elasticsearch.Net/Connection/ConnectionPool.cs new file mode 100644 index 00000000000..d4ce362beae --- /dev/null +++ b/src/Elasticsearch.Net/Connection/ConnectionPool.cs @@ -0,0 +1,127 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading; +using Elasticsearch.Net.Exceptions; + +namespace Elasticsearch.Net.Connection +{ + public interface IConnectionPool + { + int MaxRetries { get; } + + Uri GetNext(); + void MarkDead(Uri uri); + void MarkAlive(Uri uri); + } + + public class SingleNodeConnectionPool : IConnectionPool + { + private readonly Uri _uri; + + public int MaxRetries { get { return 0; } } + + public SingleNodeConnectionPool(Uri uri) + { + //this makes sure that paths stay relative i.e if the root uri is: + //http://my-saas-provider.com/instance + if (!uri.OriginalString.EndsWith("/")) + uri = new Uri(uri.OriginalString + "/"); + _uri = uri; + } + + public Uri GetNext() + { + return _uri; + } + + public void MarkDead(Uri uri) + { + + } + + public void MarkAlive(Uri uri) + { + + } + } + + public class EndpointState + { + public int _attempts = 0; + public DateTime date = DateTime.UtcNow.AddYears(-1); + } + + public class StaticConnectionPool : IConnectionPool + { + private readonly IDictionary _uriLookup; + private readonly IList _uris; + + public int MaxRetries { get { return _uris.Count - 1; } } + + private int _current = -1; + + public StaticConnectionPool(IEnumerable uris) + { + uris.ThrowIfEmpty("uris"); + _uris = uris.ToList(); + _uriLookup = _uris.ToDictionary(k=>k, v=> new EndpointState()); + } + + public Uri GetNext() + { + var attempts = 0; + Uri uri = null; + do + { + var c = Interlocked.Increment(ref _current); + var i = c%_uris.Count; + uri = this._uris[i]; + var state = this._uriLookup[uri]; + if (state.date <= Now()) + return uri; + + ++attempts; + } while (attempts < _uris.Count); + throw new OutOfNodesException("Tried {0} different nodes".F(attempts)); + } + + public virtual DateTime Now() + { + return DateTime.UtcNow; + } + + public void MarkDead(Uri uri) + { + //DateTime dateTime = DateTime.UtcNow; + //if (!this._uriLookup.TryGetValue(uri, out dateTime)) + // return; + } + + public void MarkAlive(Uri uri) + { + throw new NotImplementedException(); + } + } + + + //public class ConnectionPool + //{ + // public Dictionary + + + // public ConnectionPool(IConnection connection) + // { + // connection.ThrowIfNull("connection"); + // _connection = connection; + // } + + // public Uri GetNextEndpoint() + // { + + // } + + //} +} diff --git a/src/Elasticsearch.Net/Connection/Connection.cs b/src/Elasticsearch.Net/Connection/HttpConnection.cs similarity index 95% rename from src/Elasticsearch.Net/Connection/Connection.cs rename to src/Elasticsearch.Net/Connection/HttpConnection.cs index 0139ff35d4d..fcc0f453e20 100644 --- a/src/Elasticsearch.Net/Connection/Connection.cs +++ b/src/Elasticsearch.Net/Connection/HttpConnection.cs @@ -13,7 +13,7 @@ public class HttpConnection : IConnection { const int BUFFER_SIZE = 1024; - protected IConnectionSettings2 _ConnectionSettings { get; set; } + protected IConnectionConfigurationValues _ConnectionSettings { get; set; } private Semaphore _ResourceLock; private readonly bool _enableTrace; @@ -23,7 +23,7 @@ static HttpConnection() ServicePointManager.Expect100Continue = false; ServicePointManager.DefaultConnectionLimit = 10000; } - public HttpConnection(IConnectionSettings2 settings) + public HttpConnection(IConnectionConfigurationValues settings) { if (settings == null) throw new ArgumentNullException("settings"); @@ -147,11 +147,13 @@ private void SetProxyIfNeeded(HttpWebRequest myReq) private void SetBasicAuthorizationIfNeeded(HttpWebRequest myReq) { - if (this._ConnectionSettings.UriSpecifiedBasicAuth) - { + //TODO figure out a way to cache this; + + //if (this._ConnectionSettings.UriSpecifiedBasicAuth) + //{ myReq.Headers["Authorization"] = - "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(this._ConnectionSettings.Uri.UserInfo)); - } + "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(myReq.RequestUri.UserInfo)); + //} } protected virtual HttpWebRequest CreateWebRequest(string path, string method) @@ -341,15 +343,15 @@ public void Iterate(HttpWebRequest request, byte[] data, IEnumerable async private Uri _CreateUriString(string path) { var s = this._ConnectionSettings; - + var uri = s.ConnectionPool.GetNext(); if (s.QueryStringParameters != null) { - var tempUri = new Uri(s.Uri, path); + var tempUri = new Uri(uri, path); var qs = s.QueryStringParameters.ToQueryString(tempUri.Query.IsNullOrEmpty() ? "?" : "&"); path += qs; } - Uri uri = path.IsNullOrEmpty() ? s.Uri : new Uri(s.Uri, path); + uri = path.IsNullOrEmpty() ? uri : new Uri(uri, path); return uri.Purify(); } diff --git a/src/Elasticsearch.Net/Domain/IElasticsearchConnectionSettings.cs b/src/Elasticsearch.Net/Connection/IConnectionConfiguration.cs similarity index 70% rename from src/Elasticsearch.Net/Domain/IElasticsearchConnectionSettings.cs rename to src/Elasticsearch.Net/Connection/IConnectionConfiguration.cs index f5e22984cdb..f8ce6bfadfd 100644 --- a/src/Elasticsearch.Net/Domain/IElasticsearchConnectionSettings.cs +++ b/src/Elasticsearch.Net/Connection/IConnectionConfiguration.cs @@ -3,34 +3,13 @@ namespace Elasticsearch.Net { - public interface IConnectionSettings2 - { - Uri Uri { get; } - int MaximumAsyncConnections { get; } - string Host { get; } - int Port { get; } - int Timeout { get; } - string ProxyAddress { get; } - string ProxyUsername { get; } - string ProxyPassword { get; } - - bool TraceEnabled { get; } - bool UriSpecifiedBasicAuth { get; } - bool UsesPrettyResponses { get; } - - NameValueCollection QueryStringParameters { get; } - Action ConnectionStatusHandler { get; } - - IElasticsearchSerializer Serializer { get; set; } - } - - public interface IElasticsearchConnectionSettings : - IElasticsearchConnectionSettings + public interface IConnectionConfiguration : + IConnectionConfiguration { } - public interface IElasticsearchConnectionSettings where T : IElasticsearchConnectionSettings + public interface IConnectionConfiguration where T : IConnectionConfiguration { diff --git a/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs b/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs new file mode 100644 index 00000000000..a9c0cf895e8 --- /dev/null +++ b/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Specialized; +using Elasticsearch.Net.Connection; + +namespace Elasticsearch.Net +{ + public interface IConnectionConfigurationValues + { + IConnectionPool ConnectionPool { get; } + //Uri Uri { get; } + int MaximumAsyncConnections { get; } + //string Host { get; } + //int Port { get; } + int Timeout { get; } + int? MaxRetries { get; } + string ProxyAddress { get; } + string ProxyUsername { get; } + string ProxyPassword { get; } + + bool TraceEnabled { get; } + bool UriSpecifiedBasicAuth { get; } + bool UsesPrettyResponses { get; } + + NameValueCollection QueryStringParameters { get; } + Action ConnectionStatusHandler { get; } + + IElasticsearchSerializer Serializer { get; set; } + } +} \ No newline at end of file diff --git a/src/Elasticsearch.Net/Connection/InMemoryConnection.cs b/src/Elasticsearch.Net/Connection/InMemoryConnection.cs index c43c4bbf072..d2cf5869e90 100644 --- a/src/Elasticsearch.Net/Connection/InMemoryConnection.cs +++ b/src/Elasticsearch.Net/Connection/InMemoryConnection.cs @@ -14,12 +14,12 @@ public class InMemoryConnection : HttpConnection private ElasticsearchResponse _fixedResult; private readonly byte[] _fixedResultBytes = Encoding.UTF8.GetBytes("{ \"USING NEST IN MEMORY CONNECTION\" : null }"); - public InMemoryConnection(IConnectionSettings2 settings) + public InMemoryConnection(IConnectionConfigurationValues settings) : base(settings) { } - public InMemoryConnection(IConnectionSettings2 settings, ElasticsearchResponse fixedResult) + public InMemoryConnection(IConnectionConfigurationValues settings, ElasticsearchResponse fixedResult) : base(settings) { this._fixedResult = fixedResult; diff --git a/src/Elasticsearch.Net/Domain/ElasticsearchResponse.cs b/src/Elasticsearch.Net/Domain/ElasticsearchResponse.cs index c38effe16b6..6f954987704 100644 --- a/src/Elasticsearch.Net/Domain/ElasticsearchResponse.cs +++ b/src/Elasticsearch.Net/Domain/ElasticsearchResponse.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Runtime.CompilerServices; using System.Text; @@ -21,7 +22,7 @@ public class ElasticsearchResponse public ConnectionError Error { get; protected internal set; } public string RequestMethod { get; protected internal set; } public string RequestUrl { get; protected internal set; } - public IConnectionSettings2 Settings { get; protected internal set; } + public IConnectionConfigurationValues Settings { get; protected internal set; } private string _result; public string Result @@ -31,11 +32,28 @@ public string Result public byte[] ResultBytes { get; protected internal set; } public byte[] Request { get; protected internal set; } + + public int? HttpStatusCode { get; protected internal set; } + public IElasticsearchSerializer Serializer { get; protected internal set; } private static readonly byte _startAccolade = (byte)'{'; private ElasticsearchDynamic _response; + /// + /// If the response is succesful or has a known error (400-500 range) + /// The client should not retry this call + /// + internal bool SuccessOrKnownError + { + get + { + return this.Success || + (this.HttpStatusCode.HasValue + && this.HttpStatusCode.Value != 503 && (this.HttpStatusCode.Value >= 400 && this.HttpStatusCode.Value < 599)); + } + } + public ElasticsearchDynamic Response { get @@ -55,13 +73,13 @@ public ElasticsearchDynamic Response //TODO probably nicer if we make this factory ConnectionStatus.Error() and ConnectionStatus.Valid() //and make these constructors private. - protected ElasticsearchResponse(IConnectionSettings2 settings) + protected ElasticsearchResponse(IConnectionConfigurationValues settings) { this.Settings = settings; this.Serializer = settings.Serializer; //TODO or default } - public static ElasticsearchResponse CreateError(IConnectionSettings2 settings, Exception e, string method, string path, byte[] request) + public static ElasticsearchResponse CreateError(IConnectionConfigurationValues settings, Exception e, string method, string path, byte[] request) { var cs = new ElasticsearchResponse(settings, e); cs.Request = request; @@ -69,7 +87,7 @@ public static ElasticsearchResponse CreateError(IConnectionSettings2 settings, E cs.RequestMethod = method; return cs; } - public static ElasticsearchResponse Create(IConnectionSettings2 settings, int statusCode, string method, string path, byte[] request, byte[] response) + public static ElasticsearchResponse Create(IConnectionConfigurationValues settings, int statusCode, string method, string path, byte[] request, byte[] response) { var cs = new ElasticsearchResponse(settings, statusCode, response); cs.Request = request; @@ -79,14 +97,16 @@ public static ElasticsearchResponse Create(IConnectionSettings2 settings, int st } - private ElasticsearchResponse(IConnectionSettings2 settings, Exception e) : this(settings) + private ElasticsearchResponse(IConnectionConfigurationValues settings, Exception e) : this(settings) { this.Success = false; this.Error = new ConnectionError(e); if (this.Error.ResponseReadFromWebException != null) this.ResultBytes = this.Error.ResponseReadFromWebException; + if (this.Error.HttpStatusCode != null) + this.HttpStatusCode = (int) this.Error.HttpStatusCode; } - private ElasticsearchResponse(IConnectionSettings2 settings, int statusCode, byte[] response = null) : this(settings) + private ElasticsearchResponse(IConnectionConfigurationValues settings, int statusCode, byte[] response = null) : this(settings) { this.Success = statusCode >= 200 && statusCode < 300; if (!this.Success) @@ -95,6 +115,7 @@ private ElasticsearchResponse(IConnectionSettings2 settings, int statusCode, byt this.Error = new ConnectionError(exception); } this.ResultBytes = response; + this.HttpStatusCode = statusCode; } @@ -119,7 +140,7 @@ public override string ToString() var e = r.Error; var print = _printFormat.F( Environment.NewLine, - e != null ? e.HttpStatusCode : HttpStatusCode.OK, + r.HttpStatusCode.HasValue ? r.HttpStatusCode.Value.ToString(CultureInfo.InvariantCulture) : "-1", r.RequestMethod, r.RequestUrl, r.Request, diff --git a/src/Elasticsearch.Net/Elasticsearch.Net.csproj b/src/Elasticsearch.Net/Elasticsearch.Net.csproj index 28fc6138060..4a645b151e1 100644 --- a/src/Elasticsearch.Net/Elasticsearch.Net.csproj +++ b/src/Elasticsearch.Net/Elasticsearch.Net.csproj @@ -47,16 +47,19 @@ - + + - + + + diff --git a/src/Elasticsearch.Net/ElasticsearchClient.cs b/src/Elasticsearch.Net/ElasticsearchClient.cs index b8f0d7d3b1b..2ba8adc864b 100644 --- a/src/Elasticsearch.Net/ElasticsearchClient.cs +++ b/src/Elasticsearch.Net/ElasticsearchClient.cs @@ -5,18 +5,19 @@ using System.Text; using System.Threading.Tasks; using Elasticsearch.Net.Connection; +using Elasticsearch.Net.Exceptions; namespace Elasticsearch.Net { public partial class ElasticsearchClient : IElasticsearchClient { public IConnection Connection { get; protected set; } - public IConnectionSettings2 Settings { get; protected set; } + public IConnectionConfigurationValues Settings { get; protected set; } public IElasticsearchSerializer Serializer { get; protected set; } protected IStringifier Stringifier { get; set; } public ElasticsearchClient( - IConnectionSettings2 settings, + IConnectionConfigurationValues settings, IConnection connection = null, IElasticsearchSerializer serializer = null, IStringifier stringifier = null @@ -28,7 +29,7 @@ public ElasticsearchClient( this.Settings = settings; this.Connection = connection ?? new HttpConnection(settings); this.Serializer = serializer ?? new ElasticsearchDefaultSerializer(); - ((IConnectionSettings2) this.Settings).Serializer = this.Serializer; + ((IConnectionConfigurationValues) this.Settings).Serializer = this.Serializer; this.Stringifier = stringifier ?? new Stringifier(); } @@ -55,25 +56,82 @@ public string Encoded(object o) } - protected ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null) + protected ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0) { if (queryString != null) path += queryString.ToQueryString(); + var maxRetries = this.GetMaximumRetries(); var postData = PostData(data); + ElasticsearchResponse response = null; + var exceptionMessage = "Unable to perform request: '{0} {1}' on any of the nodes after retrying {2} times.".F( + method, path, retried); + try + { + response = DoSyncRequest(method, path, postData); + if (response != null && response.SuccessOrKnownError) + return response; + } + catch (Exception e) + { + if (retried < maxRetries) + return this.DoRequest(method, path, data, queryString, ++retried); + else + throw new OutOfNodesException(exceptionMessage, e); + } + if (retried < maxRetries) + return this.DoRequest(method, path, data, queryString, ++retried); + + throw new OutOfNodesException(exceptionMessage); + } + /// + /// Returns either the fixed maximum set on the connection configuration settings or the number of nodes + /// + private int GetMaximumRetries() + { + return this.Settings.MaxRetries.GetValueOrDefault(this.Settings.ConnectionPool.MaxRetries); + } + + + private ElasticsearchResponse DoSyncRequest(string method, string path, byte[] postData) + { switch (method.ToLowerInvariant()) { - case "post": return this.Connection.PostSync(path, postData); - case "put": return this.Connection.PutSync(path, postData); + case "post": + return this.Connection.PostSync(path, postData); + case "put": + return this.Connection.PutSync(path, postData); case "delete": return postData == null || postData.Length == 0 ? this.Connection.DeleteSync(path) : this.Connection.DeleteSync(path, postData); - case "head": return this.Connection.HeadSync(path); - case "get": return this.Connection.GetSync(path); + case "head": + return this.Connection.HeadSync(path); + case "get": + return this.Connection.GetSync(path); } + return null; + } + + protected Task DoRequestAsync(string method, string path, object data = null, NameValueCollection queryString = null) + { + if (queryString != null) + path += queryString.ToQueryString(); + var postData = PostData(data); + + switch (method.ToLowerInvariant()) + { + case "post": return this.Connection.Post(path, postData); + case "put": return this.Connection.Put(path, postData); + case "delete": + return postData == null || postData.Length == 0 + ? this.Connection.Delete(path) + : this.Connection.Delete(path, postData); + case "head": return this.Connection.Head(path); + case "get": return this.Connection.Get(path); + } throw new Exception("Unknown HTTP method " + method); } @@ -98,26 +156,5 @@ private byte[] PostData(object data) .Select(soo => this.Serializer.Serialize(soo, SerializationFormatting.None).Utf8String())) + "\n"; return joined.Utf8Bytes(); } - - protected Task DoRequestAsync(string method, string path, object data = null, NameValueCollection queryString = null) - { - if (queryString != null) - path += queryString.ToQueryString(); - - var postData = PostData(data); - - switch (method.ToLowerInvariant()) - { - case "post": return this.Connection.Post(path, postData); - case "put": return this.Connection.Put(path, postData); - case "delete": - return postData == null || postData.Length == 0 - ? this.Connection.Delete(path) - : this.Connection.Delete(path, postData); - case "head": return this.Connection.Head(path); - case "get": return this.Connection.Get(path); - } - throw new Exception("Unknown HTTP method " + method); - } } } diff --git a/src/Elasticsearch.Net/Exceptions/OutOfNodesException.cs b/src/Elasticsearch.Net/Exceptions/OutOfNodesException.cs new file mode 100644 index 00000000000..878256a6ce3 --- /dev/null +++ b/src/Elasticsearch.Net/Exceptions/OutOfNodesException.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Elasticsearch.Net.Exceptions +{ + public class OutOfNodesException : Exception + { + public OutOfNodesException(string message) : base(message) + { + } + + public OutOfNodesException(string message, Exception innerException) : base(message, innerException) + { + + } + } +} diff --git a/src/Elasticsearch.Net/IElasticsearchClient.Generated.cs b/src/Elasticsearch.Net/IElasticsearchClient.Generated.cs index 37d51b3dc1e..93e0fca09a5 100644 --- a/src/Elasticsearch.Net/IElasticsearchClient.Generated.cs +++ b/src/Elasticsearch.Net/IElasticsearchClient.Generated.cs @@ -21,7 +21,7 @@ namespace Elasticsearch.Net public interface IElasticsearchClient { IConnection Connection { get; } - IConnectionSettings2 Settings { get; } + IConnectionConfigurationValues Settings { get; } IElasticsearchSerializer Serializer { get; } ///POST /_bulk diff --git a/src/Elasticsearch.sln b/src/Elasticsearch.sln index da76d9835a8..5de662854b1 100644 --- a/src/Elasticsearch.sln +++ b/src/Elasticsearch.sln @@ -55,6 +55,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elasticsearch.Net.ServiceSt EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elasticsearch.Net.Connection.HttpClient", "Connections\Elasticsearch.Net.Connection.HttpClient\Elasticsearch.Net.Connection.HttpClient.csproj", "{A69322FD-B874-44EF-ABE0-63F4A7B5593E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elasticsearch.Net.Tests.Unit", "Elasticsearch.Net.Tests.Unit\Elasticsearch.Net.Tests.Unit.csproj", "{C54FFD67-C452-4DC4-A47A-663ECA98A38F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution CodeGeneration|Any CPU = CodeGeneration|Any CPU @@ -343,6 +345,26 @@ Global {A69322FD-B874-44EF-ABE0-63F4A7B5593E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {A69322FD-B874-44EF-ABE0-63F4A7B5593E}.Release|Mixed Platforms.Build.0 = Release|Any CPU {A69322FD-B874-44EF-ABE0-63F4A7B5593E}.Release|x86.ActiveCfg = Release|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.CodeGeneration|Any CPU.ActiveCfg = Release|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.CodeGeneration|Any CPU.Build.0 = Release|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.CodeGeneration|Mixed Platforms.ActiveCfg = Release|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.CodeGeneration|Mixed Platforms.Build.0 = Release|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.CodeGeneration|x86.ActiveCfg = Release|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Debug - Generator|Any CPU.ActiveCfg = Debug|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Debug - Generator|Any CPU.Build.0 = Debug|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Debug - Generator|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Debug - Generator|Mixed Platforms.Build.0 = Debug|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Debug - Generator|x86.ActiveCfg = Debug|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Debug|x86.ActiveCfg = Debug|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Release|Any CPU.Build.0 = Release|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {C54FFD67-C452-4DC4-A47A-663ECA98A38F}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -352,6 +374,7 @@ Global {97408393-78AC-45DF-BE6E-4C219A2E456D} = {C7EA82B9-4C4A-4F68-ACD1-0D1A765BA98C} {9E38CD2C-EEFD-4C82-B0CD-D0608C27D64F} = {C7EA82B9-4C4A-4F68-ACD1-0D1A765BA98C} {E97EEFA7-BDAB-4417-97C0-14F971044C57} = {C7EA82B9-4C4A-4F68-ACD1-0D1A765BA98C} + {C54FFD67-C452-4DC4-A47A-663ECA98A38F} = {C7EA82B9-4C4A-4F68-ACD1-0D1A765BA98C} {B9FE4875-0171-40F7-A357-064A93BE09C6} = {DDC38E1C-13BF-4C96-A3BF-60F14DFC5069} {733A7657-69E9-444A-8AC0-BC123127A59A} = {DDC38E1C-13BF-4C96-A3BF-60F14DFC5069} {704EF910-C4E7-413E-B21F-296EFE732FCF} = {ADFAB127-0767-44F2-A6CC-6E233C39EA92} diff --git a/src/Nest/Domain/Connection/IConnectionSettings.cs b/src/Nest/Domain/Connection/IConnectionSettings.cs index 769dd091408..c6da45968ba 100644 --- a/src/Nest/Domain/Connection/IConnectionSettings.cs +++ b/src/Nest/Domain/Connection/IConnectionSettings.cs @@ -21,7 +21,7 @@ public ConnectionSettings(Uri uri, string defaultIndex) : base(uri, defaultIndex /// /// Control how NEST's behaviour. /// - public class ConnectionSettings : ElasticsearchConnectionSettings , IConnectionSettingsValues + public class ConnectionSettings : ConnectionConfiguration , IConnectionSettingsValues where T : ConnectionSettings { private string _defaultIndex; @@ -157,7 +157,7 @@ public T MapDefaultTypeNames(Action> mappingSelec } } - public interface IConnectionSettingsValues : IConnectionSettings2 + public interface IConnectionSettingsValues : IConnectionConfigurationValues { FluentDictionary DefaultIndices { get; } FluentDictionary DefaultTypeNames { get; } @@ -172,11 +172,11 @@ public interface IConnectionSettingsValues : IConnectionSettings2 /// /// Control how NEST's behaviour. /// - public interface IConnectionSettings : IConnectionSettings, IConnectionSettings2 + public interface IConnectionSettings : IConnectionSettings, IConnectionConfigurationValues { } - public interface IConnectionSettings : IElasticsearchConnectionSettings where T : IConnectionSettings + public interface IConnectionSettings : IConnectionConfiguration where T : IConnectionSettings { /// diff --git a/src/Profiling/Profiling.Indexing/Tester.cs b/src/Profiling/Profiling.Indexing/Tester.cs index 160f9ba52fe..59e07eddc31 100644 --- a/src/Profiling/Profiling.Indexing/Tester.cs +++ b/src/Profiling/Profiling.Indexing/Tester.cs @@ -28,7 +28,7 @@ protected void Connect(ElasticClient client, ConnectionSettings settings) if (!result.IsValid) { Console.Error.WriteLine("Could not connect to {0}:\r\n{1}", - settings.Host, result.ConnectionStatus.Error.OriginalException.Message); + result.ConnectionStatus.RequestUrl, result.ConnectionStatus.Error.OriginalException.Message); Console.Read(); } } diff --git a/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs b/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs index ec137458108..21186ea92e5 100644 --- a/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs +++ b/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs @@ -30,7 +30,7 @@ static YamlTestsBase() if (Process.GetProcessesByName("fiddler").Any()) host = "ipv4.fiddler"; var uri = new Uri("http://"+host+":9200/"); - var settings = new ElasticsearchConnectionSettings(uri).UsePrettyResponses(); + var settings = new ConnectionConfiguration(uri).UsePrettyResponses(); _client = new ElasticsearchClient(settings); var infoResponse = _client.Info(); dynamic info = infoResponse.Response; diff --git a/src/Tests/Nest.Tests.Integration/ConnectionTests.cs b/src/Tests/Nest.Tests.Integration/ConnectionTests.cs index b1bd82060e2..fffc79a52a1 100644 --- a/src/Tests/Nest.Tests.Integration/ConnectionTests.cs +++ b/src/Tests/Nest.Tests.Integration/ConnectionTests.cs @@ -14,21 +14,10 @@ public class ConnectionTests : IntegrationTests [Test] public void TestSettings() { - Assert.AreEqual(this._settings.Host, ElasticsearchConfiguration.Settings().Host); - Assert.AreEqual(this._settings.Port, Test.Default.Port); - Assert.AreEqual(new Uri(string.Format("http://{0}:{1}", ElasticsearchConfiguration.Settings().Host, Test.Default.Port)), this._settings.Uri); Assert.AreEqual(ElasticsearchConfiguration.DefaultIndex, ElasticsearchConfiguration.DefaultIndex); Assert.AreEqual(this._settings.MaximumAsyncConnections, Test.Default.MaximumAsyncConnections); } - [Test] - public void TestSettingsWithUri() - { - var uri = new Uri(string.Format("http://{0}:{1}", ElasticsearchConfiguration.Settings().Host, ElasticsearchConfiguration.Settings().Port)); - var settings = new ConnectionSettings(uri, "index"); - Assert.AreEqual(settings.Host, ElasticsearchConfiguration.Settings().Host); - Assert.AreEqual(settings.Port, Test.Default.Port); - Assert.AreEqual(uri, this._settings.Uri); - } + [Test] public void TestConnectSuccess() { diff --git a/src/Tests/Nest.Tests.Unit/Nest.Tests.Unit.csproj b/src/Tests/Nest.Tests.Unit/Nest.Tests.Unit.csproj index d5b3e07b7b4..278ae2f1e85 100644 --- a/src/Tests/Nest.Tests.Unit/Nest.Tests.Unit.csproj +++ b/src/Tests/Nest.Tests.Unit/Nest.Tests.Unit.csproj @@ -66,8 +66,9 @@ ..\..\..\dep\AutoPoco.1.0.0.0\lib\AutoPoco.dll - - ..\..\..\dep\FakeItEasy.1.17.0\lib\net40\FakeItEasy.dll + + False + ..\..\..\dep\FakeItEasy.1.15.0\lib\net40\FakeItEasy.dll ..\..\..\dep\FluentAssertions.2.0.0.1\lib\net40\FluentAssertions.dll diff --git a/src/Tests/Nest.Tests.Unit/packages.config b/src/Tests/Nest.Tests.Unit/packages.config index 9f11528b2e7..428c3b49cbf 100644 --- a/src/Tests/Nest.Tests.Unit/packages.config +++ b/src/Tests/Nest.Tests.Unit/packages.config @@ -1,7 +1,7 @@  - + From ed4e56f5ef73ba28d215c795025061229a69464d Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Tue, 4 Mar 2014 20:23:42 +0100 Subject: [PATCH 02/15] introduced Transport middle man --- .../ElasticsearchHttpClient.cs | 39 ++-- .../RestRequest.cs | 8 +- .../ThriftConnection.cs | 48 ++--- .../Connection/RetryTests.cs | 10 +- ...lTests.cs => StaticConnectionPoolTests.cs} | 6 +- .../Elasticsearch.Net.Tests.Unit.csproj | 3 +- .../Stubs/NoopConnection.cs | 35 +-- .../Connection/ConnectionPool.cs | 5 +- .../Connection/HttpConnection.cs | 202 +++++++++++++++--- .../Connection/IConnection.cs | 24 +-- .../Elasticsearch.Net.csproj | 2 +- src/Elasticsearch.Net/ElasticsearchClient.cs | 99 +-------- src/Nest/ElasticClient.cs | 1 + .../Core/Domain/Connection/ConnectionTests.cs | 82 +++---- 14 files changed, 309 insertions(+), 255 deletions(-) rename src/Elasticsearch.Net.Tests.Unit/Connection/{FixedNodesConnectionPoolTests.cs => StaticConnectionPoolTests.cs} (95%) diff --git a/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs b/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs index 9eb71cebaf0..894b7cf5f48 100644 --- a/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs +++ b/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs @@ -17,10 +17,9 @@ public ElasticsearchHttpClient(IConnectionConfigurationValues settings) _settings = settings; } - public ElasticsearchResponse DoSyncRequest(string method, string path, byte[] data = null) + public ElasticsearchResponse DoSyncRequest(string method, Uri uri, byte[] data = null) { var client = new System.Net.Http.HttpClient(); - var uri = new Uri(this._settings.ConnectionPool.GetNext(), path); HttpResponseMessage response = null; byte[] result = null; HttpContent content = null; @@ -54,68 +53,68 @@ public ElasticsearchResponse DoSyncRequest(string method, string path, byte[] da - public Task Get(string path) + public Task Get(Uri uri) { throw new NotImplementedException(); } - public ElasticsearchResponse GetSync(string path) + public ElasticsearchResponse GetSync(Uri uri) { - return this.DoSyncRequest("get", path); + return this.DoSyncRequest("get", uri); } - public Task Head(string path) + public Task Head(Uri uri) { throw new NotImplementedException(); } - public ElasticsearchResponse HeadSync(string path) + public ElasticsearchResponse HeadSync(Uri uri) { - return this.DoSyncRequest("head", path); + return this.DoSyncRequest("head", uri); throw new NotImplementedException(); } - public Task Post(string path, byte[] data) + public Task Post(Uri uri, byte[] data) { throw new NotImplementedException(); } - public ElasticsearchResponse PostSync(string path, byte[] data) + public ElasticsearchResponse PostSync(Uri uri, byte[] data) { - return this.DoSyncRequest("post", path, data); + return this.DoSyncRequest("post", uri, data); throw new NotImplementedException(); } - public Task Put(string path, byte[] data) + public Task Put(Uri uri, byte[] data) { throw new NotImplementedException(); } - public ElasticsearchResponse PutSync(string path, byte[] data) + public ElasticsearchResponse PutSync(Uri uri, byte[] data) { - return this.DoSyncRequest("put", path, data); + return this.DoSyncRequest("put", uri, data); throw new NotImplementedException(); } - public Task Delete(string path) + public Task Delete(Uri uri) { throw new NotImplementedException(); } - public ElasticsearchResponse DeleteSync(string path) + public ElasticsearchResponse DeleteSync(Uri uri) { - return this.DoSyncRequest("delete", path); + return this.DoSyncRequest("delete", uri); throw new NotImplementedException(); } - public Task Delete(string path, byte[] data) + public Task Delete(Uri uri, byte[] data) { throw new NotImplementedException(); } - public ElasticsearchResponse DeleteSync(string path, byte[] data) + public ElasticsearchResponse DeleteSync(Uri uri, byte[] data) { - return this.DoSyncRequest("delete", path, data); + return this.DoSyncRequest("delete", uri, data); throw new NotImplementedException(); } } diff --git a/src/Connections/Elasticsearch.Net.Connection.Thrift/RestRequest.cs b/src/Connections/Elasticsearch.Net.Connection.Thrift/RestRequest.cs index 14e03e50496..13a2ed25f55 100644 --- a/src/Connections/Elasticsearch.Net.Connection.Thrift/RestRequest.cs +++ b/src/Connections/Elasticsearch.Net.Connection.Thrift/RestRequest.cs @@ -19,7 +19,7 @@ internal class RestRequest : TBase private Dictionary headers; private Method method; private Dictionary parameters; - private string uri; + private Uri uri; public Method Method { @@ -31,7 +31,7 @@ public Method Method } } - public string Uri + public Uri Uri { get { return uri; } set @@ -100,7 +100,7 @@ public void Read(TProtocol iprot) case 2: if (field.Type == TType.String) { - uri = iprot.ReadString(); + uri = new Uri(iprot.ReadString()); __isset.uri = true; } else @@ -194,7 +194,7 @@ public void Write(TProtocol oprot) field.Type = TType.String; field.ID = 2; oprot.WriteFieldBegin(field); - oprot.WriteString(uri); + oprot.WriteString(uri.PathAndQuery); oprot.WriteFieldEnd(); } if (parameters != null && __isset.parameters) diff --git a/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs b/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs index 068a4e6f605..e3d86700769 100644 --- a/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs +++ b/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs @@ -41,11 +41,11 @@ public ThriftConnection(IConnectionConfigurationValues connectionSettings) #region IConnection Members - public Task Get(string path) + public Task Get(Uri uri) { var restRequest = new RestRequest(); restRequest.Method = Method.GET; - restRequest.Uri = path; + restRequest.Uri = uri; restRequest.Headers = new Dictionary(); restRequest.Headers.Add("Content-Type", "application/json"); @@ -55,11 +55,11 @@ public Task Get(string path) }); } - public Task Head(string path) + public Task Head(Uri uri) { var restRequest = new RestRequest(); restRequest.Method = Method.HEAD; - restRequest.Uri = path; + restRequest.Uri = uri; restRequest.Headers = new Dictionary(); restRequest.Headers.Add("Content-Type", "application/json"); @@ -69,33 +69,33 @@ public Task Head(string path) }); } - public ElasticsearchResponse GetSync(string path) + public ElasticsearchResponse GetSync(Uri uri) { var restRequest = new RestRequest(); restRequest.Method = Method.GET; - restRequest.Uri = path; + restRequest.Uri = uri; restRequest.Headers = new Dictionary(); restRequest.Headers.Add("Content-Type", "application/json"); return this.Execute(restRequest); } - public ElasticsearchResponse HeadSync(string path) + public ElasticsearchResponse HeadSync(Uri uri) { var restRequest = new RestRequest(); restRequest.Method = Method.HEAD; - restRequest.Uri = path; + restRequest.Uri = uri; restRequest.Headers = new Dictionary(); restRequest.Headers.Add("Content-Type", "application/json"); return this.Execute(restRequest); } - public Task Post(string path, byte[] data) + public Task Post(Uri uri, byte[] data) { var restRequest = new RestRequest(); restRequest.Method = Method.POST; - restRequest.Uri = path; + restRequest.Uri = uri; restRequest.Body = data; restRequest.Headers = new Dictionary(); @@ -105,11 +105,11 @@ public Task Post(string path, byte[] data) return this.Execute(restRequest); }); } - public Task Put(string path, byte[] data) + public Task Put(Uri uri, byte[] data) { var restRequest = new RestRequest(); restRequest.Method = Method.PUT; - restRequest.Uri = path; + restRequest.Uri = uri; restRequest.Body = data; restRequest.Headers = new Dictionary(); @@ -119,11 +119,11 @@ public Task Put(string path, byte[] data) return this.Execute(restRequest); }); } - public Task Delete(string path, byte[] data) + public Task Delete(Uri uri, byte[] data) { var restRequest = new RestRequest(); restRequest.Method = Method.DELETE; - restRequest.Uri = path; + restRequest.Uri = uri; restRequest.Body = data; restRequest.Headers = new Dictionary(); @@ -134,33 +134,33 @@ public Task Delete(string path, byte[] data) }); } - public ElasticsearchResponse PostSync(string path, byte[] data) + public ElasticsearchResponse PostSync(Uri uri, byte[] data) { var restRequest = new RestRequest(); restRequest.Method = Method.POST; - restRequest.Uri = path; + restRequest.Uri = uri; restRequest.Body = data; restRequest.Headers = new Dictionary(); restRequest.Headers.Add("Content-Type", "application/json"); return this.Execute(restRequest); } - public ElasticsearchResponse PutSync(string path, byte[] data) + public ElasticsearchResponse PutSync(Uri uri, byte[] data) { var restRequest = new RestRequest(); restRequest.Method = Method.PUT; - restRequest.Uri = path; + restRequest.Uri = uri; restRequest.Body = data; restRequest.Headers = new Dictionary(); restRequest.Headers.Add("Content-Type", "application/json"); return this.Execute(restRequest); } - public Task Delete(string path) + public Task Delete(Uri uri) { var restRequest = new RestRequest(); restRequest.Method = Method.DELETE; - restRequest.Uri = path; + restRequest.Uri = uri; restRequest.Headers = new Dictionary(); restRequest.Headers.Add("Content-Type", "application/json"); @@ -170,21 +170,21 @@ public Task Delete(string path) }); } - public ElasticsearchResponse DeleteSync(string path) + public ElasticsearchResponse DeleteSync(Uri uri) { var restRequest = new RestRequest(); restRequest.Method = Method.DELETE; - restRequest.Uri = path; + restRequest.Uri = uri; restRequest.Headers = new Dictionary(); restRequest.Headers.Add("Content-Type", "application/json"); return this.Execute(restRequest); } - public ElasticsearchResponse DeleteSync(string path, byte[] data) + public ElasticsearchResponse DeleteSync(Uri uri, byte[] data) { var restRequest = new RestRequest(); restRequest.Method = Method.DELETE; - restRequest.Uri = path; + restRequest.Uri = uri; restRequest.Body = data; restRequest.Headers = new Dictionary(); diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs index 75124389237..7f8bb695f2e 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs @@ -30,7 +30,7 @@ public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() { fake.Provide(_connectionConfig); - var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Throws(); var client = fake.Resolve(); @@ -50,7 +50,7 @@ public void ShouldNotRetryOn400() { var settings = fake.Provide(_connectionConfig); - var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 400, "GET", "/", null, null)); var client = fake.Resolve(); @@ -68,7 +68,7 @@ public void ShouldNotRetryOn500() { var settings = fake.Provide(_connectionConfig); - var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 500, "GET", "/", null, null)); var client = fake.Resolve(); @@ -86,7 +86,7 @@ public void ShouldNotRetryOn201() { var settings = fake.Provide(_connectionConfig); - var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 201, "GET", "/", null, null)); var client = fake.Resolve(); @@ -104,7 +104,7 @@ public void ShouldRetryOn503() { var settings = fake.Provide(_connectionConfig); - var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 503, "GET", "/", null, null)); var client = fake.Resolve(); diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/FixedNodesConnectionPoolTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolTests.cs similarity index 95% rename from src/Elasticsearch.Net.Tests.Unit/Connection/FixedNodesConnectionPoolTests.cs rename to src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolTests.cs index dc9bca7feea..a853da8b2b7 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/FixedNodesConnectionPoolTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolTests.cs @@ -27,9 +27,6 @@ public class StaticConnectionPoolTests private static readonly int _retries = _uris.Count() - 1; - private readonly ConnectionConfiguration _connectionConfig = new ConnectionConfiguration() - .SetMaxRetries(_retries); - [Test] public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() { @@ -39,7 +36,7 @@ public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() fake.Provide(new ConnectionConfiguration(connectionPool)); - var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Throws(); var client = fake.Resolve(); @@ -73,6 +70,7 @@ public void AllNodesMustBeTriedOnce() foreach (var c in calls) c.Throws(); + fake.Provide(fake.Resolve()); var client = fake.Resolve(); Assert.Throws(()=> client.Info()); diff --git a/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj b/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj index cb7494ce58c..c6a6abcbc08 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj +++ b/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj @@ -59,9 +59,10 @@ - + + diff --git a/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs b/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs index e4a8c9dc306..3e8f0560dec 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs @@ -47,88 +47,93 @@ IConnectionConfigurationValues configValues } - public virtual Task Get(string path) + public virtual Task Get(Uri uri) { - var uri = _configValues.ConnectionPool.GetNext(); - _uriObserver.Observe(uri); - return Task.FromResult(_responseGenerator.Create()); + return DoAsyncRequest(); } - public virtual ElasticsearchResponse GetSync(string path) + public virtual ElasticsearchResponse GetSync(Uri uri1) { var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return _responseGenerator.Create(); } - public virtual Task Head(string path) + public virtual Task Head(Uri uri1) { var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return Task.FromResult(_responseGenerator.Create()); } - public virtual ElasticsearchResponse HeadSync(string path) + public virtual ElasticsearchResponse HeadSync(Uri uri1) { var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return _responseGenerator.Create(); } - public virtual Task Post(string path, byte[] data) + public virtual Task Post(Uri uri1, byte[] data) { var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return Task.FromResult(_responseGenerator.Create()); } - public virtual ElasticsearchResponse PostSync(string path, byte[] data) + public virtual ElasticsearchResponse PostSync(Uri uri1, byte[] data) { var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return _responseGenerator.Create(); } - public virtual Task Put(string path, byte[] data) + public virtual Task Put(Uri uri1, byte[] data) { var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return Task.FromResult(_responseGenerator.Create()); } - public virtual ElasticsearchResponse PutSync(string path, byte[] data) + public virtual ElasticsearchResponse PutSync(Uri uri1, byte[] data) { var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return _responseGenerator.Create(); } - public virtual Task Delete(string path) + public virtual Task Delete(Uri uri1) { var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return Task.FromResult(_responseGenerator.Create()); } - public virtual ElasticsearchResponse DeleteSync(string path) + public virtual ElasticsearchResponse DeleteSync(Uri uri1) { var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return _responseGenerator.Create(); } - public virtual Task Delete(string path, byte[] data) + public virtual Task Delete(Uri uri1, byte[] data) { var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return Task.FromResult(_responseGenerator.Create()); } - public virtual ElasticsearchResponse DeleteSync(string path, byte[] data) + public virtual ElasticsearchResponse DeleteSync(Uri uri1, byte[] data) { var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return _responseGenerator.Create(); } + + private Task DoAsyncRequest() + { + var uri = _configValues.ConnectionPool.GetNext(); + _uriObserver.Observe(uri); + return Task.FromResult(_responseGenerator.Create()); + } } } diff --git a/src/Elasticsearch.Net/Connection/ConnectionPool.cs b/src/Elasticsearch.Net/Connection/ConnectionPool.cs index d4ce362beae..db9acbcb595 100644 --- a/src/Elasticsearch.Net/Connection/ConnectionPool.cs +++ b/src/Elasticsearch.Net/Connection/ConnectionPool.cs @@ -63,10 +63,13 @@ public class StaticConnectionPool : IConnectionPool private int _current = -1; - public StaticConnectionPool(IEnumerable uris) + public StaticConnectionPool(IEnumerable uris, bool randomizeOnStartup = true) { + var rnd = new Random(); uris.ThrowIfEmpty("uris"); _uris = uris.ToList(); + if (randomizeOnStartup) + _uris = _uris.OrderBy((item) => rnd.Next()).ToList(); _uriLookup = _uris.ToDictionary(k=>k, v=> new EndpointState()); } diff --git a/src/Elasticsearch.Net/Connection/HttpConnection.cs b/src/Elasticsearch.Net/Connection/HttpConnection.cs index fcc0f453e20..0eb7788677d 100644 --- a/src/Elasticsearch.Net/Connection/HttpConnection.cs +++ b/src/Elasticsearch.Net/Connection/HttpConnection.cs @@ -1,14 +1,146 @@ using System; using System.Collections.Generic; +using System.Collections.Specialized; using System.IO; +using System.Linq; using System.Net; using System.Text; using System.Threading; using System.Threading.Tasks; +using Elasticsearch.Net.Exceptions; using PUrify; namespace Elasticsearch.Net.Connection { + public interface IHttpTransport + { + ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0); + + Task DoRequestAsync( + string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0); + } + + public class HttpTransport : IHttpTransport + { + private readonly IConnectionConfigurationValues _configurationValues; + private readonly IConnection _connection; + private IElasticsearchSerializer _serializer; + + public HttpTransport(IConnectionConfigurationValues configurationValues, IConnection connection, IElasticsearchSerializer serializer) + { + _connection = connection; + _configurationValues = configurationValues; + this._serializer = serializer ?? new ElasticsearchDefaultSerializer(); + } + + /// + /// Returns either the fixed maximum set on the connection configuration settings or the number of nodes + /// + private int GetMaximumRetries() + { + return this._configurationValues.MaxRetries.GetValueOrDefault(this._configurationValues.ConnectionPool.MaxRetries); + } + + public ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0) + { + if (queryString != null) + path += queryString.ToQueryString(); + + var maxRetries = this.GetMaximumRetries(); + var postData = PostData(data); + ElasticsearchResponse response = null; + var exceptionMessage = "Unable to perform request: '{0} {1}' on any of the nodes after retrying {2} times.".F( method, path, retried); + var baseUri = this._configurationValues.ConnectionPool.GetNext(); + var uri = new Uri(baseUri, path); + try + { + response = DoSyncRequest(method, uri, postData); + if (response != null && response.SuccessOrKnownError) + return response; + } + catch (Exception e) + { + if (retried < maxRetries) + return this.DoRequest(method, path, data, null, ++retried); + else + throw new OutOfNodesException(exceptionMessage, e); + } + if (retried < maxRetries) + return this.DoRequest(method, path, data, null, ++retried); + + throw new OutOfNodesException(exceptionMessage); + } + + public Task DoRequestAsync( + string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0) + { + if (queryString != null) + path += queryString.ToQueryString(); + + var postData = PostData(data); + var baseUri = this._configurationValues.ConnectionPool.GetNext(); + var uri = new Uri(baseUri, path); + + switch (method.ToLowerInvariant()) + { + case "post": return this._connection.Post(uri, postData); + case "put": return this._connection.Put(uri, postData); + case "delete": + return postData == null || postData.Length == 0 + ? this._connection.Delete(uri) + : this._connection.Delete(uri, postData); + case "head": return this._connection.Head(uri); + case "get": return this._connection.Get(uri); + } + throw new Exception("Unknown HTTP method " + method); + } + + private ElasticsearchResponse DoSyncRequest(string method, Uri uri, byte[] postData) + { + switch (method.ToLowerInvariant()) + { + case "post": + return this._connection.PostSync(uri, postData); + case "put": + return this._connection.PutSync(uri, postData); + case "delete": + return postData == null || postData.Length == 0 + ? this._connection.DeleteSync(uri) + : this._connection.DeleteSync(uri, postData); + case "head": + return this._connection.HeadSync(uri); + case "get": + return this._connection.GetSync(uri); + } + return null; + } + + private byte[] PostData(object data) + { + var bytes = data as byte[]; + if (bytes != null) + return bytes; + + var s = data as string; + if (s != null) + return s.Utf8Bytes(); + if (data == null) return null; + var ss = data as IEnumerable; + if (ss != null) + return (string.Join("\n", ss) + "\n").Utf8Bytes(); + + var so = data as IEnumerable; + if (so == null) + return this._serializer.Serialize(data); + var joined = string.Join("\n", so + .Select(soo => this._serializer.Serialize(soo, SerializationFormatting.None).Utf8String())) + "\n"; + return joined.Utf8Bytes(); + } + } + + + + public class HttpConnection : IConnection { const int BUFFER_SIZE = 1024; @@ -37,64 +169,64 @@ public HttpConnection(IConnectionConfigurationValues settings) this._enableTrace = settings.TraceEnabled; } - public ElasticsearchResponse GetSync(string path) + public ElasticsearchResponse GetSync(Uri uri) { - return this.HeaderOnlyRequest(path, "GET"); + return this.HeaderOnlyRequest(uri, "GET"); } - public ElasticsearchResponse HeadSync(string path) + public ElasticsearchResponse HeadSync(Uri uri) { - return this.HeaderOnlyRequest(path, "HEAD"); + return this.HeaderOnlyRequest(uri, "HEAD"); } - public ElasticsearchResponse PostSync(string path, byte[] data) + public ElasticsearchResponse PostSync(Uri uri, byte[] data) { - return this.BodyRequest(path, data, "POST"); + return this.BodyRequest(uri, data, "POST"); } - public ElasticsearchResponse PutSync(string path, byte[] data) + public ElasticsearchResponse PutSync(Uri uri, byte[] data) { - return this.BodyRequest(path, data, "PUT"); + return this.BodyRequest(uri, data, "PUT"); } - public ElasticsearchResponse DeleteSync(string path) + public ElasticsearchResponse DeleteSync(Uri uri) { - var connection = this.CreateConnection(path, "DELETE"); + var connection = this.CreateConnection(uri, "DELETE"); return this.DoSynchronousRequest(connection); } - public ElasticsearchResponse DeleteSync(string path, byte[] data) + public ElasticsearchResponse DeleteSync(Uri uri, byte[] data) { - var connection = this.CreateConnection(path, "DELETE"); + var connection = this.CreateConnection(uri, "DELETE"); return this.DoSynchronousRequest(connection, data); } - public Task Get(string path) + public Task Get(Uri uri) { - var r = this.CreateConnection(path, "GET"); + var r = this.CreateConnection(uri, "GET"); return this.DoAsyncRequest(r); } - public Task Head(string path) + public Task Head(Uri uri) { - var r = this.CreateConnection(path, "HEAD"); + var r = this.CreateConnection(uri, "HEAD"); return this.DoAsyncRequest(r); } - public Task Post(string path, byte[] data) + public Task Post(Uri uri, byte[] data) { - var r = this.CreateConnection(path, "POST"); + var r = this.CreateConnection(uri, "POST"); return this.DoAsyncRequest(r, data); } - public Task Put(string path, byte[] data) + public Task Put(Uri uri, byte[] data) { - var r = this.CreateConnection(path, "PUT"); + var r = this.CreateConnection(uri, "PUT"); return this.DoAsyncRequest(r, data); } - public Task Delete(string path, byte[] data) + public Task Delete(Uri uri, byte[] data) { - var r = this.CreateConnection(path, "DELETE"); + var r = this.CreateConnection(uri, "DELETE"); return this.DoAsyncRequest(r, data); } - public Task Delete(string path) + public Task Delete(Uri uri) { - var r = this.CreateConnection(path, "DELETE"); + var r = this.CreateConnection(uri, "DELETE"); return this.DoAsyncRequest(r); } @@ -110,22 +242,22 @@ private static void ThreadTimeoutCallback(object state, bool timedOut) } } - private ElasticsearchResponse HeaderOnlyRequest(string path, string method) + private ElasticsearchResponse HeaderOnlyRequest(Uri uri, string method) { - var connection = this.CreateConnection(path, method); + var connection = this.CreateConnection(uri, method); return this.DoSynchronousRequest(connection); } - private ElasticsearchResponse BodyRequest(string path, byte[] data, string method) + private ElasticsearchResponse BodyRequest(Uri uri, byte[] data, string method) { - var connection = this.CreateConnection(path, method); + var connection = this.CreateConnection(uri, method); return this.DoSynchronousRequest(connection, data); } - protected virtual HttpWebRequest CreateConnection(string path, string method) + protected virtual HttpWebRequest CreateConnection(Uri uri, string method) { - var myReq = this.CreateWebRequest(path, method); + var myReq = this.CreateWebRequest(uri, method); this.SetBasicAuthorizationIfNeeded(myReq); this.SetProxyIfNeeded(myReq); return myReq; @@ -156,12 +288,14 @@ private void SetBasicAuthorizationIfNeeded(HttpWebRequest myReq) //} } - protected virtual HttpWebRequest CreateWebRequest(string path, string method) + protected virtual HttpWebRequest CreateWebRequest(Uri uri, string method) { - var url = this._CreateUriString(path); + //TODO append global querystring + //var url = this._CreateUriString(path); - var myReq = (HttpWebRequest)WebRequest.Create(url); - if (!path.StartsWith("_cat")) + var myReq = (HttpWebRequest)WebRequest.Create(uri); + //TODO move this to transport + if (!uri.AbsolutePath.StartsWith("_cat")) { myReq.Accept = "application/json"; myReq.ContentType = "application/json"; diff --git a/src/Elasticsearch.Net/Connection/IConnection.cs b/src/Elasticsearch.Net/Connection/IConnection.cs index 64788a24297..2ad2e860735 100644 --- a/src/Elasticsearch.Net/Connection/IConnection.cs +++ b/src/Elasticsearch.Net/Connection/IConnection.cs @@ -5,22 +5,22 @@ namespace Elasticsearch.Net.Connection { public interface IConnection { - Task Get(string path); - ElasticsearchResponse GetSync(string path); + Task Get(Uri uri); + ElasticsearchResponse GetSync(Uri uri); - Task Head(string path); - ElasticsearchResponse HeadSync(string path); + Task Head(Uri uri); + ElasticsearchResponse HeadSync(Uri uri); - Task Post(string path, byte[] data); - ElasticsearchResponse PostSync(string path, byte[] data); + Task Post(Uri uri, byte[] data); + ElasticsearchResponse PostSync(Uri uri, byte[] data); - Task Put(string path, byte[] data); - ElasticsearchResponse PutSync(string path, byte[] data); + Task Put(Uri uri, byte[] data); + ElasticsearchResponse PutSync(Uri uri, byte[] data); - Task Delete(string path); - ElasticsearchResponse DeleteSync(string path); + Task Delete(Uri uri); + ElasticsearchResponse DeleteSync(Uri uri); - Task Delete(string path, byte[] data); - ElasticsearchResponse DeleteSync(string path, byte[] data); + Task Delete(Uri uri, byte[] data); + ElasticsearchResponse DeleteSync(Uri uri, byte[] data); } } diff --git a/src/Elasticsearch.Net/Elasticsearch.Net.csproj b/src/Elasticsearch.Net/Elasticsearch.Net.csproj index 4a645b151e1..80a413cc86d 100644 --- a/src/Elasticsearch.Net/Elasticsearch.Net.csproj +++ b/src/Elasticsearch.Net/Elasticsearch.Net.csproj @@ -44,7 +44,7 @@ - + diff --git a/src/Elasticsearch.Net/ElasticsearchClient.cs b/src/Elasticsearch.Net/ElasticsearchClient.cs index 2ba8adc864b..39b5108cf14 100644 --- a/src/Elasticsearch.Net/ElasticsearchClient.cs +++ b/src/Elasticsearch.Net/ElasticsearchClient.cs @@ -15,10 +15,12 @@ public partial class ElasticsearchClient : IElasticsearchClient public IConnectionConfigurationValues Settings { get; protected set; } public IElasticsearchSerializer Serializer { get; protected set; } protected IStringifier Stringifier { get; set; } + protected IHttpTransport Transport { get; set; } public ElasticsearchClient( IConnectionConfigurationValues settings, IConnection connection = null, + IHttpTransport transport = null, IElasticsearchSerializer serializer = null, IStringifier stringifier = null ) @@ -30,6 +32,7 @@ public ElasticsearchClient( this.Connection = connection ?? new HttpConnection(settings); this.Serializer = serializer ?? new ElasticsearchDefaultSerializer(); ((IConnectionConfigurationValues) this.Settings).Serializer = this.Serializer; + this.Transport = transport ?? new HttpTransport(settings, this.Connection, this.Serializer); this.Stringifier = stringifier ?? new Stringifier(); } @@ -56,105 +59,15 @@ public string Encoded(object o) } - protected ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0) + protected ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null) { - if (queryString != null) - path += queryString.ToQueryString(); - - var maxRetries = this.GetMaximumRetries(); - var postData = PostData(data); - ElasticsearchResponse response = null; - var exceptionMessage = "Unable to perform request: '{0} {1}' on any of the nodes after retrying {2} times.".F( - method, path, retried); - try - { - response = DoSyncRequest(method, path, postData); - if (response != null && response.SuccessOrKnownError) - return response; - } - catch (Exception e) - { - if (retried < maxRetries) - return this.DoRequest(method, path, data, queryString, ++retried); - else - throw new OutOfNodesException(exceptionMessage, e); - } - if (retried < maxRetries) - return this.DoRequest(method, path, data, queryString, ++retried); - - throw new OutOfNodesException(exceptionMessage); - } - - /// - /// Returns either the fixed maximum set on the connection configuration settings or the number of nodes - /// - private int GetMaximumRetries() - { - return this.Settings.MaxRetries.GetValueOrDefault(this.Settings.ConnectionPool.MaxRetries); + return this.Transport.DoRequest(method, path, data, queryString); } - private ElasticsearchResponse DoSyncRequest(string method, string path, byte[] postData) - { - switch (method.ToLowerInvariant()) - { - case "post": - return this.Connection.PostSync(path, postData); - case "put": - return this.Connection.PutSync(path, postData); - case "delete": - return postData == null || postData.Length == 0 - ? this.Connection.DeleteSync(path) - : this.Connection.DeleteSync(path, postData); - case "head": - return this.Connection.HeadSync(path); - case "get": - return this.Connection.GetSync(path); - } - return null; - } - protected Task DoRequestAsync(string method, string path, object data = null, NameValueCollection queryString = null) { - if (queryString != null) - path += queryString.ToQueryString(); - - var postData = PostData(data); - - switch (method.ToLowerInvariant()) - { - case "post": return this.Connection.Post(path, postData); - case "put": return this.Connection.Put(path, postData); - case "delete": - return postData == null || postData.Length == 0 - ? this.Connection.Delete(path) - : this.Connection.Delete(path, postData); - case "head": return this.Connection.Head(path); - case "get": return this.Connection.Get(path); - } - throw new Exception("Unknown HTTP method " + method); - } - - private byte[] PostData(object data) - { - var bytes = data as byte[]; - if (bytes != null) - return bytes; - - var s = data as string; - if (s != null) - return s.Utf8Bytes(); - if (data == null) return null; - var ss = data as IEnumerable; - if (ss != null) - return (string.Join("\n", ss) + "\n").Utf8Bytes(); - - var so = data as IEnumerable; - if (so == null) - return this.Serializer.Serialize(data); - var joined = string.Join("\n", so - .Select(soo => this.Serializer.Serialize(soo, SerializationFormatting.None).Utf8String())) + "\n"; - return joined.Utf8Bytes(); + return this.Transport.DoRequestAsync(method, path, data, queryString); } } } diff --git a/src/Nest/ElasticClient.cs b/src/Nest/ElasticClient.cs index 14f85c3fe12..a0d51d2d3f6 100644 --- a/src/Nest/ElasticClient.cs +++ b/src/Nest/ElasticClient.cs @@ -35,6 +35,7 @@ public ElasticClient(IConnectionSettingsValues settings, IConnection connection this.Raw = new ElasticsearchClient( this._connectionSettings, this.Connection, + null, //default transport this.Serializer, stringifier ); diff --git a/src/Tests/Nest.Tests.Unit/Core/Domain/Connection/ConnectionTests.cs b/src/Tests/Nest.Tests.Unit/Core/Domain/Connection/ConnectionTests.cs index 3a047220816..99d59f58bb8 100644 --- a/src/Tests/Nest.Tests.Unit/Core/Domain/Connection/ConnectionTests.cs +++ b/src/Tests/Nest.Tests.Unit/Core/Domain/Connection/ConnectionTests.cs @@ -6,53 +6,53 @@ namespace Nest.Tests.Unit.Domain.Connection { - using System.Net; + using System.Net; - public class TestConnection : HttpConnection - { - public TestConnection(IConnectionSettingsValues settings) - : base(settings) { } + public class TestConnection : HttpConnection + { + public TestConnection(IConnectionSettingsValues settings) + : base(settings) { } - public HttpWebRequest GetConnection(string path, string method) - { - return base.CreateConnection(path, method); - } - } + public HttpWebRequest GetConnection(string path, string method) + { + return base.CreateConnection(new Uri(new Uri("http://localhost"), path), method); + } + } - [TestFixture] - public class ConnectionTests : BaseJsonTests - { - [Test] - public void CanCreateConnectionWithCustomQueryStringParameters() - { - // Arrange - var uri = new Uri("http://localhost"); - var query = new NameValueCollection { { "authToken", "ABCDEFGHIJK" } }; - var connectionSettings = new ConnectionSettings(uri, "index").SetGlobalQueryStringParameters(query); - var connection = new TestConnection(connectionSettings); + [TestFixture] + public class ConnectionTests : BaseJsonTests + { + [Test] + public void CanCreateConnectionWithCustomQueryStringParameters() + { + // Arrange + var uri = new Uri("http://localhost"); + var query = new NameValueCollection { { "authToken", "ABCDEFGHIJK" } }; + var connectionSettings = new ConnectionSettings(uri, "index").SetGlobalQueryStringParameters(query); + var connection = new TestConnection(connectionSettings); - // Act - var req = connection.GetConnection("", "GET"); + // Act + var req = connection.GetConnection("", "GET"); - // Assert - Assert.AreEqual(req.Address.ToString(), "http://localhost/?authToken=ABCDEFGHIJK"); - } + // Assert + Assert.AreEqual(req.Address.ToString(), "http://localhost/?authToken=ABCDEFGHIJK"); + } - [Test] - public void CanCreateConnectionWithPathAndCustomQueryStringParameters() - { - // Arrange - var uri = new Uri("http://localhost:9000"); - var query = new NameValueCollection { { "authToken", "ABCDEFGHIJK" } }; - var connectionSettings = new ConnectionSettings(uri, "index").SetGlobalQueryStringParameters(query); - var connection = new TestConnection(connectionSettings); + [Test] + public void CanCreateConnectionWithPathAndCustomQueryStringParameters() + { + // Arrange + var uri = new Uri("http://localhost:9000"); + var query = new NameValueCollection { { "authToken", "ABCDEFGHIJK" } }; + var connectionSettings = new ConnectionSettings(uri, "index").SetGlobalQueryStringParameters(query); + var connection = new TestConnection(connectionSettings); - // Act - var req = connection.GetConnection("index/", "GET"); + // Act + var req = connection.GetConnection("index/", "GET"); - // Assert - Assert.AreEqual(req.Address.ToString(), "http://localhost:9000/index/?authToken=ABCDEFGHIJK"); - } + // Assert + Assert.AreEqual(req.Address.ToString(), "http://localhost:9000/index/?authToken=ABCDEFGHIJK"); + } [Test] @@ -70,7 +70,7 @@ public void SendStringAsJsonBody() [Test] public void SendAnonymousObjectAsJsonBody() { - var jsonAsString = string.Format("{{{0} \"json_as_a_string\": true{0}}}", System.Environment.NewLine); + var jsonAsString = string.Format("{{{0} \"json_as_a_string\": true{0}}}", System.Environment.NewLine); var result = this._client.Raw.Bulk( new { json_as_a_string = true } , qs => qs @@ -80,5 +80,5 @@ public void SendAnonymousObjectAsJsonBody() StringAssert.EndsWith(":9200/_bulk?replication=async&refresh=true", result.RequestUrl); Assert.AreEqual(jsonAsString, result.Request.Utf8String()); } - } + } } \ No newline at end of file From b6a908cfcbdfb2a2a2856c75ea154d86c3506563 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 6 Mar 2014 15:54:34 +0100 Subject: [PATCH 03/15] implemented static connection pool --- .../CodeGeneration.LowLevelClient/Program.cs | 8 + .../Connection/RetryTests.cs | 7 +- .../Connection/StaticConnectionPoolTests.cs | 287 ++++++++++++++++-- .../Stubs/NoopConnection.cs | 38 +-- .../Connection/ConnectionPool.cs | 96 +++--- .../Connection/HttpConnection.cs | 17 +- .../YamlTestsBase.cs | 3 +- 7 files changed, 360 insertions(+), 96 deletions(-) diff --git a/src/CodeGeneration/CodeGeneration.LowLevelClient/Program.cs b/src/CodeGeneration/CodeGeneration.LowLevelClient/Program.cs index 162294dac92..fecd3e42799 100644 --- a/src/CodeGeneration/CodeGeneration.LowLevelClient/Program.cs +++ b/src/CodeGeneration/CodeGeneration.LowLevelClient/Program.cs @@ -27,6 +27,14 @@ static void Main(string[] args) ApiGenerator.GenerateRawDispatch(spec); Console.WriteLine("Found {0} api documentation endpoints", spec.Endpoints.Count()); + + var x = GetT(); + } + + + static T GetT() + { + return default(T); } } } diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs index 7f8bb695f2e..686937f5f1e 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs @@ -29,7 +29,8 @@ public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() using (var fake = new AutoFake(callsDoNothing: true)) { fake.Provide(_connectionConfig); - + fake.Provide(fake.Resolve()); + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Throws(); @@ -49,6 +50,7 @@ public void ShouldNotRetryOn400() using (var fake = new AutoFake(callsDoNothing: true)) { var settings = fake.Provide(_connectionConfig); + fake.Provide(fake.Resolve()); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 400, "GET", "/", null, null)); @@ -67,6 +69,7 @@ public void ShouldNotRetryOn500() using (var fake = new AutoFake(callsDoNothing: true)) { var settings = fake.Provide(_connectionConfig); + fake.Provide(fake.Resolve()); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 500, "GET", "/", null, null)); @@ -85,6 +88,7 @@ public void ShouldNotRetryOn201() using (var fake = new AutoFake(callsDoNothing: true)) { var settings = fake.Provide(_connectionConfig); + fake.Provide(fake.Resolve()); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 201, "GET", "/", null, null)); @@ -103,6 +107,7 @@ public void ShouldRetryOn503() using (var fake = new AutoFake(callsDoNothing: true)) { var settings = fake.Provide(_connectionConfig); + fake.Provide(fake.Resolve()); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 503, "GET", "/", null, null)); diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolTests.cs index a853da8b2b7..212105bb233 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolTests.cs @@ -2,8 +2,11 @@ using System.Collections.Generic; using System.Linq; using System.Net; +using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; +using Autofac; +using Autofac.Core.Activators.Reflection; using Autofac.Extras.FakeItEasy; using Elasticsearch.Net.Connection; using Elasticsearch.Net.Exceptions; @@ -24,29 +27,47 @@ public class StaticConnectionPoolTests new Uri("http://localhost:9202"), new Uri("http://localhost:9203"), }; - private static readonly int _retries = _uris.Count() - 1; + private readonly StaticConnectionPool _connectionPool; + private readonly ConnectionConfiguration _config; + + public StaticConnectionPoolTests() + { + _connectionPool = new StaticConnectionPool(_uris); + _config = new ConnectionConfiguration(_connectionPool); + } [Test] public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() { using (var fake = new AutoFake(callsDoNothing: true)) { - var connectionPool = new StaticConnectionPool(_uris); + //set up connection configuration that holds a connection pool + //with '_uris' (see the constructor) + fake.Provide(_config); + //prove a real HttpTransport with its unspecified dependencies + //as fakes + fake.Provide(fake.Resolve()); - fake.Provide(new ConnectionConfiguration(connectionPool)); - + //set up fake for a call on IConnection.GetSync so that it always throws + //an exception var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Throws(); + //create a real ElasticsearchClient with it unspecified dependencies + //as fakes var client = fake.Resolve(); //we don't specify our own value so it should be up to the connection pool client.Settings.MaxRetries.Should().Be(null); - + + //the default for the connection pool should be the number of nodes - 1; client.Settings.ConnectionPool.MaxRetries.Should().Be(_retries); + //calling GET / should throw an OutOfNodesException because our fake + //will always throw an exception Assert.Throws(()=> client.Info()); + //the GetSync method must in total have been called the number of nodes times. getCall.MustHaveHappened(Repeated.Exactly.Times(_retries + 1)); } @@ -57,24 +78,27 @@ public void AllNodesMustBeTriedOnce() { using (var fake = new AutoFake(callsDoNothing: true)) { - var connectionPool = new StaticConnectionPool(_uris); - fake.Provide(new ConnectionConfiguration(connectionPool)); + //set up client with fakes + fake.Provide(_config); var connection = fake.Resolve(); - + fake.Provide(connection); + fake.Provide(fake.Resolve()); + + //provide a unique fake for each node. var calls = _uris.Select(u => - A.CallTo(()=> fake.Resolve().Observe(A.That.Matches(uu=>uu.Port == u.Port))) + A.CallTo(()=> fake.Resolve() + .Observe(A.That.Matches(uu=>uu.Port == u.Port))) ).ToList(); - fake.Provide(connection); - + //all of our fakes throw an exception foreach (var c in calls) c.Throws(); - fake.Provide(fake.Resolve()); var client = fake.Resolve(); Assert.Throws(()=> client.Info()); - + + //make sure we've observed an attempt on all the nodes foreach (var call in calls) call.MustHaveHappened(Repeated.Exactly.Once); @@ -82,32 +106,243 @@ public void AllNodesMustBeTriedOnce() } [Test] - public void HardRetryLimitTakesPrecedence() + public void HardRetryLimitTakesPrecedenceOverNumberOfNodes() { using (var fake = new AutoFake(callsDoNothing: true)) { - var connectionPool = new StaticConnectionPool(_uris); - fake.Provide(new ConnectionConfiguration(connectionPool) - .SetMaxRetries(7)); - var connection = fake.Resolve(); + //setup config values with a hight retry count + fake.Provide( + new ConnectionConfiguration(_connectionPool) + .SetMaxRetries(7) + ); + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + getCall.Throws(); + + fake.Provide(fake.Resolve()); + + var client = fake.Resolve(); + + Assert.Throws(()=> client.Info()); - var calls = _uris.Select(u => - A.CallTo(()=> fake.Resolve().Observe(A.That.Matches(uu=>uu.Port == u.Port))) - ).ToList(); + //We want to see 8 attempt to do a GET on / + //(original call + retry of 7 == 8) + getCall.MustHaveHappened(Repeated.Exactly.Times(8)); - fake.Provide(connection); + } + } - foreach (var c in calls) - c.Throws(); + [Test] + public void AConnectionMustBeMadeEvenIfAllNodesAreDead() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + //make sure we retry one more time then we have nodes + //original call + 4 retries == 5 + fake.Provide( + new ConnectionConfiguration(_connectionPool) + .SetMaxRetries(4) + ); + //set up our GET to / to return 4 503's followed by a 200 + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + getCall.ReturnsNextFromSequence( + ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 200, "GET", "/", null, null) + ); + + //setup client + fake.Provide(fake.Resolve()); var client = fake.Resolve(); + + //Do not throw because by miracle the 4th retry manages to give back a 200 + //even if all nodes have been marked dead. + Assert.DoesNotThrow(()=> client.Info()); + + //original call + 4 retries == 5 + getCall.MustHaveHappened(Repeated.Exactly.Times(5)); + } + } + + [Test] + public void AllNodesWillBeMarkedDead() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + //set up a fake datetimeprovider + var dateTimeProvider = fake.Resolve(); + fake.Provide(dateTimeProvider); + //create a connectionpool that uses the fake datetimeprovider + var connectionPool = new StaticConnectionPool( + _uris, + dateTimeProvider: dateTimeProvider + ); + var config = new ConnectionConfiguration(connectionPool); + fake.Provide(config); + + //Now() on the fake still means Now() + A.CallTo(()=>dateTimeProvider.Now()).Returns(DateTime.UtcNow); + //Set up individual mocks for each DeadTime(Uri uri,...) call + //where uri matches one of the node ports + var calls = _uris.Select(u => + A.CallTo(()=> dateTimeProvider.DeadTime( + A.That.Matches(uu=>uu.Port == u.Port), + A._ + ))).ToList(); + + //all the fake mark dead calls return 60 seconds into the future + foreach (var call in calls) + call.Returns(DateTime.UtcNow.AddSeconds(60)); + + //When we do a GET on / we always recieve a 503 + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + getCall.Returns( + ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null) + ); + + fake.Provide(fake.Resolve()); + var client = fake.Resolve(); + + //Since we always get a 503 we should see an out of nodes exception Assert.Throws(()=> client.Info()); - //twice because we say we want the retry the call 7 times (original + retry == 8) + //The call should be tried on all the nodes + getCall.MustHaveHappened(Repeated.Exactly.Times(4)); + + //We should see each individual node being marked as dead foreach (var call in calls) - call.MustHaveHappened(Repeated.Exactly.Twice); + call.MustHaveHappened(Repeated.Exactly.Once); + } + } + + [Test] + public void IfAConnectionComesBackToLifeOnItsOwnItShouldBeMarked() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + //Setting up a datetime provider so that can track dead/alive marks + var dateTimeProvider = fake.Resolve(); + A.CallTo(() => dateTimeProvider.Now()).Returns(DateTime.UtcNow); + var markDeadCall = A.CallTo(() => dateTimeProvider.DeadTime(A._, A._)); + var markAliveCall = A.CallTo(() => dateTimeProvider.AliveTime(A._, A._)); + markDeadCall.Returns(DateTime.UtcNow.AddSeconds(60)); + markAliveCall.Returns(new DateTime()); + fake.Provide(dateTimeProvider); + var connectionPool = new StaticConnectionPool( + _uris, + dateTimeProvider: dateTimeProvider); + + //set retries to 4 + fake.Provide( + new ConnectionConfiguration(connectionPool) + .SetMaxRetries(4) + ); + + //fake getsync handler that return a 503 4 times and then a 200 + //this will cause all 4 nodes to be marked dead on the first client call + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + getCall.ReturnsNextFromSequence( + ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 200, "GET", "/", null, null) + ); + + + //provide a transport with all the dependencies resolved + fake.Provide(fake.Resolve()); + //instantiate connection with faked dependencies + var client = fake.Resolve(); + + //Do not throw because by miracle the 4th retry manages to give back a 200 + //even if all nodes have been marked dead. + Assert.DoesNotThrow(()=> client.Info()); + //original call + 4 retries is 5 + getCall.MustHaveHappened(Repeated.Exactly.Times(5)); + //4 nodes must be marked dead + markDeadCall.MustHaveHappened(Repeated.Exactly.Times(4)); + //atleast one of them sprung back to live so markAlive must be called once + markAliveCall.MustHaveHappened(Repeated.Exactly.Times(1)); + + } + } + + [Test] + public void IfAllButOneConnectionDiesSubsequentRequestsMustUseTheOneAliveConnection() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + //Setting up a datetime provider so that we can measure which + //nodes have been marked alive and dead. + //we provide a different fake for the method call with the last node + //as argument. + var dateTimeProvider = fake.Resolve(); + A.CallTo(() => dateTimeProvider.Now()).Returns(DateTime.UtcNow); + var markOthersDeadCall = A.CallTo(() => dateTimeProvider + .DeadTime(A.That.Not.Matches(u=>u.Port == 9203), A._)); + var markLastDead = A.CallTo(() => dateTimeProvider + .DeadTime(A.That.Matches(u=>u.Port == 9203), A._)); + var markOthersAliveCall = A.CallTo(() => dateTimeProvider + .AliveTime(A.That.Not.Matches(u=>u.Port == 9203), A._)); + var markLastAlive = A.CallTo(() => dateTimeProvider + .AliveTime(A.That.Matches(u=>u.Port == 9203), A._)); + markOthersDeadCall.Returns(DateTime.UtcNow.AddSeconds(60)); + markLastAlive.Returns(new DateTime()); + fake.Provide(dateTimeProvider); + + //Creating the connection pool making sure nodes are not randomized + //So we are sure 9203 is that last node in the pool + var connectionPool = new StaticConnectionPool( + _uris, + randomizeOnStartup: false, + dateTimeProvider: dateTimeProvider + ); + var config = new ConnectionConfiguration(connectionPool); + fake.Provide(config); + + // provide a simple fake for synchronous get + var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); + + //The first three tries get a 503 causing the first 3 nodes to be marked dead + //all the subsequent requests should be handled by 9203 which gives a 200 4 times + getCall.ReturnsNextFromSequence( + ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 200, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 200, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 200, "GET", "/", null, null), + ElasticsearchResponse.Create(_config, 200, "GET", "/", null, null) + ); + + //provide a transport with all the dependencies resolved + fake.Provide(fake.Resolve()); + //instantiate connection with faked dependencies + var client = fake.Resolve(); + + //We call the root for each node 4 times, eventhough the first 3 nodes + //give back a timeout the default ammount of retries is 4 (each provided node) + //and the last retry will hit our 9203 node. + Assert.DoesNotThrow(()=> client.Info()); + //These calls should not hit the dead nodes and go straight to the active 9203 + Assert.DoesNotThrow(()=> client.Info()); + Assert.DoesNotThrow(()=> client.Info()); + Assert.DoesNotThrow(()=> client.Info()); + + //The last node should never be marked dead + markLastDead.MustNotHaveHappened(); + //the other nodes should never be marked alive + markOthersAliveCall.MustNotHaveHappened(); + //marking the other 3 nodes dead should only happen once for each + markOthersDeadCall.MustHaveHappened(Repeated.Exactly.Times(3)); + //every time a connection succeeds on a node it will be marked + //alive therefor the last node should be marked alive 4 times + markLastAlive.MustHaveHappened(Repeated.Exactly.Times(4)); } } } diff --git a/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs b/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs index 3e8f0560dec..9d191bb279a 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs @@ -49,89 +49,77 @@ IConnectionConfigurationValues configValues public virtual Task Get(Uri uri) { - return DoAsyncRequest(); + return DoAsyncRequest(uri); } - public virtual ElasticsearchResponse GetSync(Uri uri1) + public virtual ElasticsearchResponse GetSync(Uri uri) { - var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return _responseGenerator.Create(); } - public virtual Task Head(Uri uri1) + public virtual Task Head(Uri uri) { - var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return Task.FromResult(_responseGenerator.Create()); } - public virtual ElasticsearchResponse HeadSync(Uri uri1) + public virtual ElasticsearchResponse HeadSync(Uri uri) { - var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return _responseGenerator.Create(); } - public virtual Task Post(Uri uri1, byte[] data) + public virtual Task Post(Uri uri, byte[] data) { - var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return Task.FromResult(_responseGenerator.Create()); } - public virtual ElasticsearchResponse PostSync(Uri uri1, byte[] data) + public virtual ElasticsearchResponse PostSync(Uri uri, byte[] data) { - var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return _responseGenerator.Create(); } - public virtual Task Put(Uri uri1, byte[] data) + public virtual Task Put(Uri uri, byte[] data) { - var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return Task.FromResult(_responseGenerator.Create()); } - public virtual ElasticsearchResponse PutSync(Uri uri1, byte[] data) + public virtual ElasticsearchResponse PutSync(Uri uri, byte[] data) { - var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return _responseGenerator.Create(); } - public virtual Task Delete(Uri uri1) + public virtual Task Delete(Uri uri) { - var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return Task.FromResult(_responseGenerator.Create()); } - public virtual ElasticsearchResponse DeleteSync(Uri uri1) + public virtual ElasticsearchResponse DeleteSync(Uri uri) { - var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return _responseGenerator.Create(); } - public virtual Task Delete(Uri uri1, byte[] data) + public virtual Task Delete(Uri uri, byte[] data) { - var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return Task.FromResult(_responseGenerator.Create()); } - public virtual ElasticsearchResponse DeleteSync(Uri uri1, byte[] data) + public virtual ElasticsearchResponse DeleteSync(Uri uri, byte[] data) { - var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return _responseGenerator.Create(); } - private Task DoAsyncRequest() + private Task DoAsyncRequest(Uri uri) { - var uri = _configValues.ConnectionPool.GetNext(); _uriObserver.Observe(uri); return Task.FromResult(_responseGenerator.Create()); } diff --git a/src/Elasticsearch.Net/Connection/ConnectionPool.cs b/src/Elasticsearch.Net/Connection/ConnectionPool.cs index db9acbcb595..0090828f9cd 100644 --- a/src/Elasticsearch.Net/Connection/ConnectionPool.cs +++ b/src/Elasticsearch.Net/Connection/ConnectionPool.cs @@ -51,26 +51,54 @@ public void MarkAlive(Uri uri) public class EndpointState { public int _attempts = 0; - public DateTime date = DateTime.UtcNow.AddYears(-1); + public DateTime date = new DateTime(); + } + + + public interface IDateTimeProvider + { + DateTime Now(); + DateTime DeadTime(Uri uri, int attempts); + DateTime AliveTime(Uri uri, int attempts); + } + + public class DateTimeProvider : IDateTimeProvider + { + public DateTime Now() + { + return DateTime.UtcNow; + } + + public DateTime DeadTime(Uri uri, int attempts) + { + return DateTime.UtcNow.AddSeconds(60); + } + + public DateTime AliveTime(Uri uri, int attempts) + { + return new DateTime(); + } } public class StaticConnectionPool : IConnectionPool { private readonly IDictionary _uriLookup; - private readonly IList _uris; + private readonly IList _nodeUris; - public int MaxRetries { get { return _uris.Count - 1; } } + public int MaxRetries { get { return _nodeUris.Count - 1; } } private int _current = -1; + private readonly IDateTimeProvider _dateTimeProvider; - public StaticConnectionPool(IEnumerable uris, bool randomizeOnStartup = true) + public StaticConnectionPool(IEnumerable uris, bool randomizeOnStartup = true, IDateTimeProvider dateTimeProvider = null) { + _dateTimeProvider = dateTimeProvider ?? new DateTimeProvider(); var rnd = new Random(); uris.ThrowIfEmpty("uris"); - _uris = uris.ToList(); + _nodeUris = uris.ToList(); if (randomizeOnStartup) - _uris = _uris.OrderBy((item) => rnd.Next()).ToList(); - _uriLookup = _uris.ToDictionary(k=>k, v=> new EndpointState()); + _nodeUris = _nodeUris.OrderBy((item) => rnd.Next()).ToList(); + _uriLookup = _nodeUris.ToDictionary(k=>k, v=> new EndpointState()); } public Uri GetNext() @@ -80,51 +108,37 @@ public Uri GetNext() do { var c = Interlocked.Increment(ref _current); - var i = c%_uris.Count; - uri = this._uris[i]; + var i = c%_nodeUris.Count; + uri = this._nodeUris[i]; var state = this._uriLookup[uri]; - if (state.date <= Now()) + if (state.date <= _dateTimeProvider.Now()) + { + state._attempts = 0; return uri; - + } + Interlocked.Increment(ref state._attempts); ++attempts; - } while (attempts < _uris.Count); - throw new OutOfNodesException("Tried {0} different nodes".F(attempts)); - } + } while (attempts < _nodeUris.Count); - public virtual DateTime Now() - { - return DateTime.UtcNow; + //could not find a suitable node retrying on node that has been dead longest. + return this._nodeUris[0]; //todo random; } public void MarkDead(Uri uri) - { - //DateTime dateTime = DateTime.UtcNow; - //if (!this._uriLookup.TryGetValue(uri, out dateTime)) - // return; + { + EndpointState state = null; + if (!this._uriLookup.TryGetValue(uri, out state)) + return; + state.date = this._dateTimeProvider.DeadTime(uri, state._attempts); } public void MarkAlive(Uri uri) { - throw new NotImplementedException(); + EndpointState state = null; + if (!this._uriLookup.TryGetValue(uri, out state)) + return; + state.date = this._dateTimeProvider.AliveTime(uri, state._attempts); + state._attempts = 0; } } - - - //public class ConnectionPool - //{ - // public Dictionary - - - // public ConnectionPool(IConnection connection) - // { - // connection.ThrowIfNull("connection"); - // _connection = connection; - // } - - // public Uri GetNextEndpoint() - // { - - // } - - //} } diff --git a/src/Elasticsearch.Net/Connection/HttpConnection.cs b/src/Elasticsearch.Net/Connection/HttpConnection.cs index 0eb7788677d..0d83fc66398 100644 --- a/src/Elasticsearch.Net/Connection/HttpConnection.cs +++ b/src/Elasticsearch.Net/Connection/HttpConnection.cs @@ -51,23 +51,36 @@ public ElasticsearchResponse DoRequest(string method, string path, object data = ElasticsearchResponse response = null; var exceptionMessage = "Unable to perform request: '{0} {1}' on any of the nodes after retrying {2} times.".F( method, path, retried); var baseUri = this._configurationValues.ConnectionPool.GetNext(); - var uri = new Uri(baseUri, path); + bool seenError = false; try { + var uri = new Uri(baseUri, path); response = DoSyncRequest(method, uri, postData); if (response != null && response.SuccessOrKnownError) return response; } catch (Exception e) { + seenError = true; + this._configurationValues.ConnectionPool.MarkDead(baseUri); if (retried < maxRetries) + { return this.DoRequest(method, path, data, null, ++retried); + } else throw new OutOfNodesException(exceptionMessage, e); } + finally + { + //make sure we always call markalive on the uri if the connection was succesful + if (!seenError && response != null && response.SuccessOrKnownError) + this._configurationValues.ConnectionPool.MarkAlive(baseUri); + } + this._configurationValues.ConnectionPool.MarkDead(baseUri); if (retried < maxRetries) + { return this.DoRequest(method, path, data, null, ++retried); - + } throw new OutOfNodesException(exceptionMessage); } diff --git a/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs b/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs index 21186ea92e5..976d7d28091 100644 --- a/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs +++ b/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs @@ -17,7 +17,7 @@ namespace Elasticsearch.Net.Integration.Yaml { public class YamlTestsBase { - protected static readonly IElasticsearchClient _client; + protected static readonly ElasticsearchClient _client; protected static readonly Version _versionNumber; protected object _body; @@ -35,6 +35,7 @@ static YamlTestsBase() var infoResponse = _client.Info(); dynamic info = infoResponse.Response; _versionNumber = new Version(info.version.number); + } From bf160d44b57162e76b7cc17720bd29a19b96d91b Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Mon, 10 Mar 2014 15:36:23 +0100 Subject: [PATCH 04/15] started on sniffing connection pool --- .../ElasticsearchHttpClient.cs | 10 + .../ThriftConnection.cs | 30 +++ .../Connection/RetryTests.cs | 10 +- .../Connection/SniffingConnectionPoolTests.cs | 15 ++ ...s.cs => StaticConnectionPoolRetryTests.cs} | 18 +- .../Elasticsearch.Net.Tests.Unit.csproj | 3 +- .../Stubs/NoopConnection.cs | 12 +- .../Connection/ConnectionConfiguration.cs | 21 ++ .../Connection/ConnectionPool.cs | 217 +++++++++++++----- .../Connection/HttpConnection.cs | 197 ++++------------ .../Connection/IConnection.cs | 7 + .../IConnectionConfigurationValues.cs | 28 ++- .../Connection/IConnectionPool.cs | 40 ++++ .../Connection/ITransport.cs | 15 ++ .../Connection/SingleNodeConnectionPool.cs | 40 ++++ src/Elasticsearch.Net/Connection/Transport.cs | 172 ++++++++++++++ .../Elasticsearch.Net.csproj | 4 + src/Elasticsearch.Net/ElasticsearchClient.cs | 6 +- .../Domain/Connection/IConnectionSettings.cs | 15 +- .../Connection/Failover/SniffTests.cs | 31 +++ .../Nest.Tests.Integration.csproj | 1 + .../Core/Domain/Connection/ConnectionTests.cs | 2 +- 22 files changed, 657 insertions(+), 237 deletions(-) create mode 100644 src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs rename src/Elasticsearch.Net.Tests.Unit/Connection/{StaticConnectionPoolTests.cs => StaticConnectionPoolRetryTests.cs} (96%) create mode 100644 src/Elasticsearch.Net/Connection/IConnectionPool.cs create mode 100644 src/Elasticsearch.Net/Connection/ITransport.cs create mode 100644 src/Elasticsearch.Net/Connection/SingleNodeConnectionPool.cs create mode 100644 src/Elasticsearch.Net/Connection/Transport.cs create mode 100644 src/Tests/Nest.Tests.Integration/Connection/Failover/SniffTests.cs diff --git a/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs b/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs index 894b7cf5f48..5e96edb7f2d 100644 --- a/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs +++ b/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs @@ -117,5 +117,15 @@ public ElasticsearchResponse DeleteSync(Uri uri, byte[] data) return this.DoSyncRequest("delete", uri, data); throw new NotImplementedException(); } + + public bool Ping(Uri uri, int connectTimeout) + { + throw new NotImplementedException(); + } + + public IList Sniff(Uri uri, int connectTimeout) + { + throw new NotImplementedException(); + } } } diff --git a/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs b/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs index e3d86700769..cd9b7dfb236 100644 --- a/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs +++ b/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; +using System.IO; +using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -191,6 +193,34 @@ public ElasticsearchResponse DeleteSync(Uri uri, byte[] data) restRequest.Headers.Add("Content-Type", "application/json"); return this.Execute(restRequest); } + + public bool Ping(Uri uri, int connectTimeout) + { + var restRequest = new RestRequest(); + restRequest.Method = Method.HEAD; + restRequest.Uri = uri; + + restRequest.Headers = new Dictionary(); + restRequest.Headers.Add("Content-Type", "application/json"); + var r = this.Execute(restRequest); + return r.Success; + } + + public IList Sniff(Uri uri, int connectTimeout) + { + var restRequest = new RestRequest(); + restRequest.Method = Method.GET; + restRequest.Uri = new Uri(uri,"/_nodes/_all/clear?timeout=" + connectTimeout); + + restRequest.Headers = new Dictionary(); + restRequest.Headers.Add("Content-Type", "application/json"); + var r = this.Execute(restRequest); + using (var memoryStream = new MemoryStream(r.ResultBytes)) + { + return Sniffer.FromStream(memoryStream, this._connectionSettings.Serializer); + } + } + #endregion #region IDisposable Members diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs index 686937f5f1e..40b75520dbb 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs @@ -29,7 +29,7 @@ public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() using (var fake = new AutoFake(callsDoNothing: true)) { fake.Provide(_connectionConfig); - fake.Provide(fake.Resolve()); + fake.Provide(fake.Resolve()); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Throws(); @@ -50,7 +50,7 @@ public void ShouldNotRetryOn400() using (var fake = new AutoFake(callsDoNothing: true)) { var settings = fake.Provide(_connectionConfig); - fake.Provide(fake.Resolve()); + fake.Provide(fake.Resolve()); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 400, "GET", "/", null, null)); @@ -69,7 +69,7 @@ public void ShouldNotRetryOn500() using (var fake = new AutoFake(callsDoNothing: true)) { var settings = fake.Provide(_connectionConfig); - fake.Provide(fake.Resolve()); + fake.Provide(fake.Resolve()); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 500, "GET", "/", null, null)); @@ -88,7 +88,7 @@ public void ShouldNotRetryOn201() using (var fake = new AutoFake(callsDoNothing: true)) { var settings = fake.Provide(_connectionConfig); - fake.Provide(fake.Resolve()); + fake.Provide(fake.Resolve()); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 201, "GET", "/", null, null)); @@ -107,7 +107,7 @@ public void ShouldRetryOn503() using (var fake = new AutoFake(callsDoNothing: true)) { var settings = fake.Provide(_connectionConfig); - fake.Provide(fake.Resolve()); + fake.Provide(fake.Resolve()); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 503, "GET", "/", null, null)); diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs new file mode 100644 index 00000000000..dd1b71819a1 --- /dev/null +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using NUnit.Framework; + +namespace Elasticsearch.Net.Tests.Unit.Connection +{ + [TestFixture] + public class SniffingConnectionPoolTests + { + + } +} diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs similarity index 96% rename from src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolTests.cs rename to src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs index 212105bb233..d9402394a13 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs @@ -18,7 +18,7 @@ namespace Elasticsearch.Net.Tests.Unit.Connection { [TestFixture] - public class StaticConnectionPoolTests + public class StaticConnectionPoolRetryTests { private static Uri[] _uris = new[] { @@ -31,7 +31,7 @@ public class StaticConnectionPoolTests private readonly StaticConnectionPool _connectionPool; private readonly ConnectionConfiguration _config; - public StaticConnectionPoolTests() + public StaticConnectionPoolRetryTests() { _connectionPool = new StaticConnectionPool(_uris); _config = new ConnectionConfiguration(_connectionPool); @@ -47,7 +47,7 @@ public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() fake.Provide(_config); //prove a real HttpTransport with its unspecified dependencies //as fakes - fake.Provide(fake.Resolve()); + fake.Provide(fake.Resolve()); //set up fake for a call on IConnection.GetSync so that it always throws //an exception @@ -82,7 +82,7 @@ public void AllNodesMustBeTriedOnce() fake.Provide(_config); var connection = fake.Resolve(); fake.Provide(connection); - fake.Provide(fake.Resolve()); + fake.Provide(fake.Resolve()); //provide a unique fake for each node. var calls = _uris.Select(u => @@ -118,7 +118,7 @@ public void HardRetryLimitTakesPrecedenceOverNumberOfNodes() var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Throws(); - fake.Provide(fake.Resolve()); + fake.Provide(fake.Resolve()); var client = fake.Resolve(); @@ -154,7 +154,7 @@ public void AConnectionMustBeMadeEvenIfAllNodesAreDead() ); //setup client - fake.Provide(fake.Resolve()); + fake.Provide(fake.Resolve()); var client = fake.Resolve(); //Do not throw because by miracle the 4th retry manages to give back a 200 @@ -203,7 +203,7 @@ public void AllNodesWillBeMarkedDead() ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null) ); - fake.Provide(fake.Resolve()); + fake.Provide(fake.Resolve()); var client = fake.Resolve(); //Since we always get a 503 we should see an out of nodes exception @@ -254,7 +254,7 @@ public void IfAConnectionComesBackToLifeOnItsOwnItShouldBeMarked() //provide a transport with all the dependencies resolved - fake.Provide(fake.Resolve()); + fake.Provide(fake.Resolve()); //instantiate connection with faked dependencies var client = fake.Resolve(); @@ -321,7 +321,7 @@ public void IfAllButOneConnectionDiesSubsequentRequestsMustUseTheOneAliveConnect ); //provide a transport with all the dependencies resolved - fake.Provide(fake.Resolve()); + fake.Provide(fake.Resolve()); //instantiate connection with faked dependencies var client = fake.Resolve(); diff --git a/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj b/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj index c6a6abcbc08..33644bc6270 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj +++ b/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj @@ -59,7 +59,8 @@ - + + diff --git a/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs b/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs index 9d191bb279a..cc3f8f503d0 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs @@ -117,7 +117,17 @@ public virtual ElasticsearchResponse DeleteSync(Uri uri, byte[] data) _uriObserver.Observe(uri); return _responseGenerator.Create(); } - + + public bool Ping(Uri uri, int connectTimeout) + { + throw new NotImplementedException(); + } + + public IList Sniff(Uri uri, int connectTimeout) + { + throw new NotImplementedException(); + } + private Task DoAsyncRequest(Uri uri) { _uriObserver.Observe(uri); diff --git a/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs b/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs index 67e8e7986fd..719b1dadfe7 100644 --- a/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs +++ b/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs @@ -39,6 +39,9 @@ public class ConnectionConfiguration : IConnectionConfigurationValues public int MaximumAsyncConnections { get; private set; } public int? MaxRetries { get; private set; } public bool UsesPrettyResponses { get; private set; } + public bool SniffsOnStartup { get; private set; } + public bool SniffsOnConnectionFault { get; private set; } + public TimeSpan? SniffInformationLifeSpan { get; private set; } public bool TraceEnabled { get; private set; } public Action ConnectionStatusHandler { get; private set; } public NameValueCollection QueryStringParameters { get; private set; } @@ -68,6 +71,24 @@ public T SetMaxRetries(int maxRetries) return (T) this; } + public T SnifsOnConnectionFault(bool sniffsOnConnectionFault = true) + { + this.SniffsOnConnectionFault = sniffsOnConnectionFault; + return (T)this; + } + public T SniffOnStartup(bool sniffsOnStartup = true) + { + this.SniffsOnStartup = sniffsOnStartup; + return (T)this; + } + public T SniffLifeSpan(TimeSpan sniffTimeSpan) + { + this.SniffInformationLifeSpan = sniffTimeSpan; + return (T)this; + } + + + /// /// Enable Trace signals to the IConnection that it should put debug information on the Trace. diff --git a/src/Elasticsearch.Net/Connection/ConnectionPool.cs b/src/Elasticsearch.Net/Connection/ConnectionPool.cs index 0090828f9cd..5552b71284b 100644 --- a/src/Elasticsearch.Net/Connection/ConnectionPool.cs +++ b/src/Elasticsearch.Net/Connection/ConnectionPool.cs @@ -1,96 +1,188 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Security.Cryptography.X509Certificates; using System.Text; +using System.Text.RegularExpressions; using System.Threading; using Elasticsearch.Net.Exceptions; namespace Elasticsearch.Net.Connection { - public interface IConnectionPool + public class EndpointState { - int MaxRetries { get; } + public int _attempts = 0; + public DateTime date = new DateTime(); + } + - Uri GetNext(); - void MarkDead(Uri uri); - void MarkAlive(Uri uri); + public interface IDateTimeProvider + { + DateTime Now(); + DateTime DeadTime(Uri uri, int attempts); + DateTime AliveTime(Uri uri, int attempts); } - public class SingleNodeConnectionPool : IConnectionPool + public class DateTimeProvider : IDateTimeProvider { - private readonly Uri _uri; + public DateTime Now() + { + return DateTime.UtcNow; + } + + public DateTime DeadTime(Uri uri, int attempts) + { + return DateTime.UtcNow.AddSeconds(60); + } - public int MaxRetries { get { return 0; } } + public DateTime AliveTime(Uri uri, int attempts) + { + return new DateTime(); + } + } - public SingleNodeConnectionPool(Uri uri) + public static class Sniffer + { + private static readonly Regex _uriParse = new Regex(@"inet\[\/([^:]+):(\d+)"); + private class NodeInfoResponse { - //this makes sure that paths stay relative i.e if the root uri is: - //http://my-saas-provider.com/instance - if (!uri.OriginalString.EndsWith("/")) - uri = new Uri(uri.OriginalString + "/"); - _uri = uri; + public IDictionary nodes { get; set; } } - public Uri GetNext() + private class NodeState { - return _uri; + public string http_address { get; set; } + public string https_address { get; set; } + public string thrift_address { get; set; } } - public void MarkDead(Uri uri) + private static Uri Parse(string scheme, string inetString) { + var match = _uriParse.Match(inetString); + var host = match.Groups[1].Value; + var port = match.Groups[2].Value; + return new Uri("{0}://{1}:{2}".F(scheme, host, port)); } - - public void MarkAlive(Uri uri) + public static IList FromStream(Stream stream, IElasticsearchSerializer serializer) { - + using (var memoryStream = new MemoryStream()) + { + stream.CopyTo(memoryStream); + var response = serializer.Deserialize(memoryStream.ToArray()); + var l = new List(); + foreach(var kv in response.nodes.Values) + { + //TODO parse address since its in inet[] form + if (!kv.http_address.IsNullOrEmpty()) + l.Add(Parse("http", kv.http_address)); + else if (!kv.https_address.IsNullOrEmpty()) + l.Add(Parse("https",kv.https_address)); + else if (!kv.thrift_address.IsNullOrEmpty()) + l.Add(Parse("http", kv.thrift_address)); + } + return l; + } } } - public class EndpointState + public class SniffingConnectionPool : StaticConnectionPool { - public int _attempts = 0; - public DateTime date = new DateTime(); - } + private readonly ReaderWriterLockSlim _readerWriter = new ReaderWriterLockSlim(); + private bool _seenStartup = false; - public interface IDateTimeProvider - { - DateTime Now(); - DateTime DeadTime(Uri uri, int attempts); - DateTime AliveTime(Uri uri, int attempts); - } + public SniffingConnectionPool( + IEnumerable uris, + bool randomizeOnStartup = true, + IDateTimeProvider dateTimeProvider = null) + : base(uris, randomizeOnStartup, dateTimeProvider) + { + } - public class DateTimeProvider : IDateTimeProvider - { - public DateTime Now() + public override void Sniff(IConnection connection, bool fromStartupHint = false) { - return DateTime.UtcNow; + if (fromStartupHint && _seenStartup) + return; + + try + { + var uri = this.GetNext(); + + this._readerWriter.EnterWriteLock(); + var nodes = connection.Sniff(uri, 50); + + this._nodeUris = nodes; + this._uriLookup = nodes.ToDictionary(k => k, v => new EndpointState()); + if (fromStartupHint) + this._seenStartup = true; + + } + finally + { + this._readerWriter.ExitWriteLock(); + } } - public DateTime DeadTime(Uri uri, int attempts) + public override Uri GetNext() { - return DateTime.UtcNow.AddSeconds(60); + try + { + this._readerWriter.EnterReadLock(); + return base.GetNext(); + } + finally + { + this._readerWriter.ExitReadLock(); + } } - - public DateTime AliveTime(Uri uri, int attempts) + + public override void MarkAlive(Uri uri) { - return new DateTime(); + try + { + this._readerWriter.EnterReadLock(); + base.MarkAlive(uri); + } + finally + { + this._readerWriter.ExitReadLock(); + + } + } + + public override void MarkDead(Uri uri) + { + try + { + this._readerWriter.EnterReadLock(); + base.MarkDead(uri); + } + finally + { + this._readerWriter.ExitReadLock(); + + } } + } + public class StaticConnectionPool : IConnectionPool { - private readonly IDictionary _uriLookup; - private readonly IList _nodeUris; + protected IDictionary _uriLookup; + protected IList _nodeUris; public int MaxRetries { get { return _nodeUris.Count - 1; } } private int _current = -1; private readonly IDateTimeProvider _dateTimeProvider; - public StaticConnectionPool(IEnumerable uris, bool randomizeOnStartup = true, IDateTimeProvider dateTimeProvider = null) + public StaticConnectionPool( + IEnumerable uris, + bool randomizeOnStartup = true, + IDateTimeProvider dateTimeProvider = null) { _dateTimeProvider = dateTimeProvider ?? new DateTimeProvider(); var rnd = new Random(); @@ -101,44 +193,59 @@ public StaticConnectionPool(IEnumerable uris, bool randomizeOnStartup = tru _uriLookup = _nodeUris.ToDictionary(k=>k, v=> new EndpointState()); } - public Uri GetNext() + public virtual Uri GetNext() { - var attempts = 0; + var initialOffset = Interlocked.Increment(ref _current); + var count = _nodeUris.Count; + int i = initialOffset % count, attempts = 0; Uri uri = null; do { - var c = Interlocked.Increment(ref _current); - var i = c%_nodeUris.Count; uri = this._nodeUris[i]; var state = this._uriLookup[uri]; - if (state.date <= _dateTimeProvider.Now()) + lock (state) { - state._attempts = 0; - return uri; + if (state.date <= _dateTimeProvider.Now()) + { + state._attempts = 0; + return uri; + } } Interlocked.Increment(ref state._attempts); ++attempts; - } while (attempts < _nodeUris.Count); + i = (++initialOffset) % count; + } while (attempts < count); //could not find a suitable node retrying on node that has been dead longest. return this._nodeUris[0]; //todo random; } - public void MarkDead(Uri uri) + public virtual void MarkDead(Uri uri) { EndpointState state = null; if (!this._uriLookup.TryGetValue(uri, out state)) return; - state.date = this._dateTimeProvider.DeadTime(uri, state._attempts); + lock(state) + { + state.date = this._dateTimeProvider.DeadTime(uri, state._attempts); + } } - public void MarkAlive(Uri uri) + public virtual void MarkAlive(Uri uri) { EndpointState state = null; if (!this._uriLookup.TryGetValue(uri, out state)) return; - state.date = this._dateTimeProvider.AliveTime(uri, state._attempts); - state._attempts = 0; + lock (state) + { + state.date = this._dateTimeProvider.AliveTime(uri, state._attempts); + state._attempts = 0; + } + } + + public virtual void Sniff(IConnection connection, bool fromStartupHint = false) + { + //NOOP on static connection class } } } diff --git a/src/Elasticsearch.Net/Connection/HttpConnection.cs b/src/Elasticsearch.Net/Connection/HttpConnection.cs index 0d83fc66398..90f3e4eec6c 100644 --- a/src/Elasticsearch.Net/Connection/HttpConnection.cs +++ b/src/Elasticsearch.Net/Connection/HttpConnection.cs @@ -1,159 +1,15 @@ using System; using System.Collections.Generic; -using System.Collections.Specialized; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading; using System.Threading.Tasks; -using Elasticsearch.Net.Exceptions; using PUrify; namespace Elasticsearch.Net.Connection { - public interface IHttpTransport - { - ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0); - - Task DoRequestAsync( - string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0); - } - - public class HttpTransport : IHttpTransport - { - private readonly IConnectionConfigurationValues _configurationValues; - private readonly IConnection _connection; - private IElasticsearchSerializer _serializer; - - public HttpTransport(IConnectionConfigurationValues configurationValues, IConnection connection, IElasticsearchSerializer serializer) - { - _connection = connection; - _configurationValues = configurationValues; - this._serializer = serializer ?? new ElasticsearchDefaultSerializer(); - } - - /// - /// Returns either the fixed maximum set on the connection configuration settings or the number of nodes - /// - private int GetMaximumRetries() - { - return this._configurationValues.MaxRetries.GetValueOrDefault(this._configurationValues.ConnectionPool.MaxRetries); - } - - public ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0) - { - if (queryString != null) - path += queryString.ToQueryString(); - - var maxRetries = this.GetMaximumRetries(); - var postData = PostData(data); - ElasticsearchResponse response = null; - var exceptionMessage = "Unable to perform request: '{0} {1}' on any of the nodes after retrying {2} times.".F( method, path, retried); - var baseUri = this._configurationValues.ConnectionPool.GetNext(); - bool seenError = false; - try - { - var uri = new Uri(baseUri, path); - response = DoSyncRequest(method, uri, postData); - if (response != null && response.SuccessOrKnownError) - return response; - } - catch (Exception e) - { - seenError = true; - this._configurationValues.ConnectionPool.MarkDead(baseUri); - if (retried < maxRetries) - { - return this.DoRequest(method, path, data, null, ++retried); - } - else - throw new OutOfNodesException(exceptionMessage, e); - } - finally - { - //make sure we always call markalive on the uri if the connection was succesful - if (!seenError && response != null && response.SuccessOrKnownError) - this._configurationValues.ConnectionPool.MarkAlive(baseUri); - } - this._configurationValues.ConnectionPool.MarkDead(baseUri); - if (retried < maxRetries) - { - return this.DoRequest(method, path, data, null, ++retried); - } - throw new OutOfNodesException(exceptionMessage); - } - - public Task DoRequestAsync( - string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0) - { - if (queryString != null) - path += queryString.ToQueryString(); - - var postData = PostData(data); - var baseUri = this._configurationValues.ConnectionPool.GetNext(); - var uri = new Uri(baseUri, path); - - switch (method.ToLowerInvariant()) - { - case "post": return this._connection.Post(uri, postData); - case "put": return this._connection.Put(uri, postData); - case "delete": - return postData == null || postData.Length == 0 - ? this._connection.Delete(uri) - : this._connection.Delete(uri, postData); - case "head": return this._connection.Head(uri); - case "get": return this._connection.Get(uri); - } - throw new Exception("Unknown HTTP method " + method); - } - - private ElasticsearchResponse DoSyncRequest(string method, Uri uri, byte[] postData) - { - switch (method.ToLowerInvariant()) - { - case "post": - return this._connection.PostSync(uri, postData); - case "put": - return this._connection.PutSync(uri, postData); - case "delete": - return postData == null || postData.Length == 0 - ? this._connection.DeleteSync(uri) - : this._connection.DeleteSync(uri, postData); - case "head": - return this._connection.HeadSync(uri); - case "get": - return this._connection.GetSync(uri); - } - return null; - } - - private byte[] PostData(object data) - { - var bytes = data as byte[]; - if (bytes != null) - return bytes; - - var s = data as string; - if (s != null) - return s.Utf8Bytes(); - if (data == null) return null; - var ss = data as IEnumerable; - if (ss != null) - return (string.Join("\n", ss) + "\n").Utf8Bytes(); - - var so = data as IEnumerable; - if (so == null) - return this._serializer.Serialize(data); - var joined = string.Join("\n", so - .Select(soo => this._serializer.Serialize(soo, SerializationFormatting.None).Utf8String())) + "\n"; - return joined.Utf8Bytes(); - } - } - - - - public class HttpConnection : IConnection { const int BUFFER_SIZE = 1024; @@ -201,45 +57,71 @@ public ElasticsearchResponse PutSync(Uri uri, byte[] data) } public ElasticsearchResponse DeleteSync(Uri uri) { - var connection = this.CreateConnection(uri, "DELETE"); + var connection = this.CreateHttpWebRequest(uri, "DELETE"); return this.DoSynchronousRequest(connection); } public ElasticsearchResponse DeleteSync(Uri uri, byte[] data) { - var connection = this.CreateConnection(uri, "DELETE"); + var connection = this.CreateHttpWebRequest(uri, "DELETE"); return this.DoSynchronousRequest(connection, data); } + public bool Ping(Uri uri, int connectTimeout) + { + var request = this.CreateHttpWebRequest(uri, "HEAD"); + request.Timeout = connectTimeout; + request.ReadWriteTimeout = connectTimeout; + using (var response = (HttpWebResponse)request.GetResponse()) + { + return response.StatusCode == HttpStatusCode.OK; + } + } + + public IList Sniff(Uri uri, int connectTimeout) + { + uri = new Uri(uri, "_nodes/_all/clear?timeout=" + connectTimeout); + var request = this.CreateHttpWebRequest(uri, "GET"); + request.Timeout = connectTimeout; + request.ReadWriteTimeout = connectTimeout; + using (var response = (HttpWebResponse)request.GetResponse()) + using (var responseStream = response.GetResponseStream()) + { + if (response.StatusCode != HttpStatusCode.OK) + return new List(); + return Sniffer.FromStream(responseStream, this._ConnectionSettings.Serializer); + } + } + public Task Get(Uri uri) { - var r = this.CreateConnection(uri, "GET"); + var r = this.CreateHttpWebRequest(uri, "GET"); return this.DoAsyncRequest(r); } public Task Head(Uri uri) { - var r = this.CreateConnection(uri, "HEAD"); + var r = this.CreateHttpWebRequest(uri, "HEAD"); return this.DoAsyncRequest(r); } public Task Post(Uri uri, byte[] data) { - var r = this.CreateConnection(uri, "POST"); + var r = this.CreateHttpWebRequest(uri, "POST"); return this.DoAsyncRequest(r, data); } public Task Put(Uri uri, byte[] data) { - var r = this.CreateConnection(uri, "PUT"); + var r = this.CreateHttpWebRequest(uri, "PUT"); return this.DoAsyncRequest(r, data); } public Task Delete(Uri uri, byte[] data) { - var r = this.CreateConnection(uri, "DELETE"); + var r = this.CreateHttpWebRequest(uri, "DELETE"); return this.DoAsyncRequest(r, data); } public Task Delete(Uri uri) { - var r = this.CreateConnection(uri, "DELETE"); + var r = this.CreateHttpWebRequest(uri, "DELETE"); return this.DoAsyncRequest(r); } @@ -257,19 +139,18 @@ private static void ThreadTimeoutCallback(object state, bool timedOut) private ElasticsearchResponse HeaderOnlyRequest(Uri uri, string method) { - var connection = this.CreateConnection(uri, method); - return this.DoSynchronousRequest(connection); + var r = this.CreateHttpWebRequest(uri, method); + return this.DoSynchronousRequest(r); } private ElasticsearchResponse BodyRequest(Uri uri, byte[] data, string method) { - var connection = this.CreateConnection(uri, method); - return this.DoSynchronousRequest(connection, data); + var r = this.CreateHttpWebRequest(uri, method); + return this.DoSynchronousRequest(r, data); } - protected virtual HttpWebRequest CreateConnection(Uri uri, string method) + protected virtual HttpWebRequest CreateHttpWebRequest(Uri uri, string method) { - var myReq = this.CreateWebRequest(uri, method); this.SetBasicAuthorizationIfNeeded(myReq); this.SetProxyIfNeeded(myReq); diff --git a/src/Elasticsearch.Net/Connection/IConnection.cs b/src/Elasticsearch.Net/Connection/IConnection.cs index 2ad2e860735..e9774ff6a22 100644 --- a/src/Elasticsearch.Net/Connection/IConnection.cs +++ b/src/Elasticsearch.Net/Connection/IConnection.cs @@ -1,4 +1,7 @@ using System; +using System.Collections; +using System.Collections.Generic; +using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks; namespace Elasticsearch.Net.Connection @@ -22,5 +25,9 @@ public interface IConnection Task Delete(Uri uri, byte[] data); ElasticsearchResponse DeleteSync(Uri uri, byte[] data); + + bool Ping(Uri uri, int connectTimeout); + IList Sniff(Uri uri, int connectTimeout); + } } diff --git a/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs b/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs index a9c0cf895e8..4285dfcc9f7 100644 --- a/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs +++ b/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs @@ -20,10 +20,36 @@ public interface IConnectionConfigurationValues bool TraceEnabled { get; } bool UriSpecifiedBasicAuth { get; } bool UsesPrettyResponses { get; } - + + /// + /// Sniff the cluster state immediatly on startup + /// + bool SniffsOnStartup { get; } + + /// + /// Force a new sniff for the cluster state everytime a connection dies + /// + bool SniffsOnConnectionFault { get; } + + /// + /// Force a new sniff for the cluster when the cluster state information is older than + /// the specified timespan + /// + TimeSpan? SniffInformationLifeSpan { get; } + + /// + /// Append these query string parameters automatically to every request + /// NameValueCollection QueryStringParameters { get; } + + /// + /// Connection status handler that will be called everytime the connection receives anything. + /// Action ConnectionStatusHandler { get; } + /// + /// + /// IElasticsearchSerializer Serializer { get; set; } } } \ No newline at end of file diff --git a/src/Elasticsearch.Net/Connection/IConnectionPool.cs b/src/Elasticsearch.Net/Connection/IConnectionPool.cs new file mode 100644 index 00000000000..2885110dd14 --- /dev/null +++ b/src/Elasticsearch.Net/Connection/IConnectionPool.cs @@ -0,0 +1,40 @@ +using System; + +namespace Elasticsearch.Net.Connection +{ + public interface IConnectionPool + { + /// + /// Returns the default maximum retries for the connection pool implementation. + /// Most implementation default to number of nodes, note that this can be overidden + /// in the connection settings + /// + int MaxRetries { get; } + + /// + /// Get the next available Uri for a live node + /// + Uri GetNext(); + + /// + /// Mark the specified Uri as dead + /// + void MarkDead(Uri uri); + + /// + /// Bring the specified uri back to life. + /// + /// + void MarkAlive(Uri uri); + + /// + /// Instruct the connectionpool to sniff for more nodes + /// + /// a connection that can be used to call elasticsearch + /// hints wheter the sniff was requested from on startup + /// connection pools should be registered as singletons in the application. The hint prevents new'ing of clients + /// cause excessive startup sniffs + /// + void Sniff(IConnection connection, bool fromStartUpHint = false); + } +} \ No newline at end of file diff --git a/src/Elasticsearch.Net/Connection/ITransport.cs b/src/Elasticsearch.Net/Connection/ITransport.cs new file mode 100644 index 00000000000..51faed26f1c --- /dev/null +++ b/src/Elasticsearch.Net/Connection/ITransport.cs @@ -0,0 +1,15 @@ +using System.Collections.Specialized; +using System.Threading.Tasks; + +namespace Elasticsearch.Net.Connection +{ + public interface ITransport + { + ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0); + + Task DoRequestAsync( + string method, + string path, + object data = null, NameValueCollection queryString = null, int retried = 0); + } +} \ No newline at end of file diff --git a/src/Elasticsearch.Net/Connection/SingleNodeConnectionPool.cs b/src/Elasticsearch.Net/Connection/SingleNodeConnectionPool.cs new file mode 100644 index 00000000000..59e750ba6b6 --- /dev/null +++ b/src/Elasticsearch.Net/Connection/SingleNodeConnectionPool.cs @@ -0,0 +1,40 @@ +using System; + +namespace Elasticsearch.Net.Connection +{ + public class SingleNodeConnectionPool : IConnectionPool + { + private readonly Uri _uri; + + public int MaxRetries { get { return 0; } } + + public SingleNodeConnectionPool(Uri uri) + { + //this makes sure that paths stay relative i.e if the root uri is: + //http://my-saas-provider.com/instance + if (!uri.OriginalString.EndsWith("/")) + uri = new Uri(uri.OriginalString + "/"); + _uri = uri; + } + + public Uri GetNext() + { + return _uri; + } + + public void MarkDead(Uri uri) + { + + } + + public void MarkAlive(Uri uri) + { + + } + + public void Sniff(IConnection connection, bool fromStartupHint = false) + { + + } + } +} \ No newline at end of file diff --git a/src/Elasticsearch.Net/Connection/Transport.cs b/src/Elasticsearch.Net/Connection/Transport.cs new file mode 100644 index 00000000000..2fbf7b7ffbd --- /dev/null +++ b/src/Elasticsearch.Net/Connection/Transport.cs @@ -0,0 +1,172 @@ +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Linq; +using System.Threading.Tasks; +using Elasticsearch.Net.Exceptions; + +namespace Elasticsearch.Net.Connection +{ + public class Transport : ITransport + { + private readonly IConnectionConfigurationValues _configurationValues; + private readonly IConnection _connection; + private readonly IElasticsearchSerializer _serializer; + private readonly IConnectionPool _connectionPool; + private DateTime? _lastSniff { get; set; } + + public Transport( + IConnectionConfigurationValues configurationValues, + IConnection connection, + IElasticsearchSerializer serializer + ) + { + this._connection = connection; + this._configurationValues = configurationValues; + this._serializer = serializer ?? new ElasticsearchDefaultSerializer(); + this._connectionPool = this._configurationValues.ConnectionPool; + + if (this._configurationValues.SniffsOnStartup) + this.Sniff(fromStartup: true); + } + + private void Sniff(bool fromStartup = false) + { + this._connectionPool.Sniff(this._connection, fromStartup); + this._lastSniff = DateTime.UtcNow; + } + + /// + /// Returns either the fixed maximum set on the connection configuration settings or the number of nodes + /// + private int GetMaximumRetries() + { + return this._configurationValues.MaxRetries.GetValueOrDefault(this._connectionPool.MaxRetries); + } + + public ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0) + { + SniffIfInformationIsTooOld(retried); + + if (queryString != null) + path += queryString.ToQueryString(); + + var maxRetries = this.GetMaximumRetries(); + var postData = PostData(data); + ElasticsearchResponse response = null; + var exceptionMessage = "Unable to perform request: '{0} {1}' on any of the nodes after retrying {2} times." + .F( method, path, retried); + var baseUri = this._connectionPool.GetNext(); + bool seenError = false; + try + { + var uri = new Uri(baseUri, path); + response = DoSyncRequest(method, uri, postData); + if (response != null && response.SuccessOrKnownError) + return response; + } + catch (Exception e) + { + seenError = true; + this._connectionPool.MarkDead(baseUri); + if (this._configurationValues.SniffsOnConnectionFault && retried == 0) + this.Sniff(); + if (retried < maxRetries) + { + return this.DoRequest(method, path, data, null, ++retried); + } + else + throw new OutOfNodesException(exceptionMessage, e); + } + finally + { + //make sure we always call markalive on the uri if the connection was succesful + if (!seenError && response != null && response.SuccessOrKnownError) + this._connectionPool.MarkAlive(baseUri); + } + this._connectionPool.MarkDead(baseUri); + if (this._configurationValues.SniffsOnConnectionFault && retried == 0) + this.Sniff(); + + if (retried < maxRetries) + { + return this.DoRequest(method, path, data, null, ++retried); + } + throw new OutOfNodesException(exceptionMessage); + } + + private void SniffIfInformationIsTooOld(int retried) + { + var sniffLifeSpan = this._configurationValues.SniffInformationLifeSpan; + if (retried == 0 && this._lastSniff.HasValue && + sniffLifeSpan.HasValue && sniffLifeSpan.Value > (DateTime.UtcNow - this._lastSniff.Value)) + this.Sniff(); + } + + public Task DoRequestAsync( + string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0) + { + if (queryString != null) + path += queryString.ToQueryString(); + + var postData = PostData(data); + var baseUri = this._connectionPool.GetNext(); + var uri = new Uri(baseUri, path); + + switch (method.ToLowerInvariant()) + { + case "post": return this._connection.Post(uri, postData); + case "put": return this._connection.Put(uri, postData); + case "delete": + return postData == null || postData.Length == 0 + ? this._connection.Delete(uri) + : this._connection.Delete(uri, postData); + case "head": return this._connection.Head(uri); + case "get": return this._connection.Get(uri); + } + throw new Exception("Unknown HTTP method " + method); + } + + private ElasticsearchResponse DoSyncRequest(string method, Uri uri, byte[] postData) + { + switch (method.ToLowerInvariant()) + { + case "post": + return this._connection.PostSync(uri, postData); + case "put": + return this._connection.PutSync(uri, postData); + case "delete": + return postData == null || postData.Length == 0 + ? this._connection.DeleteSync(uri) + : this._connection.DeleteSync(uri, postData); + case "head": + return this._connection.HeadSync(uri); + case "get": + return this._connection.GetSync(uri); + } + return null; + } + + private byte[] PostData(object data) + { + var bytes = data as byte[]; + if (bytes != null) + return bytes; + + var s = data as string; + if (s != null) + return s.Utf8Bytes(); + if (data == null) return null; + var ss = data as IEnumerable; + if (ss != null) + return (string.Join("\n", ss) + "\n").Utf8Bytes(); + + var so = data as IEnumerable; + if (so == null) + return this._serializer.Serialize(data); + var joined = string.Join("\n", so + .Select(soo => this._serializer.Serialize(soo, SerializationFormatting.None).Utf8String())) + "\n"; + return joined.Utf8Bytes(); + } + } +} \ No newline at end of file diff --git a/src/Elasticsearch.Net/Elasticsearch.Net.csproj b/src/Elasticsearch.Net/Elasticsearch.Net.csproj index 80a413cc86d..8152d2d3a3f 100644 --- a/src/Elasticsearch.Net/Elasticsearch.Net.csproj +++ b/src/Elasticsearch.Net/Elasticsearch.Net.csproj @@ -50,6 +50,10 @@ + + + + diff --git a/src/Elasticsearch.Net/ElasticsearchClient.cs b/src/Elasticsearch.Net/ElasticsearchClient.cs index 39b5108cf14..825af42342c 100644 --- a/src/Elasticsearch.Net/ElasticsearchClient.cs +++ b/src/Elasticsearch.Net/ElasticsearchClient.cs @@ -15,12 +15,12 @@ public partial class ElasticsearchClient : IElasticsearchClient public IConnectionConfigurationValues Settings { get; protected set; } public IElasticsearchSerializer Serializer { get; protected set; } protected IStringifier Stringifier { get; set; } - protected IHttpTransport Transport { get; set; } + protected ITransport Transport { get; set; } public ElasticsearchClient( IConnectionConfigurationValues settings, IConnection connection = null, - IHttpTransport transport = null, + ITransport transport = null, IElasticsearchSerializer serializer = null, IStringifier stringifier = null ) @@ -32,7 +32,7 @@ public ElasticsearchClient( this.Connection = connection ?? new HttpConnection(settings); this.Serializer = serializer ?? new ElasticsearchDefaultSerializer(); ((IConnectionConfigurationValues) this.Settings).Serializer = this.Serializer; - this.Transport = transport ?? new HttpTransport(settings, this.Connection, this.Serializer); + this.Transport = transport ?? new Transport(settings, this.Connection, this.Serializer); this.Stringifier = stringifier ?? new Stringifier(); } diff --git a/src/Nest/Domain/Connection/IConnectionSettings.cs b/src/Nest/Domain/Connection/IConnectionSettings.cs index c6da45968ba..ab07167a4dc 100644 --- a/src/Nest/Domain/Connection/IConnectionSettings.cs +++ b/src/Nest/Domain/Connection/IConnectionSettings.cs @@ -3,6 +3,7 @@ using System.Collections.Specialized; using System.Linq; using Elasticsearch.Net; +using Elasticsearch.Net.Connection; using Nest.Resolvers; using Newtonsoft.Json; @@ -16,6 +17,11 @@ public ConnectionSettings(Uri uri, string defaultIndex) : base(uri, defaultIndex { uri.ThrowIfNull("uri"); } + + public ConnectionSettings(IConnectionPool connectionPool, string defaultIndex) : base(connectionPool, defaultIndex) + { + + } } /// @@ -48,9 +54,8 @@ public string DefaultIndex public ReadOnlyCollection> ContractConverters { get; private set; } - public ConnectionSettings(Uri uri, string defaultIndex) : base(uri) + public ConnectionSettings(IConnectionPool uri, string defaultIndex) : base(uri) { - uri.ThrowIfNull("uri"); defaultIndex.ThrowIfNullOrEmpty("defaultIndex"); this.SetDefaultIndex(defaultIndex); @@ -62,7 +67,11 @@ public ConnectionSettings(Uri uri, string defaultIndex) : base(uri) this.ModifyJsonSerializerSettings = (j) => { }; this.ContractConverters = Enumerable.Empty>().ToList().AsReadOnly(); - + } + public ConnectionSettings(Uri uri, string defaultIndex) + : this(new SingleNodeConnectionPool(uri ?? new Uri("http://localhost:9200")), defaultIndex) + { + } /// diff --git a/src/Tests/Nest.Tests.Integration/Connection/Failover/SniffTests.cs b/src/Tests/Nest.Tests.Integration/Connection/Failover/SniffTests.cs new file mode 100644 index 00000000000..a97b757a0d8 --- /dev/null +++ b/src/Tests/Nest.Tests.Integration/Connection/Failover/SniffTests.cs @@ -0,0 +1,31 @@ +using System; +using System.Diagnostics; +using System.Linq; +using Elasticsearch.Net; +using Elasticsearch.Net.Connection; +using FluentAssertions; +using NUnit.Framework; +using Nest.Tests.MockData.Domain; +using Nest.Resolvers; +using System.Net; + +namespace Nest.Tests.Integration.Core.Bulk +{ + [TestFixture] + public class SniffTests : IntegrationTests + { + [Test] + public void IndexExistShouldNotThrowOn404() + { + var host = Test.Default.Host; + if (Process.GetProcessesByName("fiddler").Any()) + host = "ipv4.fiddler"; + var connectionPool = new SniffingConnectionPool(new[] { new Uri("http://{0}:9200".F(host)) }); + var settings = new ConnectionSettings(connectionPool, ElasticsearchConfiguration.DefaultIndex) + .SniffOnStartup(); + var client = new ElasticClient(settings); + + + } + } +} diff --git a/src/Tests/Nest.Tests.Integration/Nest.Tests.Integration.csproj b/src/Tests/Nest.Tests.Integration/Nest.Tests.Integration.csproj index ffac1dd79d1..e7bdc0f20f4 100644 --- a/src/Tests/Nest.Tests.Integration/Nest.Tests.Integration.csproj +++ b/src/Tests/Nest.Tests.Integration/Nest.Tests.Integration.csproj @@ -75,6 +75,7 @@ + diff --git a/src/Tests/Nest.Tests.Unit/Core/Domain/Connection/ConnectionTests.cs b/src/Tests/Nest.Tests.Unit/Core/Domain/Connection/ConnectionTests.cs index 99d59f58bb8..54d312fb71b 100644 --- a/src/Tests/Nest.Tests.Unit/Core/Domain/Connection/ConnectionTests.cs +++ b/src/Tests/Nest.Tests.Unit/Core/Domain/Connection/ConnectionTests.cs @@ -15,7 +15,7 @@ public TestConnection(IConnectionSettingsValues settings) public HttpWebRequest GetConnection(string path, string method) { - return base.CreateConnection(new Uri(new Uri("http://localhost"), path), method); + return base.CreateHttpWebRequest(new Uri(new Uri("http://localhost"), path), method); } } From 8f3eb42ba89da3ec494ceea216b7df34c35efede Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Mon, 10 Mar 2014 19:32:25 +0100 Subject: [PATCH 05/15] wrote sniffing unit tests --- .../Autofac.Extras.FakeItEasy.3.0.0.nuspec | 23 - .../lib/net40/Autofac.Extras.FakeItEasy.dll | Bin 11776 -> 11776 bytes .../lib/net40/Autofac.Extras.FakeItEasy.xml | 0 .../lib/net35/FakeItEasy.dll | Bin 0 -> 649728 bytes .../lib/net35/FakeItEasy.xml | 3699 +++++++++++++++++ .../lib/net40/FakeItEasy.dll | Bin 0 -> 651776 bytes .../lib/net40/FakeItEasy.xml | 3693 ++++++++++++++++ dep/FakeItEasy.1.18.0/lib/sl50/FakeItEasy.dll | Bin 0 -> 475648 bytes dep/FakeItEasy.1.18.0/lib/sl50/FakeItEasy.xml | 3508 ++++++++++++++++ dep/FakeItEasy.1.18.0/lib/win8/FakeItEasy.dll | Bin 0 -> 475648 bytes dep/FakeItEasy.1.18.0/lib/win8/FakeItEasy.xml | 3508 ++++++++++++++++ .../Connection/RetryTests.cs | 18 +- .../Connection/SniffingConnectionPoolTests.cs | 158 +- .../StaticConnectionPoolRetryTests.cs | 20 +- .../Elasticsearch.Net.Tests.Unit.csproj | 9 +- .../packages.config | 3 +- .../Connection/ConnectionConfiguration.cs | 3 - .../Connection/ConnectionPool.cs | 4 + src/Elasticsearch.Net/Connection/Transport.cs | 15 +- 19 files changed, 14612 insertions(+), 49 deletions(-) delete mode 100644 dep/Autofac.Extras.FakeItEasy.3.0.0/Autofac.Extras.FakeItEasy.3.0.0.nuspec rename dep/{Autofac.Extras.FakeItEasy.3.0.0 => Autofac.Extras.FakeItEasy.3.0.1}/lib/net40/Autofac.Extras.FakeItEasy.dll (76%) rename dep/{Autofac.Extras.FakeItEasy.3.0.0 => Autofac.Extras.FakeItEasy.3.0.1}/lib/net40/Autofac.Extras.FakeItEasy.xml (100%) create mode 100644 dep/FakeItEasy.1.18.0/lib/net35/FakeItEasy.dll create mode 100644 dep/FakeItEasy.1.18.0/lib/net35/FakeItEasy.xml create mode 100644 dep/FakeItEasy.1.18.0/lib/net40/FakeItEasy.dll create mode 100644 dep/FakeItEasy.1.18.0/lib/net40/FakeItEasy.xml create mode 100644 dep/FakeItEasy.1.18.0/lib/sl50/FakeItEasy.dll create mode 100644 dep/FakeItEasy.1.18.0/lib/sl50/FakeItEasy.xml create mode 100644 dep/FakeItEasy.1.18.0/lib/win8/FakeItEasy.dll create mode 100644 dep/FakeItEasy.1.18.0/lib/win8/FakeItEasy.xml diff --git a/dep/Autofac.Extras.FakeItEasy.3.0.0/Autofac.Extras.FakeItEasy.3.0.0.nuspec b/dep/Autofac.Extras.FakeItEasy.3.0.0/Autofac.Extras.FakeItEasy.3.0.0.nuspec deleted file mode 100644 index c071609174e..00000000000 --- a/dep/Autofac.Extras.FakeItEasy.3.0.0/Autofac.Extras.FakeItEasy.3.0.0.nuspec +++ /dev/null @@ -1,23 +0,0 @@ - - - - Autofac.Extras.FakeItEasy - 3.0.0 - Autofac Extras: FakeItEasy Faking Support - Autofac Contributors - Autofac Contributors - http://www.opensource.org/licenses/mit-license.php - http://autofac.org/ - http://code.google.com/p/autofac/logo - false - This extension provides support for autofaking and creation of fake objects in FakeItEasy using Autofac. - Autofac extension supporting generation of FakeItEasy objects. - - - en-US - - - - - - \ No newline at end of file diff --git a/dep/Autofac.Extras.FakeItEasy.3.0.0/lib/net40/Autofac.Extras.FakeItEasy.dll b/dep/Autofac.Extras.FakeItEasy.3.0.1/lib/net40/Autofac.Extras.FakeItEasy.dll similarity index 76% rename from dep/Autofac.Extras.FakeItEasy.3.0.0/lib/net40/Autofac.Extras.FakeItEasy.dll rename to dep/Autofac.Extras.FakeItEasy.3.0.1/lib/net40/Autofac.Extras.FakeItEasy.dll index 4f1f62db0efc8b24642a9c8a65759c5658b0c31a..1ee19ad5e413f193f07b5e4628051411746cb30f 100644 GIT binary patch delta 542 zcmZpOX^5H7!J;oC5j?R+hH>A-mHN!y` zlN%Z985c}uWD;hynJmg=UC$GGTvy>z#)^L9&?RdeZpd%x-4nMwaf(&Y4aK?%=a2Gy z`Qq|>WA1~%FBM0G!k8xPs4KpD-z0C*lDUc^8y$Uu9^IXIOlR`XlBv@kRK1!d5G9+u z&ZF&RHrw|X9tSu2sW%kf{VgO}$0u5JdxM{OpH$_WhY$CZ{5`6t^>c$}ZED>aMzPHo zm;zXI19%u1l!Hr(GV{`l8GxWelz~A6NGpd1Gt2?91wd@~P)`>iy=Jp7dovra1^I-#t!88vVqn-D&Hsjn&%dA~Ge57`sWdYuCADa>yNr@50|S3CLn=cN zLm5LRLo$#B0-4%u<lJg+TE%CnbB}_tp+f*4L1vFeP?7k OV6<6K=RM;@19kxS>998d delta 537 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 + + + FakeItEasy + + + + + Provides methods for generating fake objects. + + + + + Creates a fake object of the type T. + + The type of fake object to create. + A fake object. + + + + Creates a fake object of the type T. + + The type of fake object to create. + A lambda where options for the built fake object can be specified. + A fake object. + + + + Creates a collection of fakes of the specified type. + + The type of fakes to create. + The number of fakes in the collection. + A collection of fake objects of the specified type. + + + + Gets a dummy object of the specified type. The value of a dummy object + should be irrelevant. Dummy objects should not be configured. + + The type of dummy to return. + A dummy object of the specified type. + Dummies of the specified type can not be created. + + + + Gets a value indicating whether the two objects are equal. + + The first object to compare. + The second object to compare. + True if the two objects are equal. + + + + Gets a value indicating whether the two objects are the same reference. + + The object A. + The object B. + True if the objects are the same reference. + + + + Configures a call to a faked object. + + An expression where the configured member is called. + A configuration object. + + + + Gets a configuration object allowing for further configuration of + any call to the specified faked object. + + + The fake to configure. + + + A configuration object. + + + + + Configures a call to a faked object. + + The type of member on the faked object to configure. + An expression where the configured member is called. + A configuration object. + + + + Provides an API entry point for constraining arguments of fake object calls. + + The type of argument to validate. + + + + Gets an argument constraint object that will be used to constrain a method call argument. + + + + + Gets a constraint that considers any value of an argument as valid. + + This is a shortcut for the "Ignored"-property. + + + + Gets a constraint that considers any value of an argument as valid. + + + + + Provides configuration for any (not a specific) call on a faked object. + + + + + Gets a configuration object allowing for further configuration of + any call to the specified faked object. + + The faked object to configure. + A configuration object. + + + + Gets a value indicating whether the two objects are equal. + + The first object to compare. + The second object to compare. + True if the two objects are equal. + + + + Gets a value indicating whether the two objects are the same reference. + + The object A. + The object B. + True if the objects are the same reference. + + + + A collection of method arguments. + + + + + The arguments this collection contains. + + + + + Initializes a new instance of the class. + + The arguments. + The argument names. + + + + Initializes a new instance of the class. + + The arguments. + The method. + + + + Returns an enumerator that iterates through the collection or arguments. + + + A that can be used to iterate through the collection. + + + + + Gets the argument at the specified index. + + The type of the argument to get. + The index of the argument. + The argument at the specified index. + + + + Gets the argument with the specified name. + + The type of the argument to get. + The name of the argument. + The argument with the specified name. + + + + Gets an empty ArgumentList. + + + + + Gets the number of arguments in the list. + + + + + Gets the names of the arguments in the list. + + + + + Gets the argument at the specified index. + + The index of the argument to get. + The argument at the specified index. + + + + Provides validation extensions for . + + + + + Constrains an argument so that it must be null (Nothing in VB). + + The type of the argument. + The constraint manager to match the constraint. + A dummy argument value. + + + + Constrains the string argument to contain the specified text. + + The constraint manager to match the constraint. + The string the argument string should contain. + A dummy argument value. + + + + Constrains the sequence so that it must contain the specified value. + + The constraint manager to match the constraint. + The value the collection should contain. + The type of sequence. + A dummy argument value. + + + + Constrains the string so that it must start with the specified value. + + The constraint manager to match the constraint. + The value the string should start with. + A dummy argument value. + + + + Constrains the string so that it must end with the specified value. + + The constraint manager to match the constraint. + The value the string should end with. + A dummy argument value. + + + + Constrains the string so that it must be null or empty. + + The constraint manager to match the constraint. + A dummy argument value. + + + + Constrains argument value so that it must be greater than the specified value. + + The constraint manager to match the constraint. + The value the string should start with. + The type of argument to constrain. + A dummy argument value. + + + + The tested argument collection should contain the same elements as the + as the specified collection. + + The constraint manager to match the constraint. + The sequence to test against. + The type of argument to constrain. + A dummy argument value. + + + + Tests that the IEnumerable contains no items. + + The type of argument. + The constraint manager to match the constraint. + A dummy argument value. + + + + Tests that the passed in argument is equal to the specified value. + + The type of the argument. + The constraint manager to match the constraint. + The value to compare to. + A dummy argument value. + + + + Tests that the passed in argument is the same instance (reference) as the specified value. + + The type of the argument. + The constraint manager to match the constraint. + The reference to compare to. + A dummy argument value. + + + + Constrains the argument to be of the specified type. + + The type of argument in the method signature. + The constraint manager. + The type to constrain the argument with. + A dummy value. + + + + Constrains the argument with a predicate. + + + The constraint manager. + + + The predicate that should constrain the argument. + + + A human readable description of the constraint. + + + The type of argument in the method signature. + + + A dummy argument value. + + + + + Constrains the argument with a predicate. + + + The constraint manager. + + + The predicate that should constrain the argument. + + + A human readable description of the constraint format string. + + + Arguments for the format string. + + + The type of argument in the method signature. + + + A dummy argument value. + + + + + Constrains the argument with a predicate. + + + The constraint manager. + + + The predicate that should constrain the argument. + + + The type of argument in the method signature. + + + A dummy argument value. + + + + + Constrains the argument to be not null (Nothing in VB) and to match + the specified predicate. + + The type of the argument to constrain. + The constraint manager. + The predicate that constrains non null values. + An action that writes a description of the constraint + to the output. + A dummy argument value. + + + + Provides extension methods for . + + + + + Specifies that a call to the configured call should be applied no matter what arguments + are used in the call to the faked object. + + The type of the interface. + The configuration. + A configuration object. + + + + Provides string formatting for arguments of type T when written in call lists. + + The type of the arguments which will be formatted by this instance. + + + + Provides string formatting for arguments when written in + call lists. + + + + + Gets a string representing the specified argument value. + + The argument value to get as a string. + A string representation of the value. + + + + Gets the type of arguments this formatter works on. + + + + + Gets the priority of the formatter, when two formatters are + registered for the same type the one with the highest + priority is used. + + + + + Gets a string representing the specified argument value. + + The argument value to get as a string. + A string representation of the value. + + + + Gets a string representing the specified argument value. + + The argument value to get as a string. + A string representation of the value. + + + + Gets the type of arguments this formatter works on. + + + + + Gets the priority of the formatter, when two formatters are + registered for the same type the one with the highest + priority is used. + + + + + Provides extension methods for . + + + + + Asserts that the specified call must have happened once or more. + + The configuration to assert on. + + + + Asserts that the specified call has not happened. + + The configuration to assert on. + + + + Provides extension methods for . + + + + + Executes the specified action when a matching call is being made. This overload can also be used to fake calls with arguments when they don't need to be accessed. + + The type of fake object. + The configuration that is extended. + The to invoke. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Provides extension methods for . + + + + + Filters to contain only the calls that matches the call specification. + + The type of fake the call is made on. + The calls to filter. + The call to match on. + A collection of the calls that matches the call specification. + + + + Provides the base for rules that can be built using the FakeConfiguration. + + + + + Represents a call rule that has a description of the calls the + rule is applicable to. + + + + + Allows for intercepting call to a fake object and + act upon them. + + + + + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + + The call to check for applicability. + True if the interceptor is applicable. + + + + Applies an action to the call, might set a return value or throw + an exception. + + The call to apply the interceptor to. + + + + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. + + + + + Writes a description of calls the rule is applicable to. + + The writer. + + + + Gets if this rule is applicable to the specified call. + + The call to validate. + True if the rule applies to the call. + + + + Writes a description of calls the rule is applicable to. + + The writer to write the description to. + + + + Gets or sets an action that is called by the Apply method to apply this + rule to a fake object call. + + + + + Gets a collection of actions that should be invoked when the configured + call is made. + + + + + Gets or sets values to apply to output and reference variables. + + + + + Gets or sets a value indicating whether the base method of the fake object call should be + called when the fake object call is made. + + + + + Gets or sets the number of times the configured rule should be used. + + + + + Gets a description of calls the rule is applicable to. + + + + + + Configuration for any call to a faked object. + + + + + Provides a way to configure predicates for when a call should be applied. + + The type of fake object that is going to be configured.. + + + + Applies a predicate to constrain which calls will be considered for interception. + + A predicate for a fake object call. + An action that writes a description of the predicate + to the output. + The configuration object. + + + + Provides configuration methods for methods that does not have a return value and + allows the use to specify validations for arguments. + + + + + Provides configuration methods for methods that does not have a return value. + + + + + Configuration that lets the developer specify that an exception should be + thrown by a fake object call. + + + + + Hides standard Object members to make fluent interfaces + easier to read. Found in the source of Autofac: + Based on blog post here: + + + + + + Hides the ToString-method. + + A string representation of the implementing object. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the type. + + The exact runtime type of the current instance. + + + + Throws the specified exception when the currently configured + call gets called. + + A function that creates the exception to throw. + Configuration object. + + + + Configuration for callbacks of fake object calls. + + The type of interface to return. + + + + Executes the specified action when a matching call is being made. + + The action to invoke. + A configuration object. + + + + Configuration that lets you specify that a fake object call should call it's base method. + + + + + When the configured method or methods are called the call + will be delegated to the base method of the faked method. + + A configuration object. + The fake object is of an abstract type or an interface + and no base method exists. + + + + Lets the developer configure output values of out and ref parameters. + + + + + Specifies output values for out and ref parameters. Specify the values in the order + the ref and out parameters has in the configured call, any non out and ref parameters are ignored. + + The values. + A configuration object. + + + + Allows the developer to assert on a call that's configured. + + + + + Asserts that the configured call has happened the number of times + constrained by the repeatConstraint parameter. + + A constraint for how many times the call + must have happened. + The call has not been called a number of times + that passes the repeat constraint. + + + + Configures the specified call to do nothing when called. + + A configuration object. + + + + Provides configurations to validate arguments of a fake object call. + + The type of interface to return. + + + + Configures the call to be accepted when the specified predicate returns true. + + The argument predicate. + A configuration object. + + + + Matches calls that has the return type specified in the generic type parameter. + + The return type of the members to configure. + A configuration object. + + + + Manages registration of a set of components in a DictionaryContainer. + + + + + Registers the components of this module. + + The container to register components in. + + + + A factory that creates instances of the RecordingCallRuleType. + + + + + Creates the specified fake object. + + The type of the fake. + The fake object the rule belongs to. + The rule that's being recorded. + A RecordingCallRule instance. + + + + A factory responsible for creating start configuration for fake objects. + + + + + Creates a start configuration for the specified fake object that fakes the + specified type. + + The type of the fake object. + The fake object to configure. + A configuration object. + + + + An exception that can be thrown when something goes wrong with the configuration + of a fake object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Handles the configuration of fake object given an expression specifying + a call on a faked object. + + + + + Lets you set up expectations and configure repeat for the configured call. + + + + + Provides configuration for method calls that has a return value. + + + + + Specifies the number of times for the configured event. + + The number of times to repeat. + + + + A combination of the IAfterCallSpecifiedConfiguration and IOutAndRefParametersConfiguration + interfaces. + + + + + Aggregate of IReturnValueArgumentValidationConfiguration<T> and IWhereConfiguration<IAnyCallConfigurationWithReturnTypeSpecified<T>>. + + The type of fake object that is configured. + + + + Configures a call that returns a value and allows the use to + specify validations for arguments. + + The type of the member. + + + + Configures a call that returns a value. + + The type of the member. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + A function that produces the return value. + A configuration object. + + + + Configurations for when a configured call is recorded. + + + + + Provides configuration from VisualBasic. + + + + + Provides methods for configuring a fake object. + + The type of fake object. + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + The type of the return value of the member. + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call is made to any method on the + object. + + A configuration object. + + + + A call rule that has been recorded. + + + + + A call rule that "sits and waits" for the next call, when + that call occurs the recorded rule is added for that call. + + The type of the fake. + + + + Provides access to a set of calls and a call matcher for these calls. + + + + + Provides access to a call matcher. + + + + + Gets a call predicate that can be used to check if a fake object call matches + the specified constraint. + + + + + Gets the set of calls. + + + + + Represents a delegate that creates a configuration object from + a fake object and the rule to build. + + The rule that's being built. + The fake object the rule is for. + A configuration object. + + + + Represents a predicate that matches a fake object call. + + + + + Gets a value indicating whether the call matches the predicate. + + The call to match. + True if the call matches the predicate. + + + + Provides configuration of faked objects. + + + + + Gets a configuration for the specified faked object. + + The type of the fake. + The faked object to configure. + A configuration object. + The specified object is not a faked object. + The fakedObject parameter was null. + + + + Represents an argument and a dummy value to use for that argument. + + + + + Initializes a new instance of the class. + + A value indicating if the dummy value was successfully resolved. + The type of argument. + The resolved value. + + + + Gets a value indicating whether a dummy argument value was successfully + resolved. + + + + + Gets the type of the argument. + + + + + Gets the resolved value. + + + + + Holds a formatter as well as the distance between a type to be formatted + and the type for which the formatted is registered. + + + + + Determines whether an assembly references FakeItEasy. + + The assembly to check. + Whether or not the assembly references FakeItEasy. + + + + Locate an implementation. + + + Will search the app domain for a concrete implementation, + and if it can't find one will use the . + + + + + Scans app domain assemblies looking for a concrete implementation of + that is not the . + Otherwise, the first matching type is instantiated and returned, or an + instance of DefaultBootstrapper is used if no other implementation is found. + + An instance of the first non-default IBootstrapper implementation found, + or a DefaultBootstrapper. + + + + Represents an event that happens when a call has been intercepted by a proxy. + + + + + Initializes a new instance of the class. + + The call. + + + + Gets the call that was intercepted. + + The call. + + + + Keeps track of metadata for interceptions. + + + + + Gets whether the rule has been called the number of times specified or not. + + True if the rule has not been called the number of times specified. + + + + Gets or sets the number of times the rule has been used. + + + + + Gets or sets the rule this metadata object is tracking. + + + + + Manages attaching of argument constraints. + + The type of argument to constrain. + + + + Constrains the argument with a predicate. + + The predicate that should constrain the argument. + An action that will be write a description of the constraint. + A dummy argument value. + + + + Inverts the logic of the matches method. + + + + + Validates an argument, checks that it's valid in a specific fake call. + + + + + Writes a description of the argument constraint to the specified writer. + + + The writer. + + + + + Gets whether the argument is valid. + + The argument to validate. + True if the argument is valid. + + + + Default implementation of . + + + + + Attaches a fake manager to the proxy so that intercepted + calls can be configured. + + + + + Attaches a to the specified proxy, listening to + the event raiser. + + The type of the fake object proxy. + The proxy to attach to. + The event raiser to listen to. + + + + Gets the fake manager associated with the proxy. + + The proxy to get the manager from. + A fake manager. + + + + Attaches a to the specified proxy, listening to + the event raiser. + + The type of the fake object proxy. + The proxy to attach to. + The event raiser to listen to. + + + + Gets the fake manager associated with the proxy. + + The proxy to get the manager from. + A fake manager. + + + + Represents an object that can be tagged with another object. When implemented + by a proxy returned from an FakeItEasy uses the tag + to store a reference to the that handles that proxy. + + + + + Gets or sets the tag. + + + + + The default implementation of the IFakeObjectCallFormatter interface. + + + + + Provides string formatting for fake object calls. + + + + + Gets a human readable description of the specified + fake object call. + + The call to get a description for. + A description of the call. + + + + Gets a human readable description of the specified + fake object call. + + The call to get a description for. + A description of the call. + + + + Handles configuring of fake objects to delegate all their calls to a wrapped instance. + + + + + Manages configuration of fake objects to wrap instances. + + + + + Configures the specified faked object to wrap the specified instance. + + The faked object to configure. + The instance to wrap. + The recorder to use, null if no recording should be made. + + + + Configures the specified faked object to wrap the specified instance. + + The faked object to configure. + The instance to wrap. + The recorder to use, null if no recording should be made. + + + + A fake object container where delegates can be registered that are used to + resolve fake objects. + + + + + A container that can create fake objects. + + + + + Handles global configuration of fake object. + + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + + + + Creates a dummy object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + + The type of dummy object to create. + The dummy object that was created if the method returns true. + True if a dummy object can be created. + + + + Initializes a new instance of the class. + Creates a new instance of the DelegateFakeObjectContainer. + + + + + Creates a fake object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + + The type of dummy object to create. + The fake object that was created if the method returns true. + True if a fake object can be created. + + + + Configures the fake. + + The type of fake. + The fake object. + + + + Registers the specified fake delegate. + + The type of the return value of the method that encapsulates. + The fake delegate. + + + + A IFakeObjectContainer implementation that uses MEF to load IFakeDefinitions and + IFakeConfigurations. + + + + + Initializes a new instance of the class. + + The dummy definitions. + The fake configurators. + + + + Creates a fake object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + + The type of fake object to create. + The fake object that was created if the method returns true. + True if a fake object can be created. + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + + + + An exception that is thrown when there was an error creating a fake object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + Auto fake property rule. + + The central point in the API for proxied fake objects handles interception + of fake object calls by using a set of rules. User defined rules can be inserted + by using the AddRule-method. + + Event rule. + Object member rule. + Property behavior rule. + Property setter rule. + + + + Initializes a new instance of the class. + + + + + Adds a call rule to the fake object. + + The rule to add. + + + + Adds a call rule last in the list of user rules, meaning it has the lowest priority possible. + + The rule to add. + + + + Removes the specified rule for the fake object. + + The rule to remove. + + + + Adds an interception listener to the manager. + + The listener to add. + + + + Removes any specified user rules. + + + + + Gets the faked object. + + + + + Gets the faked type. + + + + + Gets the interceptions that are currently registered with the fake object. + + + + + Gets a collection of all the calls made to the fake object within the current scope. + + + + + A delegate responsible for creating FakeObject instances. + + An instance of . + + + + Represents a call to a fake object at interception time. + + + + + Represents a fake object call that can be edited. + + + + + Represents a call to a fake object. + + + + + Gets the method that's called. + + + + + Gets the arguments used in the call. + + + + + Gets the faked object the call is performed on. + + + + + Sets the return value of the call. + + The return value to set. + + + + Calls the base method of the faked type. + + + + + Sets the value of the argument at the specified index in the parameters list. + + The index of the argument to set the value of. + The value to set to the argument. + + + + Freezes the call so that it can no longer be modified. + + A completed fake object call. + + + + Sets that the call should not be recorded by the fake manager. + + + + + Attempts to preserve the stack trace of an existing exception when rethrown via throw or throw ex. + + Nicked from + http://weblogs.asp.net/fmarguerie/archive/2008/01/02/rethrowing-exceptions-and-preserving-the-full-call-stack-trace.aspx. + If reduced trust context (for example) precludes + invoking internal members on , the stack trace will not be preserved. + + The exception whose stack trace needs preserving. + + + + Represents a scope for fake objects, calls configured within a scope + are only valid within that scope. Only calls made within a scope + are accessible from within a scope so for example asserts will only + assert on those calls done within the scope. + + + + + Provides access to all calls made to fake objects within a scope. + Scopes calls so that only calls made within the scope are visible. + + + + + Creates a new scope and sets it as the current scope. + + The created scope. + + + + Creates a new scope and sets it as the current scope, using the specified + container as the container for the new scope. + + The container to use for the new scope. + The created scope. + + + + Closes the scope. + + + + + Adds an intercepted call to the current scope. + + The fake object. + The call that is intercepted. + + + + Adds a fake object call to the current scope. + + The fake object. + The rule to add. + + + + Represents a completed call to a fake object. + + + + + Gets the value set to be returned from the call. + + + + + Used by the event raising rule of fake objects to get the event arguments used in + a call to Raise.With. + + + + + Gets the sender of the event. + + + + + Gets the event arguments of the event. + + + + + Represents a listener for fake object calls, can be plugged into a + FakeManager instance to listen to all intercepted calls. + + The OnBeforeCallIntercepted method will be invoked before the OnBeforeCallIntercepted method of any + previously added listener. The OnAfterCallIntercepted method will be invoked after the OnAfterCallIntercepted + method of any previously added listener. + + + + Called when the interception begins but before any call rules + has been applied. + + The intercepted call. + + + + Called when the interception has been completed and rules has been + applied. + + The intercepted call. + The rule that was applied to the call. + + + + Provides a set of types that are available. + + + + + Gets a collection of available types. + + The available types. + + + + Handles comparisons of instances of . + + + + + Gets a value indicating whether the two instances of would invoke the same method + if invoked on an instance of the target type. + + The type of target for invocation. + The first . + The second . + True if the same method would be invoked. + + + + A null implementation for the IFakeObjectContainer interface. + + + + + Always returns false and sets the fakeObject to null. + + The type of dummy object to create. + Output variable for the fake object that will always be set to null. + Always return false. + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + + + + Provides access to all types in: + + FakeItEasy, + assemblies loaded into the current that reference FakeItEasy and + assemblies whose paths are supplied to the constructor, that also reference FakeItEasy. + + + + + + Loads the available types into the . + + + The full paths to assemblies from which to load types, + as well as assemblies loaded into the current . + + + + + Gets a collection of available types. + + The available types. + + + + Provides instances from type catalogues. + + + + + Gets an instance per type in the catalogue that is a descendant + of the specified type. + + The type of instances to get. + A sequence of instances of the specified type. + + + + A call rule that applies to any call and just delegates the + call to the wrapped object. + + + + + Initializes a new instance of the class. + Creates a new instance. + + + The object to wrap. + + + + + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + + The call to check for applicability. + True if the interceptor is applicable. + + + + Applies an action to the call, might set a return value or throw + an exception. + + The call to apply the interceptor to. + + + + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. + + + + + + An interface to be implemented by classes that can generate proxies for FakeItEasy. + + + + + Generates a proxy of the specified type and returns a result object containing information + about the success of the generation and the proxy if it was generated. + + The type of proxy to generate. + Interfaces to be implemented by the proxy. + Arguments to pass to the constructor of the type in . + The custom attribute builders. + A result containing the generated proxy. + + + + Generates a proxy of the specified type and returns a result object containing information + about the success of the generation and the proxy if it was generated. + + The type of proxy to generate. + Interfaces to be implemented by the proxy. + Arguments to pass to the constructor of the type in . + A result containing the generated proxy. + + + + Gets a value indicating whether the specified member can be intercepted by the proxy generator. + + The member to test. + The instance the method will be called on. + The reason the method can not be intercepted. + True if the member can be intercepted. + + + + An object that raises an event every time a call to a proxy has been intercepted. + + + + + Raised when a call is intercepted. + + + + + An adapter that adapts an to a . + + + + + Initializes a new instance of the class. + + The invocation. + + + + Freezes the call so that it can no longer be modified. + + A completed fake object call. + + + + Calls the base method, should not be used with interface types. + + + + + Sets the specified value to the argument at the specified index. + + The index of the argument to set the value to. + The value to set to the argument. + + + + Sets the return value of the call. + + The return value. + + + + Returns a description of the call. + + + A that represents this instance. + + + + + Gets a human readable description of the call. + + + + + + Gets the value set to be returned from the call. + + + + + Gets the method that's called. + + + + + Gets the arguments used in the call. + + + + + Gets the faked object the call is performed on. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to No constructor matches the passed arguments for constructor.. + + + + + Looks up a localized string similar to Arguments for constructor specified for interface type.. + + + + + Looks up a localized string similar to The type of proxy "{0}" is sealed.. + + + + + Looks up a localized string similar to The type of proxy must be an interface or a class but it was {0}.. + + + + + Looks up a localized string similar to No usable default constructor was found on the type {0}.. + + + + + The default implementation of the IFakeAndDummyManager interface. + + + + + Handles the creation of fake and dummy objects. + + + + + Creates a dummy of the specified type. + + The type of dummy to create. + The created dummy. + The current IProxyGenerator is not able to generate a fake of the specified type and + the current IFakeObjectContainer does not contain the specified type. + + + + Creates a fake object of the specified type. + + The type of fake object to generate. + Options for building the fake object. + A fake object. + The current IProxyGenerator is not able to generate a fake of the specified type. + + + + Tries to create a dummy of the specified type. + + The type of dummy to create. + Outputs the result dummy when creation is successful. + A value indicating whether the creation was successful. + + + + Tries to create a fake object of the specified type. + + The type of fake to create. + Options for the creation of the fake. + The created fake object when creation is successful. + A value indicating whether the creation was successful. + + + + Default implementation of the IFakeCreator-interface. + + + + + A facade used by the public API for testability. + + + + + Creates a fake object of the specified type. + + The type of fake to create. + Options for the created fake object. + The created fake object. + Was unable to generate the fake in the current configuration. + + + + Creates a dummy object, this can be a fake object or an object resolved + from the current IFakeObjectContainer. + + The type of dummy to create. + The created dummy. + Was unable to generate the fake in the current configuration and + no dummy was registered in the container for the specified type.. + + + + Creates a collection of fakes of the specified type. + + The type of fakes to create. + The number of fakes in the collection. + A collection of fake objects of the specified type. + + + + Initializes a new instance of the class. + + The fake and dummy manager. + + + + Creates a fake object of the specified type. + + The type of fake to create. + Options for the created fake object. + The created fake object. + Was unable to generate the fake in the current configuration. + + + + Creates a collection of fakes of the specified type. + + The type of fakes to create. + The number of fakes in the collection. + + A collection of fake objects of the specified type. + + + + + Creates a dummy object, this can be a fake object or an object resolved + from the current IFakeObjectContainer. + + The type of dummy to create. + The created dummy. + Was unable to generate the fake in the current configuration and + no dummy was registered in the container for the specified type.. + + + + Provides options for fake wrappers. + + The type of the fake object generated. + + + + Provides options for generating fake object. + + The type of fake object generated. + + + + Specifies arguments for the constructor of the faked class. + + The arguments to pass to the constructor of the faked class. + Options object. + + + + Specifies arguments for the constructor of the faked class by giving an expression with the call to + the desired constructor using the arguments to be passed to the constructor. + + The constructor call to use when creating a class proxy. + Options object. + + + + Specifies that the fake should delegate calls to the specified instance. + + The object to delegate calls to. + Options object. + + + + Specifies that the fake should be created with these additional attributes. + + The attributes to build into the proxy. + Options object. + + + + Sets up the fake to implement the specified interface in addition to the + originally faked class. + + The type of interface to implement. + Options object. + The specified type is not an interface. + The specified type is null. + + + + Specifies an action that should be run over the fake object + once it's created. + + An action to perform. + Options object. + + + + Specifies a fake recorder to use. + + The recorder to use. + Options object. + + + + Initializes a new instance of the class. + + The container. + The fake object creator. + + + + Contains the result of a call to TryCreateProxy of IProxyGenerator. + + + + + Initializes a new instance of the class. + Creates a new instance representing a failed proxy + generation attempt. + + + The reason the proxy generation failed. + + + + + Initializes a new instance of the class. + Creates a new instance representing a failed proxy + generation attempt due to an exception being caught. + + + The reason the proxy generation failed. + + + The exception thrown from the creation attempt. + + + + + Initializes a new instance of the class. + Creates a new instance representing a successful proxy + generation. + + + The proxy that was generated. + + + An event raiser that raises + events when calls are intercepted to the proxy. + + + + + Gets a value indicating whether the proxy was successfully created. + + + + + Gets the generated proxy when it was successfully created. + + + + + Gets the event raiser that raises events when calls to the proxy are + intercepted. + + + + + Gets the reason for failure when the generation was not successful. + + + + + The default bootstrapper, used to initialize FakeItEasy unless another + implementation of is present in the assemblies + loaded in the app domain. + + + + + Bootstrapper for FakeItEasy. + + + When FakeItEasy is initialized, it scans the executing app domain for implementations + of this interface. If any are found, one will be instantiated and used to bootstrap + FakeItEasy. If no implementations are found, then a + will be used. + The recommended way to implement IBootstrapper is to extend DefaultBootstrapper + and override selected methods. + + + + + Provides a list of assembly file names to scan for extension points, such as + s, s, and + s. + + A list of absolute paths pointing to assemblies to scan for extension points. + + + + When overridden in a derived class, provides a custom list of assembly file + names to scan for extension points, such as + s, s, and + s. + + This implementation returns the absolute paths of all the DLLs in the + . + + A list of absolute paths of to assemblies to scan for extension points. + + + + Represents a text writer that writes to the output. + + + + + Writes the specified value to the output. + + The value to write. + The writer for method chaining. + + + + Formats the specified argument value as a string and writes + it to the output. + + The value to write. + The writer for method chaining. + + + + Indents the writer. + + A disposable that will unindent the writer when disposed. + + + + Represents a definition of how a fake object of the type T should + be created. + + The type of fake. + + + + Represents a definition of how dummies of the specified type should be created. + + + + + Creates the fake. + + The fake object. + + + + Gets the type of fake object the definition is for. + + + + + Creates the dummy. + + The dummy object. + + + + Creates the dummy. + + The dummy object. + + + + Gets the type the definition is for. + + For type. + + + + Provides extension methods for generic usage of . + + + + + Gets an enumerable of tuples where the first value of each tuple is a value + from the first collection and the second value of each tuple is the value at the same position + from the second collection. + + The type of values in the first collection. + The type of values in the second collection. + The first of the collections to combine. + The second of the collections to combine. + An enumerable of tuples. + + + + Joins the collection to a string. + + The type of items in the collection. + The items to join. + A function that converts from an item to a string value. + Separator to insert between each item. + A string representation of the collection. + + + + Gets a dictionary containing the first element from the sequence that has a key specified by the key selector. + + The type of items in the sequence. + The type of the key. + The sequence. + The key selector. + A dictionary. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The Apply method of the ExpressionInterceptor may no be called before the Applicator property has been set.. + + + + + Looks up a localized string similar to The specified argument name does not exist in the ArgumentList.. + + + + + Looks up a localized string similar to Arguments for constructor was specified when generating proxy of interface type.. + + + + + Looks up a localized string similar to An argument validation was not configured correctly.. + + + + + Looks up a localized string similar to The method '{0}' was called too few times, expected #{1} times but was called #{2} times.. + + + + + Looks up a localized string similar to The method '{0}' was called too many times, expected #{1} times but was called #{2} times.. + + + + + Looks up a localized string similar to Can not create fake of the type '{0}', it's not registered in the current container and the current IProxyGenerator can not generate the fake. + + The following constructors failed: + {1}. + + + + + Looks up a localized string similar to Error when accessing FakeObject, the specified argument is of the type '{0}' which is not faked.. + + + + + Looks up a localized string similar to An ExpressionCallMatcher can only be created for expressions that represents a method call or a property getter.. + + + + + Looks up a localized string similar to + + The current proxy generator failed to create a proxy with the specified arguments for the constructor: + + Reason for failure: + - {0} + + . + + + + + Looks up a localized string similar to FakeItEasy failed to create fake object of type "{0}". + + 1. The type is not registered in the current IFakeObjectContainer. + 2. The current IProxyGenerator failed to generate a proxy for the following reason: + + {1}. + + + + + Looks up a localized string similar to Unable to create fake object.. + + + + + Looks up a localized string similar to Only abstract classes can be faked using the A.Fake-method that takes an enumerable of objects as arguments for constructor, use the overload that takes an expression instead.. + + + + + Looks up a localized string similar to The member accessor expression must be a lambda expression with a MethodCallExpression or MemberAccessExpression as its body.. + + + + + Looks up a localized string similar to The specified method can not be configured since it can not be intercepted by the current IProxyGenerator.. + + + + + Looks up a localized string similar to The method of the call did not match the method of the recorded call, the recorded sequence is no longer valid.. + + + + + Looks up a localized string similar to No constructor matching the specified arguments was found on the type {0}.. + + + + + Looks up a localized string similar to Can not generate fake object for the class since no usable default constructor was found, specify a constructor call.. + + + + + Looks up a localized string similar to All the recorded calls has been applied, the recorded sequence is no longer valid.. + + + + + Looks up a localized string similar to Only expression of the type ExpressionType.New (constructor calls) are accepted.. + + + + + Looks up a localized string similar to The Now-method on the event raise is not meant to be called directly, only use it to register to an event on a fake object that you want to be raised.. + + + + + Looks up a localized string similar to The number of values for out and ref parameters specified does not match the number of out and ref parameters in the call.. + + + + + Looks up a localized string similar to A scope for ordered assertions is already opened, close that scope before opening another one.. + + + + + Looks up a localized string similar to The specified call is not made on a fake object.. + + + + + Looks up a localized string similar to The current fake proxy generator can not create proxies of the type {0}.. + + + + + Looks up a localized string similar to FakeItEasy was unable to create dummy of type "{0}", register it in the current IFakeObjectContainer to enable this.. + + + + + Looks up a localized string similar to Expected to find call {0} the number of times specified by the predicate '{1}' but found it {2} times among the calls:. + + + + + Looks up a localized string similar to The number of argument names does not match the number of arguments.. + + + + + Provides the extension methods for . + + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + The exception to throw when a call that matches is invoked. + Configuration object. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Configuration object. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + The type of exception to throw. + Configuration object. + + + + An exception thrown when an expectation is not met (when asserting on fake object calls). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Provides extension methods for . + + + + + Evaluates an expression by compiling it into a delegate and invoking the delegate. + + The expression to be evaluated. + The value returned from the delegate compiled from the expression. + + + + Represents a class that can parse a lambda expression + that represents a method or property call. + + + + + Parses the specified expression. + + The expression to parse. + The parsed expression. + + + + Handles the matching of fake object calls to expressions. + + + + + Initializes a new instance of the class. + + The call specification. + The constraint factory. + The method info manager to use. + A parser to use to parse call expressions. + + + + Matches the specified call against the expression. + + The call to match. + True if the call is matched by the expression. + + + + Gets a description of the call. + + Description of the call. + + + + Gets a human readable description of calls that will be matched by this + matcher. + + + + + An implementation of the interface that uses + expressions for evaluating if the rule is applicable to a specific call. + + + + + Initializes a new instance of the class. + + The expression matcher to use. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Handles the instantiation of ExpressionCallRule instance. + + An expression specifying the call. + A rule instance. + + + + Manages breaking call specification expression into their various parts. + + + + + Manages breaking call specification expression into their various parts. + + + + + Gets the fake object an expression is called on. + + The call expression. + The FakeManager instance that manages the faked object the call is made on. + The fakeObjectCall is null. + The specified expression is not an expression where a call is made to a faked object. + + + + Gets the fake object an expression is called on. + + The call expression. + A FakeObject. + The fakeObjectCall is null. + The specified expression is not an expression where a call is made to a faked object. + + + + Provides extension methods for configuring and asserting on faked objects + without going through the static methods of the Fake-class. + + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + The type of fake object to configure. + The type of the return value of the member. + The faked object to configure. + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + The faked object to configure. + The type of fake object to configure. + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call is made to any method on the + object. + + The type of the fake. + The faked object. + A configuration object. + + + + Provides an extension method for configuring fake objects. + + + + + Gets an object that provides a fluent interface syntax for configuring + the fake object. + + The type of the fake object. + The fake object to configure. + A configuration object. + The fakedObject was null. + The object passed in is not a faked object. + + + + Provides static methods for accessing fake objects. + + + + + Gets the fake object that manages the faked object. + + The faked object to get the manager object for. + The fake object manager. + + + + Creates a new scope and sets it as the current scope. When inside a scope the + getting the calls made to a fake will return only the calls within that scope and when + asserting that calls were made, the calls must have been made within that scope. + + The created scope. + + + + Creates a new scope and sets it as the current scope. When inside a scope the + getting the calls made to a fake will return only the calls within that scope and when + asserting that calls were made, the calls must have been made within that scope. + + The container to use within the specified scope. + The created scope. + + + + Gets a value indicating whether the two objects are equal. + + The first object to compare. + The second object to compare. + True if the two objects are equal. + + + + Gets a value indicating whether the two objects are the same reference. + + The object A. + The object B. + True if the objects are the same reference. + + + + Gets all the calls made to the specified fake object. + + The faked object. + A collection containing the calls to the object. + The object passed in is not a faked object. + + + + Clears the configuration of the faked object. + + The faked object to clear the configuration of. + + + + Sets a new fake to each property or field that is tagged with the FakeAttribute in the specified + fixture. + + The object to initialize. + + + + Represents a fake object that provides an API for configuring a faked object, exposed by the + FakedObject-property. + + The type of the faked object. + + + + Initializes a new instance of the class. + Creates a new fake object. + + + + + Initializes a new instance of the class. + Creates a new fake object using the specified options. + + + Options used to create the fake object. + + + + + Configures calls to the specified member. + + An expression specifying the call to configure. + A configuration object. + + + + Configures calls to the specified member. + + The type of value the member returns. + An expression specifying the call to configure. + A configuration object. + + + + Configures any call to the fake object. + + A configuration object. + + + + Gets the faked object. + + + + + Gets all calls made to the faked object. + + + + + Used to tag fields and properties that will be initialized through the + Fake.Initialize-method. + + + + + Provides the base implementation for the IFakeConfigurator-interface. + + The type of fakes the configurator can configure. + + + + Provides configurations for fake objects of a specific type. + + + + + Applies the configuration for the specified fake object. + + The fake object to configure. + + + + Gets the type the instance provides configuration for. + + + + + Configures the fake. + + The fake object. + + + + Applies the configuration for the specified fake object. + + The fake object to configure. + + + + Asserts the type of the that fake is of correct. + + The fake object. + + + + Gets the type the instance provides configuration for. + + + + + + Provides extension methods for . + + + + + Gets the argument at the specified index in the arguments collection + for the call. + + The type of the argument to get. + The call to get the argument from. + The index of the argument. + The value of the argument with the specified index. + + + + Gets the argument with the specified name in the arguments collection + for the call. + + The type of the argument to get. + The call to get the argument from. + The name of the argument. + The value of the argument with the specified name. + + + + Writes the calls in the collection to the specified output writer. + + The type of the calls. + The calls to write. + The writer to write the calls to. + + + + Writes all calls in the collection to the console. + + The type of the calls. + The calls to write. + + + + Gets the description of a call to a fake object. + + The call to describe. + A description of the call. + + + + Provides extension methods for . + + + + + Makes the fake strict, this means that any call to the fake + that has not been explicitly configured will throw an exception. + + The type of fake object. + The configuration. + A configuration object. + + + + Provides methods for guarding method arguments. + + + + + Throws an exception if the specified argument is null. + + The argument. + Name of the argument. + The specified argument was null. + + + + When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked. + + + + + Provides access to the file system. + + + + + Opens the specified file in the specified mode. + + The full path and name of the file to open. + The mode to open the file in. + A stream for reading and writing the file. + + + + Gets a value indicating whether the specified file exists. + + The path and name of the file to check. + True if the file exists. + + + + Creates a file with the specified name. + + The name of the file to create. + + + + A simple implementation of an IoC container. + + + + + The dictionary that stores the registered services. + + + + + Initializes a new instance of the class. + + + + + Resolves an instance of the specified component type. + + Type of the component. + An instance of the component type. + + + + Registers the specified resolver. + + The type of component to register. + The resolver. + + + + Registers the specified resolver as a singleton. + + The type of component to register. + The resolver. + + + + Provides properties and methods to specify repeat. + + + + + Specifies the number of times as repeat. + + The number of times expected. + A Repeated instance. + + + + Specifies once as the repeat. + + + + + Specifies twice as the repeat. + + + + + Provides extension methods for . + + + + + Lets you specify options for the next call to a fake object. + + + + + Specifies options for the next call to the specified fake object. The next call will + be recorded as a call configuration. + + The type of the faked object. + The faked object to configure. + A call configuration object. + + + + Provides functionality for making ordered assertions on fakes. + + + + + Creates a scope that changes the behavior on asserts so that all asserts within + the scope must be to calls in the specified collection of calls. Calls must have happened + in the order that the asserts are specified or the asserts will fail. + + The calls to assert among. + A disposable used to close the scope. + + + + Provides extensions for . + + + + + Writes a new line to the writer. + + The writer to write to. + The writer. + + + + Writes the format string to the writer. + + The writer to write to. + The format string to write. + Replacements for the format string. + The writer. + + + + Writes the specified object to the writer (using the ToString-method of the object). + + The writer to write to. + The value to write to the writer. + The writer. + + + + Allows the developer to raise an event on a faked object. + + + + + Raises an event on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + + The type of the event args. + The sender of the event. + The instance containing the event data. + A Raise(TEventArgs)-object that exposes the event handler to attach. + + + + Raises an event on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + + The type of the event arguments. + The instance containing the event data. + + A Raise(TEventArgs)-object that exposes the event handler to attach. + + + + + Raises an event with empty event arguments on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + + + A Raise(TEventArgs)-object that exposes the event handler to attach. + + + + + A class exposing an event handler to attach to an event of a faked object + in order to raise that event. + + The type of the event args. + + + + Register this event handler to an event on a faked object in order to raise that event. + + The sender of the event. + Event args for the event. + + + + Gets a generic event handler to attach to the event to raise. + + + + + Provides methods for creating recorders for self initializing fakes. + + + + + Gets a recorder that records to and loads calls from the specified file. + + The file to use for recording. + A recorder instance. + + + + Provides extensions for . + + + + + Specifies NumberOfTimes(1) to the repeat configuration. + + The configuration to set repeat 1 to. + + + + Specifies NumberOfTimes(2) to the repeat configuration. + + The configuration to set repeat 2 to. + + + + Provides syntax for specifying the number of times a call must have been repeated when asserting on + fake object calls. + + A.CallTo(() => foo.Bar()).Assert(Happened.Once.Exactly); + + + + Specifies that a call must have been repeated a number of times + that is validated by the specified repeatValidation argument. + + A predicate that specifies the number of times + a call must have been made. + A Repeated-instance. + + + + When implemented gets a value indicating if the repeat is matched + by the Happened-instance. + + The repeat of a call. + True if the repeat is a match. + + + + Asserts that a call has not happened at all. + + + + + The call must have happened exactly the number of times that is specified in the next step. + + + + + The call must have happened any number of times greater than or equal to the number of times that is specified + in the next step. + + + + + The call must have happened any number of times less than or equal to the number of times that is specified + in the next step. + + + + + Provides extension methods for . + + + + + Specifies the value to return when the configured call is made. + + The type of the return value. + The configuration to extend. + The value to return. + A configuration object. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The type of the return value. + The configuration to extend. + A function that produces the return value. + A configuration object. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The type of the return value. + Type of the first argument of the faked method call. + The configuration to extend. + A function that produces the return value. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Configures the call to return the next value from the specified sequence each time it's called. Null will + be returned when all the values in the sequence has been returned. + + + The type of return value. + + + The call configuration to extend. + + + The values to return in sequence. + + + + + Handles the registration of root dependencies in an IoC-container. + + + + + Registers the dependencies. + + The container to register the dependencies in. + + + + DTO for recorded calls. + + + + + Initializes a new instance of the class. + + The method. + The output arguments. + The return value. + + + + Gets the method that was called. + + The method. + + + + Gets the output arguments of the call. + + The output arguments. + + + + Gets the return value of the call. + + The return value. + + + + Represents storage for recorded calls for self initializing + fakes. + + + + + Loads the recorded calls for the specified recording. + + The recorded calls for the recording with the specified id. + + + + Saves the specified calls as the recording with the specified id, + overwriting any previous recording. + + The calls to save. + + + + Initializes a new instance of the class. + + Name of the file. + The file system. + + + + Loads the recorded calls for the specified recording. + + + The recorded calls for the recording with the specified id. + + + + + Saves the specified calls as the recording with the specified id, + overwriting any previous recording. + + The calls to save. + + + + A factory responsible for creating instances of FileStorage. + + The file name of the storage. + A FileStorage instance. + + + + An interface for recorders that provides stored responses for self initializing fakes. + + + + + Applies the call if the call has been recorded. + + The call to apply to from recording. + + + + Records the specified call. + + The call to record. + + + + Gets a value indicating whether the recorder is currently recording. + + + + + An exception that can be thrown when recording for self initialized + fakes fails or when playback fails. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Manages the applying of recorded calls and recording of new calls when + using self initialized fakes. + + + + + Initializes a new instance of the class. + + The storage. + + + + Applies the call if the call has been recorded. + + The call to apply to from recording. + + + + Records the specified call. + + The call to record. + + + + Saves all recorded calls to the storage. + + + + + Gets a value indicating whether the recorder is currently recording. + + + + + + Represents a factory responsible for creating recording manager + instances. + + The storage the manager should use. + A RecordingManager instance. + + + + A call rule use for self initializing fakes, delegates call to + be applied by the recorder. + + + + + Initializes a new instance of the class. + + The wrapped rule. + The recorder. + + + + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + + The call to check for applicability. + True if the interceptor is applicable. + + + + Applies an action to the call, might set a return value or throw + an exception. + + The call to apply the interceptor to. + + + + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. + + + + + + An attribute that can be applied to code that should be fixed because there's a + code smell. + + + + + Gets or sets the description of the smell. + + + + + Provides extension methods for . + + + + + Provides extension methods for . + + + + + Replaces the format item in a specified System.String with the text equivalent + of the value of a corresponding System.Object instance in a specified array using + invariant culture as . + + A composite format string. + An array containing zero or more objects to format. + The formatted string. + + + + Provides extension methods for . + + + + + Used to tag fields and properties that will be initialized as a SUT through the Fake.Initialize-method. + + + + + Provides helper methods for checking the value producer signature against call signatures. + + + + + Provides extension methods for . + + + + + Applies a predicate to constrain which calls will be considered for interception. + + The return type of the where method. + The configuration object to extend. + A predicate for a fake object call. + The configuration object. + + + diff --git a/dep/FakeItEasy.1.18.0/lib/net40/FakeItEasy.dll b/dep/FakeItEasy.1.18.0/lib/net40/FakeItEasy.dll new file mode 100644 index 0000000000000000000000000000000000000000..adb39c9aebf7c27b2062b3f773f3391e2dd21145 GIT binary patch literal 651776 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%0DmfyjQuZ>MgAX zjxs7+4THakb!e~BX){q`fO70BrDScF3?wBA9smO*4aR1?a?li%`a8Hr(}*Pxn4N8b zH01f$u85>#m!Qz+=y<5`x2?Z#)5lipV{1Ejsyr^b{%bw2Zcx-a(C4kLNyK>U(nZCL zuqxLy77f{qN@*LHU`MGwQgCd2*3zZ#)$ymhOjQ`6e`FPHE2`eh z&$YI;Wd$n`Dyl>+qob0XKe1I%b#}^UzMiJ4Z!t|(U4QRqirBWQ zRdw@{AXFPF`z^}abXK>n0VBfh){^@1s@7jBrvmbRs151-0stCGXt25!wInFIHg&EQ zQ)rsug$}`E4OFlCed!fLXNohZpv0U zQSc?Tz3sYMHiL63*EVWf*m|m5Z5PznHVN+`u7XMs#xbe%ztEr(SEFRyYNRO#NRX(u zOH`Ax11hboA8H=-7{CUygaIJ}6!!zW=5fH7Tq3ch&}s@mAHUR0R9+VPRM9M)%0)~1 zE)uUIX1{2?$fB;i4s#6|Q6R7++UZT90ZCUM#_Nh3BYszs+^e@*sn?5Jx0O~Ft6D}| zN&6Lj*nUj0w4yObq{(Hyo7zR1S|e!!jubDw*-m7;1+_o6ol#Zp(6@$o?ofj0On~_J z1s%E{Y2VSH4vZl{b=grVau0{~hq zEm>iqjj%%4F%z;6ipNrdNYG`9^fOJAzwK(u6gKQ6?qRG9@QC`?LqQP?Az0oMpzm5- z0V^PazsV>_i`vUKiGm!UtI}^m1FKo!6E%IMSosASu<}AkGEl1P*JiK_X`Mx(wqbU_ zc1-G&-a#&C{?Nmc77A$vV~nd_LL<-00*Gmya=2M{5)Znm*m`LXYCRBvW~NRd0erTs(gBNi(soWhkXR>!KUt$9*+&cIHp%6K*xNkwE)^?w$wI2Ng@t4+VV|3oV0Bu& zsO7vyrMY%}`l_}zCF8ZrxxNI_1e}J|vQ9EznuB@?Xf=Qmni!v&59Y@wm^z8_KbMq~Dpy>TAyXzR#QEeNS-oK5n>v+74tnroI_hTYoS@t!~%hJ@MdkMvF zC`}PMgXX@kt!K6GeZJo53l6txD{sk$^;)*bs6KBrb44&{ey(7rsvef1zQ3r^$ZTw- zgtm-@-vgn^HH3>*844;8XytXA6qz3;mn;$`(k)u)gqpPnOvq4xg`vqZ6Gv;gYr%F~ z3Dwd&+aydvhOL@Hc`aV@(PCvAE9F`>iO@|2efv6;W?cFbWcvp;6|{#EB zF5y)E*Oq7_n2oCiyqXLvx@$6jcnys^W*R6Y&E8rGi|k| zQ`F**_LbsLFv%Q9G^=E*S`#blS5+72Smx{6D3@Nxo-1^+CKZkG#mdea#Svq^ghu6P zv1!A8S!81Yi9-uiPsc!9Xt7H1GGamtXw?w{-;Y_3$AA=p7nbz2z~vu>K=qZF@@h

hi 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 literal 0 HcmV?d00001 diff --git a/dep/FakeItEasy.1.18.0/lib/net40/FakeItEasy.xml b/dep/FakeItEasy.1.18.0/lib/net40/FakeItEasy.xml new file mode 100644 index 00000000000..fe82e49ad52 --- /dev/null +++ b/dep/FakeItEasy.1.18.0/lib/net40/FakeItEasy.xml @@ -0,0 +1,3693 @@ + + + + FakeItEasy + + + +

+ Provides methods for generating fake objects. + + + + + Creates a fake object of the type T. + + The type of fake object to create. + A fake object. + + + + Creates a fake object of the type T. + + The type of fake object to create. + A lambda where options for the built fake object can be specified. + A fake object. + + + + Creates a collection of fakes of the specified type. + + The type of fakes to create. + The number of fakes in the collection. + A collection of fake objects of the specified type. + + + + Gets a dummy object of the specified type. The value of a dummy object + should be irrelevant. Dummy objects should not be configured. + + The type of dummy to return. + A dummy object of the specified type. + Dummies of the specified type can not be created. + + + + Gets a value indicating whether the two objects are equal. + + The first object to compare. + The second object to compare. + True if the two objects are equal. + + + + Gets a value indicating whether the two objects are the same reference. + + The object A. + The object B. + True if the objects are the same reference. + + + + Configures a call to a faked object. + + An expression where the configured member is called. + A configuration object. + + + + Gets a configuration object allowing for further configuration of + any call to the specified faked object. + + + The fake to configure. + + + A configuration object. + + + + + Configures a call to a faked object. + + The type of member on the faked object to configure. + An expression where the configured member is called. + A configuration object. + + + + Provides configuration for any (not a specific) call on a faked object. + + + + + Gets a configuration object allowing for further configuration of + any call to the specified faked object. + + The faked object to configure. + A configuration object. + + + + Gets a value indicating whether the two objects are equal. + + The first object to compare. + The second object to compare. + True if the two objects are equal. + + + + Gets a value indicating whether the two objects are the same reference. + + The object A. + The object B. + True if the objects are the same reference. + + + + Provides string formatting for arguments of type T when written in call lists. + + The type of the arguments which will be formatted by this instance. + + + + Provides string formatting for arguments when written in + call lists. + + + + + Gets a string representing the specified argument value. + + The argument value to get as a string. + A string representation of the value. + + + + Gets the type of arguments this formatter works on. + + + + + Gets the priority of the formatter, when two formatters are + registered for the same type the one with the highest + priority is used. + + + + + Gets a string representing the specified argument value. + + The argument value to get as a string. + A string representation of the value. + + + + Gets a string representing the specified argument value. + + The argument value to get as a string. + A string representation of the value. + + + + Gets the type of arguments this formatter works on. + + + + + Gets the priority of the formatter, when two formatters are + registered for the same type the one with the highest + priority is used. + + + + + Provides the base for rules that can be built using the FakeConfiguration. + + + + + Represents a call rule that has a description of the calls the + rule is applicable to. + + + + + Allows for intercepting call to a fake object and + act upon them. + + + + + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + + The call to check for applicability. + True if the interceptor is applicable. + + + + Applies an action to the call, might set a return value or throw + an exception. + + The call to apply the interceptor to. + + + + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. + + + + + Writes a description of calls the rule is applicable to. + + The writer. + + + + Gets if this rule is applicable to the specified call. + + The call to validate. + True if the rule applies to the call. + + + + Writes a description of calls the rule is applicable to. + + The writer to write the description to. + + + + Gets or sets an action that is called by the Apply method to apply this + rule to a fake object call. + + + + + Gets a collection of actions that should be invoked when the configured + call is made. + + + + + Gets or sets values to apply to output and reference variables. + + + + + Gets or sets a value indicating whether the base method of the fake object call should be + called when the fake object call is made. + + + + + Gets or sets the number of times the configured rule should be used. + + + + + Gets a description of calls the rule is applicable to. + + + + + + Aggregate of IReturnValueArgumentValidationConfiguration<T> and IWhereConfiguration<IAnyCallConfigurationWithReturnTypeSpecified<T>>. + + The type of fake object that is configured. + + + + Configures a call that returns a value and allows the use to + specify validations for arguments. + + The type of the member. + + + + Configures a call that returns a value. + + The type of the member. + + + + Configuration that lets the developer specify that an exception should be + thrown by a fake object call. + + + + + Hides standard Object members to make fluent interfaces + easier to read. Found in the source of Autofac: + Based on blog post here: + + + + + + Hides the ToString-method. + + A string representation of the implementing object. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the type. + + The exact runtime type of the current instance. + + + + Throws the specified exception when the currently configured + call gets called. + + A function that creates the exception to throw. + Configuration object. + + + + Configuration for callbacks of fake object calls. + + The type of interface to return. + + + + Executes the specified action when a matching call is being made. + + The action to invoke. + A configuration object. + + + + Allows the developer to assert on a call that's configured. + + + + + Asserts that the configured call has happened the number of times + constrained by the repeatConstraint parameter. + + A constraint for how many times the call + must have happened. + The call has not been called a number of times + that passes the repeat constraint. + + + + Configuration that lets you specify that a fake object call should call it's base method. + + + + + When the configured method or methods are called the call + will be delegated to the base method of the faked method. + + A configuration object. + The fake object is of an abstract type or an interface + and no base method exists. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + A function that produces the return value. + A configuration object. + + + + Provides configurations to validate arguments of a fake object call. + + The type of interface to return. + + + + Configures the call to be accepted when the specified predicate returns true. + + The argument predicate. + A configuration object. + + + + Provides a way to configure predicates for when a call should be applied. + + The type of fake object that is going to be configured.. + + + + Applies a predicate to constrain which calls will be considered for interception. + + A predicate for a fake object call. + An action that writes a description of the predicate + to the output. + The configuration object. + + + + Provides an API entry point for constraining arguments of fake object calls. + + The type of argument to validate. + + + + Gets an argument constraint object that will be used to constrain a method call argument. + + + + + Gets a constraint that considers any value of an argument as valid. + + This is a shortcut for the "Ignored"-property. + + + + Gets a constraint that considers any value of an argument as valid. + + + + + Determines whether an assembly references FakeItEasy. + + The assembly to check. + Whether or not the assembly references FakeItEasy. + + + + Locate an implementation. + + + Will search the app domain for a concrete implementation, + and if it can't find one will use the . + + + + + Scans app domain assemblies looking for a concrete implementation of + that is not the . + Otherwise, the first matching type is instantiated and returned, or an + instance of DefaultBootstrapper is used if no other implementation is found. + + An instance of the first non-default IBootstrapper implementation found, + or a DefaultBootstrapper. + + + + The default bootstrapper, used to initialize FakeItEasy unless another + implementation of is present in the assemblies + loaded in the app domain. + + + + + Bootstrapper for FakeItEasy. + + + When FakeItEasy is initialized, it scans the executing app domain for implementations + of this interface. If any are found, one will be instantiated and used to bootstrap + FakeItEasy. If no implementations are found, then a + will be used. + The recommended way to implement IBootstrapper is to extend DefaultBootstrapper + and override selected methods. + + + + + Provides a list of assembly file names to scan for extension points, such as + s, s, and + s. + + A list of absolute paths pointing to assemblies to scan for extension points. + + + + When overridden in a derived class, provides a custom list of assembly file + names to scan for extension points, such as + s, s, and + s. + + This implementation returns the absolute paths of all the DLLs in the + . + + A list of absolute paths of to assemblies to scan for extension points. + + + + Provides extension methods for . + + + + + Provides extension methods for . + + + + + Provides extension methods for . + + + + + Provides extension methods for . + + + + + Replaces the format item in a specified System.String with the text equivalent + of the value of a corresponding System.Object instance in a specified array using + invariant culture as . + + A composite format string. + An array containing zero or more objects to format. + The formatted string. + + + + Provides extension methods for . + + + + + Specifies the value to return when the configured call is made. + + The type of the return value. + The configuration to extend. + The value to return. + A configuration object. + + + + Specifies the value to return when the configured call is made. + + The type of the return value. + The configuration to extend. + The value to return. + A configuration object. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The type of the return value. + The configuration to extend. + A function that produces the return value. + A configuration object. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The type of the return value. + Type of the first argument of the faked method call. + The configuration to extend. + A function that produces the return value. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Configures the call to return the next value from the specified sequence each time it's called. Null will + be returned when all the values in the sequence has been returned. + + + The type of return value. + + + The call configuration to extend. + + + The values to return in sequence. + + + + + Provides extension methods for . + + + + + Specifies that a call to the configured call should be applied no matter what arguments + are used in the call to the faked object. + + The type of the interface. + The configuration. + A configuration object. + + + + Provides extension methods for . + + + + + Asserts that the specified call must have happened once or more. + + The configuration to assert on. + + + + Asserts that the specified call has not happened. + + The configuration to assert on. + + + + Provides the extension methods for . + + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + The exception to throw when a call that matches is invoked. + Configuration object. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Configuration object. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + The type of exception to throw. + Configuration object. + + + + Provides extension methods for . + + + + + Executes the specified action when a matching call is being made. This overload can also be used to fake calls with arguments when they don't need to be accessed. + + The type of fake object. + The configuration that is extended. + The to invoke. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Provides extension methods for . + + + + + Applies a predicate to constrain which calls will be considered for interception. + + The return type of the where method. + The configuration object to extend. + A predicate for a fake object call. + The configuration object. + + + + Provides extension methods for . + + + + + Makes the fake strict, this means that any call to the fake + that has not been explicitly configured will throw an exception. + + The type of fake object. + The configuration. + A configuration object. + + + + Provides extension methods for . + + + + + Gets the argument at the specified index in the arguments collection + for the call. + + The type of the argument to get. + The call to get the argument from. + The index of the argument. + The value of the argument with the specified index. + + + + Gets the argument with the specified name in the arguments collection + for the call. + + The type of the argument to get. + The call to get the argument from. + The name of the argument. + The value of the argument with the specified name. + + + + Writes the calls in the collection to the specified output writer. + + The type of the calls. + The calls to write. + The writer to write the calls to. + + + + Writes all calls in the collection to the console. + + The type of the calls. + The calls to write. + + + + Gets the description of a call to a fake object. + + The call to describe. + A description of the call. + + + + Provides extensions for . + + + + + Specifies NumberOfTimes(1) to the repeat configuration. + + The configuration to set repeat 1 to. + + + + Specifies NumberOfTimes(2) to the repeat configuration. + + The configuration to set repeat 2 to. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The Apply method of the ExpressionInterceptor may no be called before the Applicator property has been set.. + + + + + Looks up a localized string similar to The specified argument name does not exist in the ArgumentList.. + + + + + Looks up a localized string similar to Arguments for constructor was specified when generating proxy of interface type.. + + + + + Looks up a localized string similar to An argument validation was not configured correctly.. + + + + + Looks up a localized string similar to The method '{0}' was called too few times, expected #{1} times but was called #{2} times.. + + + + + Looks up a localized string similar to The method '{0}' was called too many times, expected #{1} times but was called #{2} times.. + + + + + Looks up a localized string similar to Can not create fake of the type '{0}', it's not registered in the current container and the current IProxyGenerator can not generate the fake. + + The following constructors failed: + {1}. + + + + + Looks up a localized string similar to Error when accessing FakeObject, the specified argument is of the type '{0}' which is not faked.. + + + + + Looks up a localized string similar to An ExpressionCallMatcher can only be created for expressions that represents a method call or a property getter.. + + + + + Looks up a localized string similar to + + The current proxy generator failed to create a proxy with the specified arguments for the constructor: + + Reason for failure: + - {0} + + . + + + + + Looks up a localized string similar to FakeItEasy failed to create fake object of type "{0}". + + 1. The type is not registered in the current IFakeObjectContainer. + 2. The current IProxyGenerator failed to generate a proxy for the following reason: + + {1}. + + + + + Looks up a localized string similar to Unable to create fake object.. + + + + + Looks up a localized string similar to Only abstract classes can be faked using the A.Fake-method that takes an enumerable of objects as arguments for constructor, use the overload that takes an expression instead.. + + + + + Looks up a localized string similar to The member accessor expression must be a lambda expression with a MethodCallExpression or MemberAccessExpression as its body.. + + + + + Looks up a localized string similar to The specified method can not be configured since it can not be intercepted by the current IProxyGenerator.. + + + + + Looks up a localized string similar to The method of the call did not match the method of the recorded call, the recorded sequence is no longer valid.. + + + + + Looks up a localized string similar to No constructor matching the specified arguments was found on the type {0}.. + + + + + Looks up a localized string similar to Can not generate fake object for the class since no usable default constructor was found, specify a constructor call.. + + + + + Looks up a localized string similar to All the recorded calls has been applied, the recorded sequence is no longer valid.. + + + + + Looks up a localized string similar to Only expression of the type ExpressionType.New (constructor calls) are accepted.. + + + + + Looks up a localized string similar to The Now-method on the event raise is not meant to be called directly, only use it to register to an event on a fake object that you want to be raised.. + + + + + Looks up a localized string similar to The number of values for out and ref parameters specified does not match the number of out and ref parameters in the call.. + + + + + Looks up a localized string similar to A scope for ordered assertions is already opened, close that scope before opening another one.. + + + + + Looks up a localized string similar to The specified call is not made on a fake object.. + + + + + Looks up a localized string similar to The current fake proxy generator can not create proxies of the type {0}.. + + + + + Looks up a localized string similar to FakeItEasy was unable to create dummy of type "{0}", register it in the current IFakeObjectContainer to enable this.. + + + + + Looks up a localized string similar to Expected to find call {0} the number of times specified by the predicate '{1}' but found it {2} times among the calls:. + + + + + Looks up a localized string similar to The number of argument names does not match the number of arguments.. + + + + + A class exposing an event handler to attach to an event of a faked object + in order to raise that event. + + The type of the event args. + + + + Used by the event raising rule of fake objects to get the event arguments used in + a call to Raise.With. + + + + + Gets the sender of the event. + + + + + Gets the event arguments of the event. + + + + + Register this event handler to an event on a faked object in order to raise that event. + + The sender of the event. + Event args for the event. + + + + Gets a generic event handler to attach to the event to raise. + + + + + Represents a fake object that provides an API for configuring a faked object, exposed by the + FakedObject-property. + + The type of the faked object. + + + + Provides methods for configuring a fake object. + + The type of fake object. + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + The type of the return value of the member. + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call is made to any method on the + object. + + A configuration object. + + + + Initializes a new instance of the class. + Creates a new fake object. + + + + + Initializes a new instance of the class. + Creates a new fake object using the specified options. + + + Options used to create the fake object. + + + + + Configures calls to the specified member. + + An expression specifying the call to configure. + A configuration object. + + + + Configures calls to the specified member. + + The type of value the member returns. + An expression specifying the call to configure. + A configuration object. + + + + Configures any call to the fake object. + + A configuration object. + + + + Gets the faked object. + + + + + Gets all calls made to the faked object. + + + + + Provides access to all types in: + + FakeItEasy, + assemblies loaded into the current that reference FakeItEasy and + assemblies whose paths are supplied to the constructor, that also reference FakeItEasy. + + + + + + Provides a set of types that are available. + + + + + Gets a collection of available types. + + The available types. + + + + Loads the available types into the . + + + The full paths to assemblies from which to load types, + as well as assemblies loaded into the current . + + + + + Gets a collection of available types. + + The available types. + + + + Configuration for any call to a faked object. + + + + + Provides configuration methods for methods that does not have a return value and + allows the use to specify validations for arguments. + + + + + Provides configuration methods for methods that does not have a return value. + + + + + Lets the developer configure output values of out and ref parameters. + + + + + Specifies output values for out and ref parameters. Specify the values in the order + the ref and out parameters has in the configured call, any non out and ref parameters are ignored. + + The values. + A configuration object. + + + + Configures the specified call to do nothing when called. + + A configuration object. + + + + Matches calls that has the return type specified in the generic type parameter. + + The return type of the members to configure. + A configuration object. + + + + Manages registration of a set of components in a DictionaryContainer. + + + + + Registers the components of this module. + + The container to register components in. + + + + A factory that creates instances of the RecordingCallRuleType. + + + + + Creates the specified fake object. + + The type of the fake. + The fake object the rule belongs to. + The rule that's being recorded. + A RecordingCallRule instance. + + + + A factory responsible for creating start configuration for fake objects. + + + + + Creates a start configuration for the specified fake object that fakes the + specified type. + + The type of the fake object. + The fake object to configure. + A configuration object. + + + + An exception that can be thrown when something goes wrong with the configuration + of a fake object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Handles the configuration of fake object given an expression specifying + a call on a faked object. + + + + + Lets you set up expectations and configure repeat for the configured call. + + + + + Provides configuration for method calls that has a return value. + + + + + Specifies the number of times for the configured event. + + The number of times to repeat. + + + + A combination of the IAfterCallSpecifiedConfiguration and IOutAndRefParametersConfiguration + interfaces. + + + + + Configurations for when a configured call is recorded. + + + + + Provides configuration from VisualBasic. + + + + + A call rule that has been recorded. + + + + + A call rule that "sits and waits" for the next call, when + that call occurs the recorded rule is added for that call. + + The type of the fake. + + + + Provides access to a set of calls and a call matcher for these calls. + + + + + Provides access to a call matcher. + + + + + Gets a call predicate that can be used to check if a fake object call matches + the specified constraint. + + + + + Gets the set of calls. + + + + + Represents a delegate that creates a configuration object from + a fake object and the rule to build. + + The rule that's being built. + The fake object the rule is for. + A configuration object. + + + + Represents a predicate that matches a fake object call. + + + + + Gets a value indicating whether the call matches the predicate. + + The call to match. + True if the call matches the predicate. + + + + Represents an argument and a dummy value to use for that argument. + + + + + Initializes a new instance of the class. + + A value indicating if the dummy value was successfully resolved. + The type of argument. + The resolved value. + + + + Gets a value indicating whether a dummy argument value was successfully + resolved. + + + + + Gets the type of the argument. + + + + + Gets the resolved value. + + + + + Holds a formatter as well as the distance between a type to be formatted + and the type for which the formatted is registered. + + + + + Represents an event that happens when a call has been intercepted by a proxy. + + + + + Initializes a new instance of the class. + + The call. + + + + Gets the call that was intercepted. + + The call. + + + + Keeps track of metadata for interceptions. + + + + + Gets whether the rule has been called the number of times specified or not. + + True if the rule has not been called the number of times specified. + + + + Gets or sets the number of times the rule has been used. + + + + + Gets or sets the rule this metadata object is tracking. + + + + + Manages attaching of argument constraints. + + The type of argument to constrain. + + + + Constrains the argument with a predicate. + + The predicate that should constrain the argument. + An action that will be write a description of the constraint. + A dummy argument value. + + + + Inverts the logic of the matches method. + + + + + Validates an argument, checks that it's valid in a specific fake call. + + + + + Writes a description of the argument constraint to the specified writer. + + + The writer. + + + + + Gets whether the argument is valid. + + The argument to validate. + True if the argument is valid. + + + + Default implementation of . + + + + + Attaches a fake manager to the proxy so that intercepted + calls can be configured. + + + + + Attaches a to the specified proxy, listening to + the event raiser. + + The type of the fake object proxy. + The proxy to attach to. + The event raiser to listen to. + + + + Gets the fake manager associated with the proxy. + + The proxy to get the manager from. + A fake manager. + + + + Attaches a to the specified proxy, listening to + the event raiser. + + The type of the fake object proxy. + The proxy to attach to. + The event raiser to listen to. + + + + Gets the fake manager associated with the proxy. + + The proxy to get the manager from. + A fake manager. + + + + Represents an object that can be tagged with another object. When implemented + by a proxy returned from an FakeItEasy uses the tag + to store a reference to the that handles that proxy. + + + + + Gets or sets the tag. + + + + + The default implementation of the IFakeObjectCallFormatter interface. + + + + + Provides string formatting for fake object calls. + + + + + Gets a human readable description of the specified + fake object call. + + The call to get a description for. + A description of the call. + + + + Gets a human readable description of the specified + fake object call. + + The call to get a description for. + A description of the call. + + + + Handles configuring of fake objects to delegate all their calls to a wrapped instance. + + + + + Manages configuration of fake objects to wrap instances. + + + + + Configures the specified faked object to wrap the specified instance. + + The faked object to configure. + The instance to wrap. + The recorder to use, null if no recording should be made. + + + + Configures the specified faked object to wrap the specified instance. + + The faked object to configure. + The instance to wrap. + The recorder to use, null if no recording should be made. + + + + A fake object container where delegates can be registered that are used to + resolve fake objects. + + + + + A container that can create fake objects. + + + + + Handles global configuration of fake object. + + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + + + + Creates a dummy object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + + The type of dummy object to create. + The dummy object that was created if the method returns true. + True if a dummy object can be created. + + + + Initializes a new instance of the class. + Creates a new instance of the DelegateFakeObjectContainer. + + + + + Creates a fake object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + + The type of dummy object to create. + The fake object that was created if the method returns true. + True if a fake object can be created. + + + + Configures the fake. + + The type of fake. + The fake object. + + + + Registers the specified fake delegate. + + The type of the return value of the method that encapsulates. + The fake delegate. + + + + A IFakeObjectContainer implementation that uses MEF to load IFakeDefinitions and + IFakeConfigurations. + + + + + Initializes a new instance of the class. + + The dummy definitions. + The fake configurators. + + + + Creates a fake object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + + The type of fake object to create. + The fake object that was created if the method returns true. + True if a fake object can be created. + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + + + + An exception that is thrown when there was an error creating a fake object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + Auto fake property rule. + + The central point in the API for proxied fake objects handles interception + of fake object calls by using a set of rules. User defined rules can be inserted + by using the AddRule-method. + + Event rule. + Object member rule. + Property behavior rule. + Property setter rule. + + + + Initializes a new instance of the class. + + + + + Adds a call rule to the fake object. + + The rule to add. + + + + Adds a call rule last in the list of user rules, meaning it has the lowest priority possible. + + The rule to add. + + + + Removes the specified rule for the fake object. + + The rule to remove. + + + + Adds an interception listener to the manager. + + The listener to add. + + + + Removes any specified user rules. + + + + + Gets the faked object. + + + + + Gets the faked type. + + + + + Gets the interceptions that are currently registered with the fake object. + + + + + Gets a collection of all the calls made to the fake object within the current scope. + + + + + A delegate responsible for creating FakeObject instances. + + An instance of . + + + + Represents a call to a fake object at interception time. + + + + + Represents a fake object call that can be edited. + + + + + Represents a call to a fake object. + + + + + Gets the method that's called. + + + + + Gets the arguments used in the call. + + + + + Gets the faked object the call is performed on. + + + + + Sets the return value of the call. + + The return value to set. + + + + Calls the base method of the faked type. + + + + + Sets the value of the argument at the specified index in the parameters list. + + The index of the argument to set the value of. + The value to set to the argument. + + + + Freezes the call so that it can no longer be modified. + + A completed fake object call. + + + + Sets that the call should not be recorded by the fake manager. + + + + + Attempts to preserve the stack trace of an existing exception when rethrown via throw or throw ex. + + Nicked from + http://weblogs.asp.net/fmarguerie/archive/2008/01/02/rethrowing-exceptions-and-preserving-the-full-call-stack-trace.aspx. + If reduced trust context (for example) precludes + invoking internal members on , the stack trace will not be preserved. + + The exception whose stack trace needs preserving. + + + + Represents a scope for fake objects, calls configured within a scope + are only valid within that scope. Only calls made within a scope + are accessible from within a scope so for example asserts will only + assert on those calls done within the scope. + + + + + Provides access to all calls made to fake objects within a scope. + Scopes calls so that only calls made within the scope are visible. + + + + + Creates a new scope and sets it as the current scope. + + The created scope. + + + + Creates a new scope and sets it as the current scope, using the specified + container as the container for the new scope. + + The container to use for the new scope. + The created scope. + + + + Closes the scope. + + + + + Adds an intercepted call to the current scope. + + The fake object. + The call that is intercepted. + + + + Adds a fake object call to the current scope. + + The fake object. + The rule to add. + + + + Represents a listener for fake object calls, can be plugged into a + FakeManager instance to listen to all intercepted calls. + + The OnBeforeCallIntercepted method will be invoked before the OnBeforeCallIntercepted method of any + previously added listener. The OnAfterCallIntercepted method will be invoked after the OnAfterCallIntercepted + method of any previously added listener. + + + + Called when the interception begins but before any call rules + has been applied. + + The intercepted call. + + + + Called when the interception has been completed and rules has been + applied. + + The intercepted call. + The rule that was applied to the call. + + + + An interface to be implemented by classes that can generate proxies for FakeItEasy. + + + + + Generates a proxy of the specified type and returns a result object containing information + about the success of the generation and the proxy if it was generated. + + The type of proxy to generate. + Interfaces to be implemented by the proxy. + Arguments to pass to the constructor of the type in . + The custom attribute builders. + A result containing the generated proxy. + + + + Generates a proxy of the specified type and returns a result object containing information + about the success of the generation and the proxy if it was generated. + + The type of proxy to generate. + Interfaces to be implemented by the proxy. + Arguments to pass to the constructor of the type in . + A result containing the generated proxy. + + + + Gets a value indicating whether the specified member can be intercepted by the proxy generator. + + The member to test. + The instance the method will be called on. + The reason the method can not be intercepted. + True if the member can be intercepted. + + + + An object that raises an event every time a call to a proxy has been intercepted. + + + + + Raised when a call is intercepted. + + + + + Represents a completed call to a fake object. + + + + + Gets the value set to be returned from the call. + + + + + Represents a text writer that writes to the output. + + + + + Writes the specified value to the output. + + The value to write. + The writer for method chaining. + + + + Formats the specified argument value as a string and writes + it to the output. + + The value to write. + The writer for method chaining. + + + + Indents the writer. + + A disposable that will unindent the writer when disposed. + + + + Provides instances from type catalogues. + + + + + Gets an instance per type in the catalogue that is a descendant + of the specified type. + + The type of instances to get. + A sequence of instances of the specified type. + + + + Handles comparisons of instances of . + + + + + Gets a value indicating whether the two instances of would invoke the same method + if invoked on an instance of the target type. + + The type of target for invocation. + The first . + The second . + True if the same method would be invoked. + + + + A null implementation for the IFakeObjectContainer interface. + + + + + Always returns false and sets the fakeObject to null. + + The type of dummy object to create. + Output variable for the fake object that will always be set to null. + Always return false. + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + + + + A call rule that applies to any call and just delegates the + call to the wrapped object. + + + + + Initializes a new instance of the class. + Creates a new instance. + + + The object to wrap. + + + + + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + + The call to check for applicability. + True if the interceptor is applicable. + + + + Applies an action to the call, might set a return value or throw + an exception. + + The call to apply the interceptor to. + + + + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. + + + + + + An adapter that adapts an to a . + + + + + Initializes a new instance of the class. + + The invocation. + + + + Freezes the call so that it can no longer be modified. + + A completed fake object call. + + + + Calls the base method, should not be used with interface types. + + + + + Sets the specified value to the argument at the specified index. + + The index of the argument to set the value to. + The value to set to the argument. + + + + Sets the return value of the call. + + The return value. + + + + Returns a description of the call. + + + A that represents this instance. + + + + + Gets a human readable description of the call. + + + + + + Gets the value set to be returned from the call. + + + + + Gets the method that's called. + + + + + Gets the arguments used in the call. + + + + + Gets the faked object the call is performed on. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to No constructor matches the passed arguments for constructor.. + + + + + Looks up a localized string similar to Arguments for constructor specified for interface type.. + + + + + Looks up a localized string similar to The type of proxy "{0}" is sealed.. + + + + + Looks up a localized string similar to The type of proxy must be an interface or a class but it was {0}.. + + + + + Looks up a localized string similar to No usable default constructor was found on the type {0}.. + + + + + The default implementation of the IFakeAndDummyManager interface. + + + + + Handles the creation of fake and dummy objects. + + + + + Creates a dummy of the specified type. + + The type of dummy to create. + The created dummy. + The current IProxyGenerator is not able to generate a fake of the specified type and + the current IFakeObjectContainer does not contain the specified type. + + + + Creates a fake object of the specified type. + + The type of fake object to generate. + Options for building the fake object. + A fake object. + The current IProxyGenerator is not able to generate a fake of the specified type. + + + + Tries to create a dummy of the specified type. + + The type of dummy to create. + Outputs the result dummy when creation is successful. + A value indicating whether the creation was successful. + + + + Tries to create a fake object of the specified type. + + The type of fake to create. + Options for the creation of the fake. + The created fake object when creation is successful. + A value indicating whether the creation was successful. + + + + Default implementation of the IFakeCreator-interface. + + + + + A facade used by the public API for testability. + + + + + Creates a fake object of the specified type. + + The type of fake to create. + Options for the created fake object. + The created fake object. + Was unable to generate the fake in the current configuration. + + + + Creates a dummy object, this can be a fake object or an object resolved + from the current IFakeObjectContainer. + + The type of dummy to create. + The created dummy. + Was unable to generate the fake in the current configuration and + no dummy was registered in the container for the specified type.. + + + + Creates a collection of fakes of the specified type. + + The type of fakes to create. + The number of fakes in the collection. + A collection of fake objects of the specified type. + + + + Initializes a new instance of the class. + + The fake and dummy manager. + + + + Creates a fake object of the specified type. + + The type of fake to create. + Options for the created fake object. + The created fake object. + Was unable to generate the fake in the current configuration. + + + + Creates a collection of fakes of the specified type. + + The type of fakes to create. + The number of fakes in the collection. + + A collection of fake objects of the specified type. + + + + + Creates a dummy object, this can be a fake object or an object resolved + from the current IFakeObjectContainer. + + The type of dummy to create. + The created dummy. + Was unable to generate the fake in the current configuration and + no dummy was registered in the container for the specified type.. + + + + Provides options for fake wrappers. + + The type of the fake object generated. + + + + Provides options for generating fake object. + + The type of fake object generated. + + + + Specifies arguments for the constructor of the faked class. + + The arguments to pass to the constructor of the faked class. + Options object. + + + + Specifies arguments for the constructor of the faked class by giving an expression with the call to + the desired constructor using the arguments to be passed to the constructor. + + The constructor call to use when creating a class proxy. + Options object. + + + + Specifies that the fake should delegate calls to the specified instance. + + The object to delegate calls to. + Options object. + + + + Specifies that the fake should be created with these additional attributes. + + The attributes to build into the proxy. + Options object. + + + + Sets up the fake to implement the specified interface in addition to the + originally faked class. + + The type of interface to implement. + Options object. + The specified type is not an interface. + The specified type is null. + + + + Specifies an action that should be run over the fake object + once it's created. + + An action to perform. + Options object. + + + + Specifies a fake recorder to use. + + The recorder to use. + Options object. + + + + Initializes a new instance of the class. + + The container. + The fake object creator. + + + + Contains the result of a call to TryCreateProxy of IProxyGenerator. + + + + + Initializes a new instance of the class. + Creates a new instance representing a failed proxy + generation attempt. + + + The reason the proxy generation failed. + + + + + Initializes a new instance of the class. + Creates a new instance representing a failed proxy + generation attempt due to an exception being caught. + + + The reason the proxy generation failed. + + + The exception thrown from the creation attempt. + + + + + Initializes a new instance of the class. + Creates a new instance representing a successful proxy + generation. + + + The proxy that was generated. + + + An event raiser that raises + events when calls are intercepted to the proxy. + + + + + Gets a value indicating whether the proxy was successfully created. + + + + + Gets the generated proxy when it was successfully created. + + + + + Gets the event raiser that raises events when calls to the proxy are + intercepted. + + + + + Gets the reason for failure when the generation was not successful. + + + + + Represents a class that can parse a lambda expression + that represents a method or property call. + + + + + Parses the specified expression. + + The expression to parse. + The parsed expression. + + + + Handles the matching of fake object calls to expressions. + + + + + Initializes a new instance of the class. + + The call specification. + The constraint factory. + The method info manager to use. + A parser to use to parse call expressions. + + + + Matches the specified call against the expression. + + The call to match. + True if the call is matched by the expression. + + + + Gets a description of the call. + + Description of the call. + + + + Gets a human readable description of calls that will be matched by this + matcher. + + + + + An implementation of the interface that uses + expressions for evaluating if the rule is applicable to a specific call. + + + + + Initializes a new instance of the class. + + The expression matcher to use. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Handles the instantiation of ExpressionCallRule instance. + + An expression specifying the call. + A rule instance. + + + + Manages breaking call specification expression into their various parts. + + + + + Manages breaking call specification expression into their various parts. + + + + + Gets the fake object an expression is called on. + + The call expression. + The FakeManager instance that manages the faked object the call is made on. + The fakeObjectCall is null. + The specified expression is not an expression where a call is made to a faked object. + + + + Gets the fake object an expression is called on. + + The call expression. + A FakeObject. + The fakeObjectCall is null. + The specified expression is not an expression where a call is made to a faked object. + + + + Provides extension methods for configuring and asserting on faked objects + without going through the static methods of the Fake-class. + + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + The type of fake object to configure. + The type of the return value of the member. + The faked object to configure. + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + The faked object to configure. + The type of fake object to configure. + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call is made to any method on the + object. + + The type of the fake. + The faked object. + A configuration object. + + + + Provides an extension method for configuring fake objects. + + + + + Gets an object that provides a fluent interface syntax for configuring + the fake object. + + The type of the fake object. + The fake object to configure. + A configuration object. + The fakedObject was null. + The object passed in is not a faked object. + + + + Used to tag fields and properties that will be initialized through the + Fake.Initialize-method. + + + + + A simple implementation of an IoC container. + + + + + The dictionary that stores the registered services. + + + + + Initializes a new instance of the class. + + + + + Resolves an instance of the specified component type. + + Type of the component. + An instance of the component type. + + + + Registers the specified resolver. + + The type of component to register. + The resolver. + + + + Registers the specified resolver as a singleton. + + The type of component to register. + The resolver. + + + + Provides properties and methods to specify repeat. + + + + + Specifies the number of times as repeat. + + The number of times expected. + A Repeated instance. + + + + Specifies once as the repeat. + + + + + Specifies twice as the repeat. + + + + + Provides functionality for making ordered assertions on fakes. + + + + + Creates a scope that changes the behavior on asserts so that all asserts within + the scope must be to calls in the specified collection of calls. Calls must have happened + in the order that the asserts are specified or the asserts will fail. + + The calls to assert among. + A disposable used to close the scope. + + + + Provides extension methods for . + + + + + Filters to contain only the calls that matches the call specification. + + The type of fake the call is made on. + The calls to filter. + The call to match on. + A collection of the calls that matches the call specification. + + + + Provides the base implementation for the IFakeConfigurator-interface. + + The type of fakes the configurator can configure. + + + + Provides configurations for fake objects of a specific type. + + + + + Applies the configuration for the specified fake object. + + The fake object to configure. + + + + Gets the type the instance provides configuration for. + + + + + Configures the fake. + + The fake object. + + + + Applies the configuration for the specified fake object. + + The fake object to configure. + + + + Asserts the type of the that fake is of correct. + + The fake object. + + + + Gets the type the instance provides configuration for. + + + + + + Represents a definition of how a fake object of the type T should + be created. + + The type of fake. + + + + Represents a definition of how dummies of the specified type should be created. + + + + + Creates the fake. + + The fake object. + + + + Gets the type of fake object the definition is for. + + + + + Creates the dummy. + + The dummy object. + + + + Creates the dummy. + + The dummy object. + + + + Gets the type the definition is for. + + For type. + + + + Provides validation extensions for . + + + + + Constrains an argument so that it must be null (Nothing in VB). + + The type of the argument. + The constraint manager to match the constraint. + A dummy argument value. + + + + Constrains the string argument to contain the specified text. + + The constraint manager to match the constraint. + The string the argument string should contain. + A dummy argument value. + + + + Constrains the sequence so that it must contain the specified value. + + The constraint manager to match the constraint. + The value the collection should contain. + The type of sequence. + A dummy argument value. + + + + Constrains the string so that it must start with the specified value. + + The constraint manager to match the constraint. + The value the string should start with. + A dummy argument value. + + + + Constrains the string so that it must end with the specified value. + + The constraint manager to match the constraint. + The value the string should end with. + A dummy argument value. + + + + Constrains the string so that it must be null or empty. + + The constraint manager to match the constraint. + A dummy argument value. + + + + Constrains argument value so that it must be greater than the specified value. + + The constraint manager to match the constraint. + The value the string should start with. + The type of argument to constrain. + A dummy argument value. + + + + The tested argument collection should contain the same elements as the + as the specified collection. + + The constraint manager to match the constraint. + The sequence to test against. + The type of argument to constrain. + A dummy argument value. + + + + Tests that the IEnumerable contains no items. + + The type of argument. + The constraint manager to match the constraint. + A dummy argument value. + + + + Tests that the passed in argument is equal to the specified value. + + The type of the argument. + The constraint manager to match the constraint. + The value to compare to. + A dummy argument value. + + + + Tests that the passed in argument is the same instance (reference) as the specified value. + + The type of the argument. + The constraint manager to match the constraint. + The reference to compare to. + A dummy argument value. + + + + Constrains the argument to be of the specified type. + + The type of argument in the method signature. + The constraint manager. + The type to constrain the argument with. + A dummy value. + + + + Constrains the argument with a predicate. + + + The constraint manager. + + + The predicate that should constrain the argument. + + + A human readable description of the constraint. + + + The type of argument in the method signature. + + + A dummy argument value. + + + + + Constrains the argument with a predicate. + + + The constraint manager. + + + The predicate that should constrain the argument. + + + A human readable description of the constraint format string. + + + Arguments for the format string. + + + The type of argument in the method signature. + + + A dummy argument value. + + + + + Constrains the argument with a predicate. + + + The constraint manager. + + + The predicate that should constrain the argument. + + + The type of argument in the method signature. + + + A dummy argument value. + + + + + Constrains the argument to be not null (Nothing in VB) and to match + the specified predicate. + + The type of the argument to constrain. + The constraint manager. + The predicate that constrains non null values. + An action that writes a description of the constraint + to the output. + A dummy argument value. + + + + Provides extensions for . + + + + + Writes a new line to the writer. + + The writer to write to. + The writer. + + + + Writes the format string to the writer. + + The writer to write to. + The format string to write. + Replacements for the format string. + The writer. + + + + Writes the specified object to the writer (using the ToString-method of the object). + + The writer to write to. + The value to write to the writer. + The writer. + + + + Provides syntax for specifying the number of times a call must have been repeated when asserting on + fake object calls. + + A.CallTo(() => foo.Bar()).Assert(Happened.Once.Exactly); + + + + Specifies that a call must have been repeated a number of times + that is validated by the specified repeatValidation argument. + + A predicate that specifies the number of times + a call must have been made. + A Repeated-instance. + + + + When implemented gets a value indicating if the repeat is matched + by the Happened-instance. + + The repeat of a call. + True if the repeat is a match. + + + + Asserts that a call has not happened at all. + + + + + The call must have happened exactly the number of times that is specified in the next step. + + + + + The call must have happened any number of times greater than or equal to the number of times that is specified + in the next step. + + + + + The call must have happened any number of times less than or equal to the number of times that is specified + in the next step. + + + + + Provides methods for creating recorders for self initializing fakes. + + + + + Gets a recorder that records to and loads calls from the specified file. + + The file to use for recording. + A recorder instance. + + + + Provides access to the file system. + + + + + Opens the specified file in the specified mode. + + The full path and name of the file to open. + The mode to open the file in. + A stream for reading and writing the file. + + + + Gets a value indicating whether the specified file exists. + + The path and name of the file to check. + True if the file exists. + + + + Creates a file with the specified name. + + The name of the file to create. + + + + Provides extension methods for . + + + + + Evaluates an expression by compiling it into a delegate and invoking the delegate. + + The expression to be evaluated. + The value returned from the delegate compiled from the expression. + + + + An exception thrown when an expectation is not met (when asserting on fake object calls). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Provides helper methods for checking the value producer signature against call signatures. + + + + + A collection of method arguments. + + + + + The arguments this collection contains. + + + + + Initializes a new instance of the class. + + The arguments. + The argument names. + + + + Initializes a new instance of the class. + + The arguments. + The method. + + + + Returns an enumerator that iterates through the collection or arguments. + + + A that can be used to iterate through the collection. + + + + + Gets the argument at the specified index. + + The type of the argument to get. + The index of the argument. + The argument at the specified index. + + + + Gets the argument with the specified name. + + The type of the argument to get. + The name of the argument. + The argument with the specified name. + + + + Gets an empty ArgumentList. + + + + + Gets the number of arguments in the list. + + + + + Gets the names of the arguments in the list. + + + + + Gets the argument at the specified index. + + The index of the argument to get. + The argument at the specified index. + + + + Provides methods for guarding method arguments. + + + + + Throws an exception if the specified argument is null. + + The argument. + Name of the argument. + The specified argument was null. + + + + When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked. + + + + + Provides static methods for accessing fake objects. + + + + + Gets the fake object that manages the faked object. + + The faked object to get the manager object for. + The fake object manager. + + + + Creates a new scope and sets it as the current scope. When inside a scope the + getting the calls made to a fake will return only the calls within that scope and when + asserting that calls were made, the calls must have been made within that scope. + + The created scope. + + + + Creates a new scope and sets it as the current scope. When inside a scope the + getting the calls made to a fake will return only the calls within that scope and when + asserting that calls were made, the calls must have been made within that scope. + + The container to use within the specified scope. + The created scope. + + + + Gets a value indicating whether the two objects are equal. + + The first object to compare. + The second object to compare. + True if the two objects are equal. + + + + Gets a value indicating whether the two objects are the same reference. + + The object A. + The object B. + True if the objects are the same reference. + + + + Gets all the calls made to the specified fake object. + + The faked object. + A collection containing the calls to the object. + The object passed in is not a faked object. + + + + Clears the configuration of the faked object. + + The faked object to clear the configuration of. + + + + Sets a new fake to each property or field that is tagged with the FakeAttribute in the specified + fixture. + + The object to initialize. + + + + Allows the developer to raise an event on a faked object. + + + + + Raises an event on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + + The type of the event args. + The sender of the event. + The instance containing the event data. + A Raise(TEventArgs)-object that exposes the event handler to attach. + + + + Raises an event on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + + The type of the event arguments. + The instance containing the event data. + + A Raise(TEventArgs)-object that exposes the event handler to attach. + + + + + Raises an event with empty event arguments on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + + + A Raise(TEventArgs)-object that exposes the event handler to attach. + + + + + Handles the registration of root dependencies in an IoC-container. + + + + + Registers the dependencies. + + The container to register the dependencies in. + + + + DTO for recorded calls. + + + + + Initializes a new instance of the class. + + The method. + The output arguments. + The return value. + + + + Gets the method that was called. + + The method. + + + + Gets the output arguments of the call. + + The output arguments. + + + + Gets the return value of the call. + + The return value. + + + + Represents storage for recorded calls for self initializing + fakes. + + + + + Loads the recorded calls for the specified recording. + + The recorded calls for the recording with the specified id. + + + + Saves the specified calls as the recording with the specified id, + overwriting any previous recording. + + The calls to save. + + + + Initializes a new instance of the class. + + Name of the file. + The file system. + + + + Loads the recorded calls for the specified recording. + + + The recorded calls for the recording with the specified id. + + + + + Saves the specified calls as the recording with the specified id, + overwriting any previous recording. + + The calls to save. + + + + A factory responsible for creating instances of FileStorage. + + The file name of the storage. + A FileStorage instance. + + + + An interface for recorders that provides stored responses for self initializing fakes. + + + + + Applies the call if the call has been recorded. + + The call to apply to from recording. + + + + Records the specified call. + + The call to record. + + + + Gets a value indicating whether the recorder is currently recording. + + + + + An exception that can be thrown when recording for self initialized + fakes fails or when playback fails. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Manages the applying of recorded calls and recording of new calls when + using self initialized fakes. + + + + + Initializes a new instance of the class. + + The storage. + + + + Applies the call if the call has been recorded. + + The call to apply to from recording. + + + + Records the specified call. + + The call to record. + + + + Saves all recorded calls to the storage. + + + + + Gets a value indicating whether the recorder is currently recording. + + + + + + Represents a factory responsible for creating recording manager + instances. + + The storage the manager should use. + A RecordingManager instance. + + + + A call rule use for self initializing fakes, delegates call to + be applied by the recorder. + + + + + Initializes a new instance of the class. + + The wrapped rule. + The recorder. + + + + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + + The call to check for applicability. + True if the interceptor is applicable. + + + + Applies an action to the call, might set a return value or throw + an exception. + + The call to apply the interceptor to. + + + + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. + + + + + + Provides extension methods for generic usage of . + + + + + Gets an enumerable of tuples where the first value of each tuple is a value + from the first collection and the second value of each tuple is the value at the same position + from the second collection. + + The type of values in the first collection. + The type of values in the second collection. + The first of the collections to combine. + The second of the collections to combine. + An enumerable of tuples. + + + + Joins the collection to a string. + + The type of items in the collection. + The items to join. + A function that converts from an item to a string value. + Separator to insert between each item. + A string representation of the collection. + + + + Gets a dictionary containing the first element from the sequence that has a key specified by the key selector. + + The type of items in the sequence. + The type of the key. + The sequence. + The key selector. + A dictionary. + + + + An attribute that can be applied to code that should be fixed because there's a + code smell. + + + + + Gets or sets the description of the smell. + + + + + Lets you specify options for the next call to a fake object. + + + + + Specifies options for the next call to the specified fake object. The next call will + be recorded as a call configuration. + + The type of the faked object. + The faked object to configure. + A call configuration object. + + + + Used to tag fields and properties that will be initialized as a SUT through the Fake.Initialize-method. + + + + diff --git a/dep/FakeItEasy.1.18.0/lib/sl50/FakeItEasy.dll b/dep/FakeItEasy.1.18.0/lib/sl50/FakeItEasy.dll new file mode 100644 index 0000000000000000000000000000000000000000..83ea1bdbf4251fc451ceda9012554592377d441f GIT binary patch literal 475648 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Ý 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%0A1v@ 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 z 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�lUr90RHYVuzeH?2W<9%x5 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 literal 0 HcmV?d00001 diff --git a/dep/FakeItEasy.1.18.0/lib/sl50/FakeItEasy.xml b/dep/FakeItEasy.1.18.0/lib/sl50/FakeItEasy.xml new file mode 100644 index 00000000000..3becdbebd1b --- /dev/null +++ b/dep/FakeItEasy.1.18.0/lib/sl50/FakeItEasy.xml @@ -0,0 +1,3508 @@ + + + + FakeItEasy + + + +

+ Provides methods for generating fake objects. + + + + + Creates a fake object of the type T. + + The type of fake object to create. + A fake object. + + + + Creates a fake object of the type T. + + The type of fake object to create. + A lambda where options for the built fake object can be specified. + A fake object. + + + + Creates a collection of fakes of the specified type. + + The type of fakes to create. + The number of fakes in the collection. + A collection of fake objects of the specified type. + + + + Gets a dummy object of the specified type. The value of a dummy object + should be irrelevant. Dummy objects should not be configured. + + The type of dummy to return. + A dummy object of the specified type. + Dummies of the specified type can not be created. + + + + Gets a value indicating whether the two objects are equal. + + The first object to compare. + The second object to compare. + True if the two objects are equal. + + + + Gets a value indicating whether the two objects are the same reference. + + The object A. + The object B. + True if the objects are the same reference. + + + + Configures a call to a faked object. + + An expression where the configured member is called. + A configuration object. + + + + Gets a configuration object allowing for further configuration of + any call to the specified faked object. + + + The fake to configure. + + + A configuration object. + + + + + Configures a call to a faked object. + + The type of member on the faked object to configure. + An expression where the configured member is called. + A configuration object. + + + + Provides an API entry point for constraining arguments of fake object calls. + + The type of argument to validate. + + + + Gets an argument constraint object that will be used to constrain a method call argument. + + + + + Gets a constraint that considers any value of an argument as valid. + + This is a shortcut for the "Ignored"-property. + + + + Gets a constraint that considers any value of an argument as valid. + + + + + Provides configuration for any (not a specific) call on a faked object. + + + + + Gets a configuration object allowing for further configuration of + any call to the specified faked object. + + The faked object to configure. + A configuration object. + + + + Gets a value indicating whether the two objects are equal. + + The first object to compare. + The second object to compare. + True if the two objects are equal. + + + + Gets a value indicating whether the two objects are the same reference. + + The object A. + The object B. + True if the objects are the same reference. + + + + A collection of method arguments. + + + + + The arguments this collection contains. + + + + + Initializes a new instance of the class. + + The arguments. + The argument names. + + + + Initializes a new instance of the class. + + The arguments. + The method. + + + + Returns an enumerator that iterates through the collection or arguments. + + + A that can be used to iterate through the collection. + + + + + Gets the argument at the specified index. + + The type of the argument to get. + The index of the argument. + The argument at the specified index. + + + + Gets the argument with the specified name. + + The type of the argument to get. + The name of the argument. + The argument with the specified name. + + + + Gets an empty ArgumentList. + + + + + Gets the number of arguments in the list. + + + + + Gets the names of the arguments in the list. + + + + + Gets the argument at the specified index. + + The index of the argument to get. + The argument at the specified index. + + + + Provides validation extensions for . + + + + + Constrains an argument so that it must be null (Nothing in VB). + + The type of the argument. + The constraint manager to match the constraint. + A dummy argument value. + + + + Constrains the string argument to contain the specified text. + + The constraint manager to match the constraint. + The string the argument string should contain. + A dummy argument value. + + + + Constrains the sequence so that it must contain the specified value. + + The constraint manager to match the constraint. + The value the collection should contain. + The type of sequence. + A dummy argument value. + + + + Constrains the string so that it must start with the specified value. + + The constraint manager to match the constraint. + The value the string should start with. + A dummy argument value. + + + + Constrains the string so that it must end with the specified value. + + The constraint manager to match the constraint. + The value the string should end with. + A dummy argument value. + + + + Constrains the string so that it must be null or empty. + + The constraint manager to match the constraint. + A dummy argument value. + + + + Constrains argument value so that it must be greater than the specified value. + + The constraint manager to match the constraint. + The value the string should start with. + The type of argument to constrain. + A dummy argument value. + + + + The tested argument collection should contain the same elements as the + as the specified collection. + + The constraint manager to match the constraint. + The sequence to test against. + The type of argument to constrain. + A dummy argument value. + + + + Tests that the IEnumerable contains no items. + + The type of argument. + The constraint manager to match the constraint. + A dummy argument value. + + + + Tests that the passed in argument is equal to the specified value. + + The type of the argument. + The constraint manager to match the constraint. + The value to compare to. + A dummy argument value. + + + + Tests that the passed in argument is the same instance (reference) as the specified value. + + The type of the argument. + The constraint manager to match the constraint. + The reference to compare to. + A dummy argument value. + + + + Constrains the argument to be of the specified type. + + The type of argument in the method signature. + The constraint manager. + The type to constrain the argument with. + A dummy value. + + + + Constrains the argument with a predicate. + + + The constraint manager. + + + The predicate that should constrain the argument. + + + A human readable description of the constraint. + + + The type of argument in the method signature. + + + A dummy argument value. + + + + + Constrains the argument with a predicate. + + + The constraint manager. + + + The predicate that should constrain the argument. + + + A human readable description of the constraint format string. + + + Arguments for the format string. + + + The type of argument in the method signature. + + + A dummy argument value. + + + + + Constrains the argument with a predicate. + + + The constraint manager. + + + The predicate that should constrain the argument. + + + The type of argument in the method signature. + + + A dummy argument value. + + + + + Constrains the argument to be not null (Nothing in VB) and to match + the specified predicate. + + The type of the argument to constrain. + The constraint manager. + The predicate that constrains non null values. + An action that writes a description of the constraint + to the output. + A dummy argument value. + + + + Provides extension methods for . + + + + + Specifies that a call to the configured call should be applied no matter what arguments + are used in the call to the faked object. + + The type of the interface. + The configuration. + A configuration object. + + + + Provides extension methods for . + + + + + Asserts that the specified call must have happened once or more. + + The configuration to assert on. + + + + Asserts that the specified call has not happened. + + The configuration to assert on. + + + + Provides extension methods for . + + + + + Executes the specified action when a matching call is being made. This overload can also be used to fake calls with arguments when they don't need to be accessed. + + The type of fake object. + The configuration that is extended. + The to invoke. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Provides extension methods for . + + + + + Filters to contain only the calls that matches the call specification. + + The type of fake the call is made on. + The calls to filter. + The call to match on. + A collection of the calls that matches the call specification. + + + + Provides extension methods for generic usage of . + + + + + Gets an enumerable of tuples where the first value of each tuple is a value + from the first collection and the second value of each tuple is the value at the same position + from the second collection. + + The type of values in the first collection. + The type of values in the second collection. + The first of the collections to combine. + The second of the collections to combine. + An enumerable of tuples. + + + + Joins the collection to a string. + + The type of items in the collection. + The items to join. + A function that converts from an item to a string value. + Separator to insert between each item. + A string representation of the collection. + + + + Gets a dictionary containing the first element from the sequence that has a key specified by the key selector. + + The type of items in the sequence. + The type of the key. + The sequence. + The key selector. + A dictionary. + + + + Provides the extension methods for . + + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + The exception to throw when a call that matches is invoked. + Configuration object. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Configuration object. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + The type of exception to throw. + Configuration object. + + + + Provides extension methods for . + + + + + Evaluates an expression by compiling it into a delegate and invoking the delegate. + + The expression to be evaluated. + The value returned from the delegate compiled from the expression. + + + + Provides extension methods for configuring and asserting on faked objects + without going through the static methods of the Fake-class. + + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + The type of fake object to configure. + The type of the return value of the member. + The faked object to configure. + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + The faked object to configure. + The type of fake object to configure. + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call is made to any method on the + object. + + The type of the fake. + The faked object. + A configuration object. + + + + Provides an extension method for configuring fake objects. + + + + + Gets an object that provides a fluent interface syntax for configuring + the fake object. + + The type of the fake object. + The fake object to configure. + A configuration object. + The fakedObject was null. + The object passed in is not a faked object. + + + + Provides extension methods for . + + + + + Gets the argument at the specified index in the arguments collection + for the call. + + The type of the argument to get. + The call to get the argument from. + The index of the argument. + The value of the argument with the specified index. + + + + Gets the argument with the specified name in the arguments collection + for the call. + + The type of the argument to get. + The call to get the argument from. + The name of the argument. + The value of the argument with the specified name. + + + + Writes the calls in the collection to the specified output writer. + + The type of the calls. + The calls to write. + The writer to write the calls to. + + + + Writes all calls in the collection to the console. + + The type of the calls. + The calls to write. + + + + Gets the description of a call to a fake object. + + The call to describe. + A description of the call. + + + + Provides extension methods for . + + + + + Makes the fake strict, this means that any call to the fake + that has not been explicitly configured will throw an exception. + + The type of fake object. + The configuration. + A configuration object. + + + + Provides extension methods for . + + + + + Provides extensions for . + + + + + Writes a new line to the writer. + + The writer to write to. + The writer. + + + + Writes the format string to the writer. + + The writer to write to. + The format string to write. + Replacements for the format string. + The writer. + + + + Writes the specified object to the writer (using the ToString-method of the object). + + The writer to write to. + The value to write to the writer. + The writer. + + + + Provides extensions for . + + + + + Specifies NumberOfTimes(1) to the repeat configuration. + + The configuration to set repeat 1 to. + + + + Specifies NumberOfTimes(2) to the repeat configuration. + + The configuration to set repeat 2 to. + + + + Provides extension methods for . + + + + + Specifies the value to return when the configured call is made. + + The type of the return value. + The configuration to extend. + The value to return. + A configuration object. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The type of the return value. + The configuration to extend. + A function that produces the return value. + A configuration object. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The type of the return value. + Type of the first argument of the faked method call. + The configuration to extend. + A function that produces the return value. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Configures the call to return the next value from the specified sequence each time it's called. Null will + be returned when all the values in the sequence has been returned. + + + The type of return value. + + + The call configuration to extend. + + + The values to return in sequence. + + + + + Provides extension methods for . + + + + + Provides extension methods for . + + + + + Replaces the format item in a specified System.String with the text equivalent + of the value of a corresponding System.Object instance in a specified array using + invariant culture as . + + A composite format string. + An array containing zero or more objects to format. + The formatted string. + + + + Provides extension methods for . + + + + + Provides extension methods for . + + + + + Applies a predicate to constrain which calls will be considered for interception. + + The return type of the where method. + The configuration object to extend. + A predicate for a fake object call. + The configuration object. + + + + Provides string formatting for arguments of type T when written in call lists. + + The type of the arguments which will be formatted by this instance. + + + + Provides string formatting for arguments when written in + call lists. + + + + + Gets a string representing the specified argument value. + + The argument value to get as a string. + A string representation of the value. + + + + Gets the type of arguments this formatter works on. + + + + + Gets the priority of the formatter, when two formatters are + registered for the same type the one with the highest + priority is used. + + + + + Gets a string representing the specified argument value. + + The argument value to get as a string. + A string representation of the value. + + + + Gets a string representing the specified argument value. + + The argument value to get as a string. + A string representation of the value. + + + + Gets the type of arguments this formatter works on. + + + + + Gets the priority of the formatter, when two formatters are + registered for the same type the one with the highest + priority is used. + + + + + Provides the base for rules that can be built using the FakeConfiguration. + + + + + Represents a call rule that has a description of the calls the + rule is applicable to. + + + + + Allows for intercepting call to a fake object and + act upon them. + + + + + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + + The call to check for applicability. + True if the interceptor is applicable. + + + + Applies an action to the call, might set a return value or throw + an exception. + + The call to apply the interceptor to. + + + + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. + + + + + Writes a description of calls the rule is applicable to. + + The writer. + + + + Gets if this rule is applicable to the specified call. + + The call to validate. + True if the rule applies to the call. + + + + Writes a description of calls the rule is applicable to. + + The writer to write the description to. + + + + Gets or sets an action that is called by the Apply method to apply this + rule to a fake object call. + + + + + Gets a collection of actions that should be invoked when the configured + call is made. + + + + + Gets or sets values to apply to output and reference variables. + + + + + Gets or sets a value indicating whether the base method of the fake object call should be + called when the fake object call is made. + + + + + Gets or sets the number of times the configured rule should be used. + + + + + Gets a description of calls the rule is applicable to. + + + + + + Configuration for any call to a faked object. + + + + + Provides a way to configure predicates for when a call should be applied. + + The type of fake object that is going to be configured.. + + + + Applies a predicate to constrain which calls will be considered for interception. + + A predicate for a fake object call. + An action that writes a description of the predicate + to the output. + The configuration object. + + + + Provides configuration methods for methods that does not have a return value and + allows the use to specify validations for arguments. + + + + + Provides configuration methods for methods that does not have a return value. + + + + + Configuration that lets the developer specify that an exception should be + thrown by a fake object call. + + + + + Hides standard Object members to make fluent interfaces + easier to read. Found in the source of Autofac: + Based on blog post here: + + + + + + Hides the ToString-method. + + A string representation of the implementing object. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the type. + + The exact runtime type of the current instance. + + + + Throws the specified exception when the currently configured + call gets called. + + A function that creates the exception to throw. + Configuration object. + + + + Configuration for callbacks of fake object calls. + + The type of interface to return. + + + + Executes the specified action when a matching call is being made. + + The action to invoke. + A configuration object. + + + + Configuration that lets you specify that a fake object call should call it's base method. + + + + + When the configured method or methods are called the call + will be delegated to the base method of the faked method. + + A configuration object. + The fake object is of an abstract type or an interface + and no base method exists. + + + + Lets the developer configure output values of out and ref parameters. + + + + + Specifies output values for out and ref parameters. Specify the values in the order + the ref and out parameters has in the configured call, any non out and ref parameters are ignored. + + The values. + A configuration object. + + + + Allows the developer to assert on a call that's configured. + + + + + Asserts that the configured call has happened the number of times + constrained by the repeatConstraint parameter. + + A constraint for how many times the call + must have happened. + The call has not been called a number of times + that passes the repeat constraint. + + + + Configures the specified call to do nothing when called. + + A configuration object. + + + + Provides configurations to validate arguments of a fake object call. + + The type of interface to return. + + + + Configures the call to be accepted when the specified predicate returns true. + + The argument predicate. + A configuration object. + + + + Matches calls that has the return type specified in the generic type parameter. + + The return type of the members to configure. + A configuration object. + + + + Manages registration of a set of components in a DictionaryContainer. + + + + + Registers the components of this module. + + The container to register components in. + + + + A factory that creates instances of the RecordingCallRuleType. + + + + + Creates the specified fake object. + + The type of the fake. + The fake object the rule belongs to. + The rule that's being recorded. + A RecordingCallRule instance. + + + + A factory responsible for creating start configuration for fake objects. + + + + + Creates a start configuration for the specified fake object that fakes the + specified type. + + The type of the fake object. + The fake object to configure. + A configuration object. + + + + An exception that can be thrown when something goes wrong with the configuration + of a fake object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Handles the configuration of fake object given an expression specifying + a call on a faked object. + + + + + Lets you set up expectations and configure repeat for the configured call. + + + + + Provides configuration for method calls that has a return value. + + + + + Specifies the number of times for the configured event. + + The number of times to repeat. + + + + A combination of the IAfterCallSpecifiedConfiguration and IOutAndRefParametersConfiguration + interfaces. + + + + + Aggregate of IReturnValueArgumentValidationConfiguration<T> and IWhereConfiguration<IAnyCallConfigurationWithReturnTypeSpecified<T>>. + + The type of fake object that is configured. + + + + Configures a call that returns a value and allows the use to + specify validations for arguments. + + The type of the member. + + + + Configures a call that returns a value. + + The type of the member. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + A function that produces the return value. + A configuration object. + + + + Configurations for when a configured call is recorded. + + + + + Provides configuration from VisualBasic. + + + + + Provides methods for configuring a fake object. + + The type of fake object. + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + The type of the return value of the member. + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call is made to any method on the + object. + + A configuration object. + + + + A call rule that has been recorded. + + + + + A call rule that "sits and waits" for the next call, when + that call occurs the recorded rule is added for that call. + + The type of the fake. + + + + Provides access to a set of calls and a call matcher for these calls. + + + + + Provides access to a call matcher. + + + + + Gets a call predicate that can be used to check if a fake object call matches + the specified constraint. + + + + + Gets the set of calls. + + + + + Represents a delegate that creates a configuration object from + a fake object and the rule to build. + + The rule that's being built. + The fake object the rule is for. + A configuration object. + + + + Represents a predicate that matches a fake object call. + + + + + Gets a value indicating whether the call matches the predicate. + + The call to match. + True if the call matches the predicate. + + + + Provides configuration of faked objects. + + + + + Gets a configuration for the specified faked object. + + The type of the fake. + The faked object to configure. + A configuration object. + The specified object is not a faked object. + The fakedObject parameter was null. + + + + Represents an argument and a dummy value to use for that argument. + + + + + Initializes a new instance of the class. + + A value indicating if the dummy value was successfully resolved. + The type of argument. + The resolved value. + + + + Gets a value indicating whether a dummy argument value was successfully + resolved. + + + + + Gets the type of the argument. + + + + + Gets the resolved value. + + + + + Holds a formatter as well as the distance between a type to be formatted + and the type for which the formatted is registered. + + + + + Represents an event that happens when a call has been intercepted by a proxy. + + + + + Initializes a new instance of the class. + + The call. + + + + Gets the call that was intercepted. + + The call. + + + + Keeps track of metadata for interceptions. + + + + + Gets whether the rule has been called the number of times specified or not. + + True if the rule has not been called the number of times specified. + + + + Gets or sets the number of times the rule has been used. + + + + + Gets or sets the rule this metadata object is tracking. + + + + + Manages attaching of argument constraints. + + The type of argument to constrain. + + + + Constrains the argument with a predicate. + + The predicate that should constrain the argument. + An action that will be write a description of the constraint. + A dummy argument value. + + + + Inverts the logic of the matches method. + + + + + Validates an argument, checks that it's valid in a specific fake call. + + + + + Writes a description of the argument constraint to the specified writer. + + + The writer. + + + + + Gets whether the argument is valid. + + The argument to validate. + True if the argument is valid. + + + + Default implementation of . + + + + + Attaches a fake manager to the proxy so that intercepted + calls can be configured. + + + + + Attaches a to the specified proxy, listening to + the event raiser. + + The type of the fake object proxy. + The proxy to attach to. + The event raiser to listen to. + + + + Gets the fake manager associated with the proxy. + + The proxy to get the manager from. + A fake manager. + + + + Attaches a to the specified proxy, listening to + the event raiser. + + The type of the fake object proxy. + The proxy to attach to. + The event raiser to listen to. + + + + Gets the fake manager associated with the proxy. + + The proxy to get the manager from. + A fake manager. + + + + Represents an object that can be tagged with another object. When implemented + by a proxy returned from an FakeItEasy uses the tag + to store a reference to the that handles that proxy. + + + + + Gets or sets the tag. + + + + + The default implementation of the IFakeObjectCallFormatter interface. + + + + + Provides string formatting for fake object calls. + + + + + Gets a human readable description of the specified + fake object call. + + The call to get a description for. + A description of the call. + + + + Gets a human readable description of the specified + fake object call. + + The call to get a description for. + A description of the call. + + + + Handles configuring of fake objects to delegate all their calls to a wrapped instance. + + + + + Manages configuration of fake objects to wrap instances. + + + + + Configures the specified faked object to wrap the specified instance. + + The faked object to configure. + The instance to wrap. + The recorder to use, null if no recording should be made. + + + + Configures the specified faked object to wrap the specified instance. + + The faked object to configure. + The instance to wrap. + The recorder to use, null if no recording should be made. + + + + A fake object container where delegates can be registered that are used to + resolve fake objects. + + + + + A container that can create fake objects. + + + + + Handles global configuration of fake object. + + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + + + + Creates a dummy object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + + The type of dummy object to create. + The dummy object that was created if the method returns true. + True if a dummy object can be created. + + + + Initializes a new instance of the class. + Creates a new instance of the DelegateFakeObjectContainer. + + + + + Creates a fake object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + + The type of dummy object to create. + The fake object that was created if the method returns true. + True if a fake object can be created. + + + + Configures the fake. + + The type of fake. + The fake object. + + + + Registers the specified fake delegate. + + The type of the return value of the method that encapsulates. + The fake delegate. + + + + A IFakeObjectContainer implementation that uses MEF to load IFakeDefinitions and + IFakeConfigurations. + + + + + Initializes a new instance of the class. + + The dummy definitions. + The fake configurators. + + + + Creates a fake object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + + The type of fake object to create. + The fake object that was created if the method returns true. + True if a fake object can be created. + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + + + + An exception that is thrown when there was an error creating a fake object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + Auto fake property rule. + + The central point in the API for proxied fake objects handles interception + of fake object calls by using a set of rules. User defined rules can be inserted + by using the AddRule-method. + + Event rule. + Object member rule. + Property behavior rule. + Property setter rule. + + + + Initializes a new instance of the class. + + + + + Adds a call rule to the fake object. + + The rule to add. + + + + Adds a call rule last in the list of user rules, meaning it has the lowest priority possible. + + The rule to add. + + + + Removes the specified rule for the fake object. + + The rule to remove. + + + + Adds an interception listener to the manager. + + The listener to add. + + + + Removes any specified user rules. + + + + + Gets the faked object. + + + + + Gets the faked type. + + + + + Gets the interceptions that are currently registered with the fake object. + + + + + Gets a collection of all the calls made to the fake object within the current scope. + + + + + A delegate responsible for creating FakeObject instances. + + An instance of . + + + + Represents a call to a fake object at interception time. + + + + + Represents a fake object call that can be edited. + + + + + Represents a call to a fake object. + + + + + Gets the method that's called. + + + + + Gets the arguments used in the call. + + + + + Gets the faked object the call is performed on. + + + + + Sets the return value of the call. + + The return value to set. + + + + Calls the base method of the faked type. + + + + + Sets the value of the argument at the specified index in the parameters list. + + The index of the argument to set the value of. + The value to set to the argument. + + + + Freezes the call so that it can no longer be modified. + + A completed fake object call. + + + + Sets that the call should not be recorded by the fake manager. + + + + + Attempts to preserve the stack trace of an existing exception when rethrown via throw or throw ex. + + Nicked from + http://weblogs.asp.net/fmarguerie/archive/2008/01/02/rethrowing-exceptions-and-preserving-the-full-call-stack-trace.aspx. + If reduced trust context (for example) precludes + invoking internal members on , the stack trace will not be preserved. + + The exception whose stack trace needs preserving. + + + + Represents a scope for fake objects, calls configured within a scope + are only valid within that scope. Only calls made within a scope + are accessible from within a scope so for example asserts will only + assert on those calls done within the scope. + + + + + Provides access to all calls made to fake objects within a scope. + Scopes calls so that only calls made within the scope are visible. + + + + + Creates a new scope and sets it as the current scope. + + The created scope. + + + + Creates a new scope and sets it as the current scope, using the specified + container as the container for the new scope. + + The container to use for the new scope. + The created scope. + + + + Closes the scope. + + + + + Adds an intercepted call to the current scope. + + The fake object. + The call that is intercepted. + + + + Adds a fake object call to the current scope. + + The fake object. + The rule to add. + + + + Represents a completed call to a fake object. + + + + + Gets the value set to be returned from the call. + + + + + Used by the event raising rule of fake objects to get the event arguments used in + a call to Raise.With. + + + + + Gets the sender of the event. + + + + + Gets the event arguments of the event. + + + + + Represents a listener for fake object calls, can be plugged into a + FakeManager instance to listen to all intercepted calls. + + The OnBeforeCallIntercepted method will be invoked before the OnBeforeCallIntercepted method of any + previously added listener. The OnAfterCallIntercepted method will be invoked after the OnAfterCallIntercepted + method of any previously added listener. + + + + Called when the interception begins but before any call rules + has been applied. + + The intercepted call. + + + + Called when the interception has been completed and rules has been + applied. + + The intercepted call. + The rule that was applied to the call. + + + + Handles comparisons of instances of . + + + + + Gets a value indicating whether the two instances of would invoke the same method + if invoked on an instance of the target type. + + The type of target for invocation. + The first . + The second . + True if the same method would be invoked. + + + + A null implementation for the IFakeObjectContainer interface. + + + + + Always returns false and sets the fakeObject to null. + + The type of dummy object to create. + Output variable for the fake object that will always be set to null. + Always return false. + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + + + + A call rule that applies to any call and just delegates the + call to the wrapped object. + + + + + Initializes a new instance of the class. + Creates a new instance. + + + The object to wrap. + + + + + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + + The call to check for applicability. + True if the interceptor is applicable. + + + + Applies an action to the call, might set a return value or throw + an exception. + + The call to apply the interceptor to. + + + + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. + + + + + + An interface to be implemented by classes that can generate proxies for FakeItEasy. + + + + + Generates a proxy of the specified type and returns a result object containing information + about the success of the generation and the proxy if it was generated. + + The type of proxy to generate. + Interfaces to be implemented by the proxy. + Arguments to pass to the constructor of the type in . + The custom attribute builders. + A result containing the generated proxy. + + + + Generates a proxy of the specified type and returns a result object containing information + about the success of the generation and the proxy if it was generated. + + The type of proxy to generate. + Interfaces to be implemented by the proxy. + Arguments to pass to the constructor of the type in . + A result containing the generated proxy. + + + + Gets a value indicating whether the specified member can be intercepted by the proxy generator. + + The member to test. + The instance the method will be called on. + The reason the method can not be intercepted. + True if the member can be intercepted. + + + + An object that raises an event every time a call to a proxy has been intercepted. + + + + + Raised when a call is intercepted. + + + + + An adapter that adapts an to a . + + + + + Initializes a new instance of the class. + + The invocation. + + + + Freezes the call so that it can no longer be modified. + + A completed fake object call. + + + + Calls the base method, should not be used with interface types. + + + + + Sets the specified value to the argument at the specified index. + + The index of the argument to set the value to. + The value to set to the argument. + + + + Sets the return value of the call. + + The return value. + + + + Returns a description of the call. + + + A that represents this instance. + + + + + Gets a human readable description of the call. + + + + + + Gets the value set to be returned from the call. + + + + + Gets the method that's called. + + + + + Gets the arguments used in the call. + + + + + Gets the faked object the call is performed on. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to No constructor matches the passed arguments for constructor.. + + + + + Looks up a localized string similar to Arguments for constructor specified for interface type.. + + + + + Looks up a localized string similar to The type of proxy "{0}" is sealed.. + + + + + Looks up a localized string similar to The type of proxy must be an interface or a class but it was {0}.. + + + + + Looks up a localized string similar to No usable default constructor was found on the type {0}.. + + + + + The default implementation of the IFakeAndDummyManager interface. + + + + + Handles the creation of fake and dummy objects. + + + + + Creates a dummy of the specified type. + + The type of dummy to create. + The created dummy. + The current IProxyGenerator is not able to generate a fake of the specified type and + the current IFakeObjectContainer does not contain the specified type. + + + + Creates a fake object of the specified type. + + The type of fake object to generate. + Options for building the fake object. + A fake object. + The current IProxyGenerator is not able to generate a fake of the specified type. + + + + Tries to create a dummy of the specified type. + + The type of dummy to create. + Outputs the result dummy when creation is successful. + A value indicating whether the creation was successful. + + + + Tries to create a fake object of the specified type. + + The type of fake to create. + Options for the creation of the fake. + The created fake object when creation is successful. + A value indicating whether the creation was successful. + + + + Default implementation of the IFakeCreator-interface. + + + + + A facade used by the public API for testability. + + + + + Creates a fake object of the specified type. + + The type of fake to create. + Options for the created fake object. + The created fake object. + Was unable to generate the fake in the current configuration. + + + + Creates a dummy object, this can be a fake object or an object resolved + from the current IFakeObjectContainer. + + The type of dummy to create. + The created dummy. + Was unable to generate the fake in the current configuration and + no dummy was registered in the container for the specified type.. + + + + Creates a collection of fakes of the specified type. + + The type of fakes to create. + The number of fakes in the collection. + A collection of fake objects of the specified type. + + + + Initializes a new instance of the class. + + The fake and dummy manager. + + + + Creates a fake object of the specified type. + + The type of fake to create. + Options for the created fake object. + The created fake object. + Was unable to generate the fake in the current configuration. + + + + Creates a collection of fakes of the specified type. + + The type of fakes to create. + The number of fakes in the collection. + + A collection of fake objects of the specified type. + + + + + Creates a dummy object, this can be a fake object or an object resolved + from the current IFakeObjectContainer. + + The type of dummy to create. + The created dummy. + Was unable to generate the fake in the current configuration and + no dummy was registered in the container for the specified type.. + + + + Provides options for fake wrappers. + + The type of the fake object generated. + + + + Provides options for generating fake object. + + The type of fake object generated. + + + + Specifies arguments for the constructor of the faked class. + + The arguments to pass to the constructor of the faked class. + Options object. + + + + Specifies arguments for the constructor of the faked class by giving an expression with the call to + the desired constructor using the arguments to be passed to the constructor. + + The constructor call to use when creating a class proxy. + Options object. + + + + Specifies that the fake should delegate calls to the specified instance. + + The object to delegate calls to. + Options object. + + + + Specifies that the fake should be created with these additional attributes. + + The attributes to build into the proxy. + Options object. + + + + Sets up the fake to implement the specified interface in addition to the + originally faked class. + + The type of interface to implement. + Options object. + The specified type is not an interface. + The specified type is null. + + + + Specifies an action that should be run over the fake object + once it's created. + + An action to perform. + Options object. + + + + Specifies a fake recorder to use. + + The recorder to use. + Options object. + + + + Initializes a new instance of the class. + + The container. + The fake object creator. + + + + Contains the result of a call to TryCreateProxy of IProxyGenerator. + + + + + Initializes a new instance of the class. + Creates a new instance representing a failed proxy + generation attempt. + + + The reason the proxy generation failed. + + + + + Initializes a new instance of the class. + Creates a new instance representing a failed proxy + generation attempt due to an exception being caught. + + + The reason the proxy generation failed. + + + The exception thrown from the creation attempt. + + + + + Initializes a new instance of the class. + Creates a new instance representing a successful proxy + generation. + + + The proxy that was generated. + + + An event raiser that raises + events when calls are intercepted to the proxy. + + + + + Gets a value indicating whether the proxy was successfully created. + + + + + Gets the generated proxy when it was successfully created. + + + + + Gets the event raiser that raises events when calls to the proxy are + intercepted. + + + + + Gets the reason for failure when the generation was not successful. + + + + + Represents a text writer that writes to the output. + + + + + Writes the specified value to the output. + + The value to write. + The writer for method chaining. + + + + Formats the specified argument value as a string and writes + it to the output. + + The value to write. + The writer for method chaining. + + + + Indents the writer. + + A disposable that will unindent the writer when disposed. + + + + Represents a definition of how a fake object of the type T should + be created. + + The type of fake. + + + + Represents a definition of how dummies of the specified type should be created. + + + + + Creates the fake. + + The fake object. + + + + Gets the type of fake object the definition is for. + + + + + Creates the dummy. + + The dummy object. + + + + Creates the dummy. + + The dummy object. + + + + Gets the type the definition is for. + + For type. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The Apply method of the ExpressionInterceptor may no be called before the Applicator property has been set.. + + + + + Looks up a localized string similar to The specified argument name does not exist in the ArgumentList.. + + + + + Looks up a localized string similar to Arguments for constructor was specified when generating proxy of interface type.. + + + + + Looks up a localized string similar to An argument validation was not configured correctly.. + + + + + Looks up a localized string similar to The method '{0}' was called too few times, expected #{1} times but was called #{2} times.. + + + + + Looks up a localized string similar to The method '{0}' was called too many times, expected #{1} times but was called #{2} times.. + + + + + Looks up a localized string similar to Can not create fake of the type '{0}', it's not registered in the current container and the current IProxyGenerator can not generate the fake. + + The following constructors failed: + {1}. + + + + + Looks up a localized string similar to Error when accessing FakeObject, the specified argument is of the type '{0}' which is not faked.. + + + + + Looks up a localized string similar to An ExpressionCallMatcher can only be created for expressions that represents a method call or a property getter.. + + + + + Looks up a localized string similar to + + The current proxy generator failed to create a proxy with the specified arguments for the constructor: + + Reason for failure: + - {0} + + . + + + + + Looks up a localized string similar to FakeItEasy failed to create fake object of type "{0}". + + 1. The type is not registered in the current IFakeObjectContainer. + 2. The current IProxyGenerator failed to generate a proxy for the following reason: + + {1}. + + + + + Looks up a localized string similar to Unable to create fake object.. + + + + + Looks up a localized string similar to Only abstract classes can be faked using the A.Fake-method that takes an enumerable of objects as arguments for constructor, use the overload that takes an expression instead.. + + + + + Looks up a localized string similar to The member accessor expression must be a lambda expression with a MethodCallExpression or MemberAccessExpression as its body.. + + + + + Looks up a localized string similar to The specified method can not be configured since it can not be intercepted by the current IProxyGenerator.. + + + + + Looks up a localized string similar to The method of the call did not match the method of the recorded call, the recorded sequence is no longer valid.. + + + + + Looks up a localized string similar to No constructor matching the specified arguments was found on the type {0}.. + + + + + Looks up a localized string similar to Can not generate fake object for the class since no usable default constructor was found, specify a constructor call.. + + + + + Looks up a localized string similar to All the recorded calls has been applied, the recorded sequence is no longer valid.. + + + + + Looks up a localized string similar to Only expression of the type ExpressionType.New (constructor calls) are accepted.. + + + + + Looks up a localized string similar to The Now-method on the event raise is not meant to be called directly, only use it to register to an event on a fake object that you want to be raised.. + + + + + Looks up a localized string similar to The number of values for out and ref parameters specified does not match the number of out and ref parameters in the call.. + + + + + Looks up a localized string similar to A scope for ordered assertions is already opened, close that scope before opening another one.. + + + + + Looks up a localized string similar to The specified call is not made on a fake object.. + + + + + Looks up a localized string similar to The current fake proxy generator can not create proxies of the type {0}.. + + + + + Looks up a localized string similar to FakeItEasy was unable to create dummy of type "{0}", register it in the current IFakeObjectContainer to enable this.. + + + + + Looks up a localized string similar to Expected to find call {0} the number of times specified by the predicate '{1}' but found it {2} times among the calls:. + + + + + Looks up a localized string similar to The number of argument names does not match the number of arguments.. + + + + + An exception thrown when an expectation is not met (when asserting on fake object calls). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Represents a class that can parse a lambda expression + that represents a method or property call. + + + + + Parses the specified expression. + + The expression to parse. + The parsed expression. + + + + Handles the matching of fake object calls to expressions. + + + + + Initializes a new instance of the class. + + The call specification. + The constraint factory. + The method info manager to use. + A parser to use to parse call expressions. + + + + Matches the specified call against the expression. + + The call to match. + True if the call is matched by the expression. + + + + Gets a description of the call. + + Description of the call. + + + + Gets a human readable description of calls that will be matched by this + matcher. + + + + + An implementation of the interface that uses + expressions for evaluating if the rule is applicable to a specific call. + + + + + Initializes a new instance of the class. + + The expression matcher to use. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Handles the instantiation of ExpressionCallRule instance. + + An expression specifying the call. + A rule instance. + + + + Manages breaking call specification expression into their various parts. + + + + + Manages breaking call specification expression into their various parts. + + + + + Gets the fake object an expression is called on. + + The call expression. + The FakeManager instance that manages the faked object the call is made on. + The fakeObjectCall is null. + The specified expression is not an expression where a call is made to a faked object. + + + + Gets the fake object an expression is called on. + + The call expression. + A FakeObject. + The fakeObjectCall is null. + The specified expression is not an expression where a call is made to a faked object. + + + + Provides static methods for accessing fake objects. + + + + + Gets the fake object that manages the faked object. + + The faked object to get the manager object for. + The fake object manager. + + + + Creates a new scope and sets it as the current scope. When inside a scope the + getting the calls made to a fake will return only the calls within that scope and when + asserting that calls were made, the calls must have been made within that scope. + + The created scope. + + + + Creates a new scope and sets it as the current scope. When inside a scope the + getting the calls made to a fake will return only the calls within that scope and when + asserting that calls were made, the calls must have been made within that scope. + + The container to use within the specified scope. + The created scope. + + + + Gets a value indicating whether the two objects are equal. + + The first object to compare. + The second object to compare. + True if the two objects are equal. + + + + Gets a value indicating whether the two objects are the same reference. + + The object A. + The object B. + True if the objects are the same reference. + + + + Gets all the calls made to the specified fake object. + + The faked object. + A collection containing the calls to the object. + The object passed in is not a faked object. + + + + Clears the configuration of the faked object. + + The faked object to clear the configuration of. + + + + Sets a new fake to each property or field that is tagged with the FakeAttribute in the specified + fixture. + + The object to initialize. + + + + Represents a fake object that provides an API for configuring a faked object, exposed by the + FakedObject-property. + + The type of the faked object. + + + + Initializes a new instance of the class. + Creates a new fake object. + + + + + Initializes a new instance of the class. + Creates a new fake object using the specified options. + + + Options used to create the fake object. + + + + + Configures calls to the specified member. + + An expression specifying the call to configure. + A configuration object. + + + + Configures calls to the specified member. + + The type of value the member returns. + An expression specifying the call to configure. + A configuration object. + + + + Configures any call to the fake object. + + A configuration object. + + + + Gets the faked object. + + + + + Gets all calls made to the faked object. + + + + + Used to tag fields and properties that will be initialized through the + Fake.Initialize-method. + + + + + Provides the base implementation for the IFakeConfigurator-interface. + + The type of fakes the configurator can configure. + + + + Provides configurations for fake objects of a specific type. + + + + + Applies the configuration for the specified fake object. + + The fake object to configure. + + + + Gets the type the instance provides configuration for. + + + + + Configures the fake. + + The fake object. + + + + Applies the configuration for the specified fake object. + + The fake object to configure. + + + + Asserts the type of the that fake is of correct. + + The fake object. + + + + Gets the type the instance provides configuration for. + + + + + + Provides methods for guarding method arguments. + + + + + Throws an exception if the specified argument is null. + + The argument. + Name of the argument. + The specified argument was null. + + + + When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked. + + + + + Provides access to the file system. + + + + + Opens the specified file in the specified mode. + + The full path and name of the file to open. + The mode to open the file in. + A stream for reading and writing the file. + + + + Gets a value indicating whether the specified file exists. + + The path and name of the file to check. + True if the file exists. + + + + Creates a file with the specified name. + + The name of the file to create. + + + + A simple implementation of an IoC container. + + + + + The dictionary that stores the registered services. + + + + + Initializes a new instance of the class. + + + + + Resolves an instance of the specified component type. + + Type of the component. + An instance of the component type. + + + + Registers the specified resolver. + + The type of component to register. + The resolver. + + + + Registers the specified resolver as a singleton. + + The type of component to register. + The resolver. + + + + Provides properties and methods to specify repeat. + + + + + Specifies the number of times as repeat. + + The number of times expected. + A Repeated instance. + + + + Specifies once as the repeat. + + + + + Specifies twice as the repeat. + + + + + Lets you specify options for the next call to a fake object. + + + + + Specifies options for the next call to the specified fake object. The next call will + be recorded as a call configuration. + + The type of the faked object. + The faked object to configure. + A call configuration object. + + + + Provides functionality for making ordered assertions on fakes. + + + + + Creates a scope that changes the behavior on asserts so that all asserts within + the scope must be to calls in the specified collection of calls. Calls must have happened + in the order that the asserts are specified or the asserts will fail. + + The calls to assert among. + A disposable used to close the scope. + + + + Allows the developer to raise an event on a faked object. + + + + + Raises an event on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + + The type of the event args. + The sender of the event. + The instance containing the event data. + A Raise(TEventArgs)-object that exposes the event handler to attach. + + + + Raises an event on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + + The type of the event arguments. + The instance containing the event data. + + A Raise(TEventArgs)-object that exposes the event handler to attach. + + + + + Raises an event with empty event arguments on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + + + A Raise(TEventArgs)-object that exposes the event handler to attach. + + + + + A class exposing an event handler to attach to an event of a faked object + in order to raise that event. + + The type of the event args. + + + + Register this event handler to an event on a faked object in order to raise that event. + + The sender of the event. + Event args for the event. + + + + Gets a generic event handler to attach to the event to raise. + + + + + Provides methods for creating recorders for self initializing fakes. + + + + + Provides syntax for specifying the number of times a call must have been repeated when asserting on + fake object calls. + + A.CallTo(() => foo.Bar()).Assert(Happened.Once.Exactly); + + + + Specifies that a call must have been repeated a number of times + that is validated by the specified repeatValidation argument. + + A predicate that specifies the number of times + a call must have been made. + A Repeated-instance. + + + + When implemented gets a value indicating if the repeat is matched + by the Happened-instance. + + The repeat of a call. + True if the repeat is a match. + + + + Asserts that a call has not happened at all. + + + + + The call must have happened exactly the number of times that is specified in the next step. + + + + + The call must have happened any number of times greater than or equal to the number of times that is specified + in the next step. + + + + + The call must have happened any number of times less than or equal to the number of times that is specified + in the next step. + + + + + Handles the registration of root dependencies in an IoC-container. + + + + + Registers the dependencies. + + The container to register the dependencies in. + + + + DTO for recorded calls. + + + + + Initializes a new instance of the class. + + The method. + The output arguments. + The return value. + + + + Gets the method that was called. + + The method. + + + + Gets the output arguments of the call. + + The output arguments. + + + + Gets the return value of the call. + + The return value. + + + + Represents storage for recorded calls for self initializing + fakes. + + + + + Loads the recorded calls for the specified recording. + + The recorded calls for the recording with the specified id. + + + + Saves the specified calls as the recording with the specified id, + overwriting any previous recording. + + The calls to save. + + + + An interface for recorders that provides stored responses for self initializing fakes. + + + + + Applies the call if the call has been recorded. + + The call to apply to from recording. + + + + Records the specified call. + + The call to record. + + + + Gets a value indicating whether the recorder is currently recording. + + + + + An exception that can be thrown when recording for self initialized + fakes fails or when playback fails. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Manages the applying of recorded calls and recording of new calls when + using self initialized fakes. + + + + + Initializes a new instance of the class. + + The storage. + + + + Applies the call if the call has been recorded. + + The call to apply to from recording. + + + + Records the specified call. + + The call to record. + + + + Saves all recorded calls to the storage. + + + + + Gets a value indicating whether the recorder is currently recording. + + + + + + Represents a factory responsible for creating recording manager + instances. + + The storage the manager should use. + A RecordingManager instance. + + + + A call rule use for self initializing fakes, delegates call to + be applied by the recorder. + + + + + Initializes a new instance of the class. + + The wrapped rule. + The recorder. + + + + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + + The call to check for applicability. + True if the interceptor is applicable. + + + + Applies an action to the call, might set a return value or throw + an exception. + + The call to apply the interceptor to. + + + + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. + + + + + + An attribute that can be applied to code that should be fixed because there's a + code smell. + + + + + Gets or sets the description of the smell. + + + + + Used to tag fields and properties that will be initialized as a SUT through the Fake.Initialize-method. + + + + + Provides helper methods for checking the value producer signature against call signatures. + + + + + Fixes so that existing Serializable-attributes are omitted in the compilation + of the silverlight project. + + + + + Fixes so that existing NonSerialized-attributes are omitted in the compilation + of the silverlight project. + + + + diff --git a/dep/FakeItEasy.1.18.0/lib/win8/FakeItEasy.dll b/dep/FakeItEasy.1.18.0/lib/win8/FakeItEasy.dll new file mode 100644 index 0000000000000000000000000000000000000000..83ea1bdbf4251fc451ceda9012554592377d441f GIT binary patch literal 475648 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Ý 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%0A1v@ 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 z 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�lUr90RHYVuzeH?2W<9%x5 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 literal 0 HcmV?d00001 diff --git a/dep/FakeItEasy.1.18.0/lib/win8/FakeItEasy.xml b/dep/FakeItEasy.1.18.0/lib/win8/FakeItEasy.xml new file mode 100644 index 00000000000..3becdbebd1b --- /dev/null +++ b/dep/FakeItEasy.1.18.0/lib/win8/FakeItEasy.xml @@ -0,0 +1,3508 @@ + + + + FakeItEasy + + + +

+ Provides methods for generating fake objects. + + + + + Creates a fake object of the type T. + + The type of fake object to create. + A fake object. + + + + Creates a fake object of the type T. + + The type of fake object to create. + A lambda where options for the built fake object can be specified. + A fake object. + + + + Creates a collection of fakes of the specified type. + + The type of fakes to create. + The number of fakes in the collection. + A collection of fake objects of the specified type. + + + + Gets a dummy object of the specified type. The value of a dummy object + should be irrelevant. Dummy objects should not be configured. + + The type of dummy to return. + A dummy object of the specified type. + Dummies of the specified type can not be created. + + + + Gets a value indicating whether the two objects are equal. + + The first object to compare. + The second object to compare. + True if the two objects are equal. + + + + Gets a value indicating whether the two objects are the same reference. + + The object A. + The object B. + True if the objects are the same reference. + + + + Configures a call to a faked object. + + An expression where the configured member is called. + A configuration object. + + + + Gets a configuration object allowing for further configuration of + any call to the specified faked object. + + + The fake to configure. + + + A configuration object. + + + + + Configures a call to a faked object. + + The type of member on the faked object to configure. + An expression where the configured member is called. + A configuration object. + + + + Provides an API entry point for constraining arguments of fake object calls. + + The type of argument to validate. + + + + Gets an argument constraint object that will be used to constrain a method call argument. + + + + + Gets a constraint that considers any value of an argument as valid. + + This is a shortcut for the "Ignored"-property. + + + + Gets a constraint that considers any value of an argument as valid. + + + + + Provides configuration for any (not a specific) call on a faked object. + + + + + Gets a configuration object allowing for further configuration of + any call to the specified faked object. + + The faked object to configure. + A configuration object. + + + + Gets a value indicating whether the two objects are equal. + + The first object to compare. + The second object to compare. + True if the two objects are equal. + + + + Gets a value indicating whether the two objects are the same reference. + + The object A. + The object B. + True if the objects are the same reference. + + + + A collection of method arguments. + + + + + The arguments this collection contains. + + + + + Initializes a new instance of the class. + + The arguments. + The argument names. + + + + Initializes a new instance of the class. + + The arguments. + The method. + + + + Returns an enumerator that iterates through the collection or arguments. + + + A that can be used to iterate through the collection. + + + + + Gets the argument at the specified index. + + The type of the argument to get. + The index of the argument. + The argument at the specified index. + + + + Gets the argument with the specified name. + + The type of the argument to get. + The name of the argument. + The argument with the specified name. + + + + Gets an empty ArgumentList. + + + + + Gets the number of arguments in the list. + + + + + Gets the names of the arguments in the list. + + + + + Gets the argument at the specified index. + + The index of the argument to get. + The argument at the specified index. + + + + Provides validation extensions for . + + + + + Constrains an argument so that it must be null (Nothing in VB). + + The type of the argument. + The constraint manager to match the constraint. + A dummy argument value. + + + + Constrains the string argument to contain the specified text. + + The constraint manager to match the constraint. + The string the argument string should contain. + A dummy argument value. + + + + Constrains the sequence so that it must contain the specified value. + + The constraint manager to match the constraint. + The value the collection should contain. + The type of sequence. + A dummy argument value. + + + + Constrains the string so that it must start with the specified value. + + The constraint manager to match the constraint. + The value the string should start with. + A dummy argument value. + + + + Constrains the string so that it must end with the specified value. + + The constraint manager to match the constraint. + The value the string should end with. + A dummy argument value. + + + + Constrains the string so that it must be null or empty. + + The constraint manager to match the constraint. + A dummy argument value. + + + + Constrains argument value so that it must be greater than the specified value. + + The constraint manager to match the constraint. + The value the string should start with. + The type of argument to constrain. + A dummy argument value. + + + + The tested argument collection should contain the same elements as the + as the specified collection. + + The constraint manager to match the constraint. + The sequence to test against. + The type of argument to constrain. + A dummy argument value. + + + + Tests that the IEnumerable contains no items. + + The type of argument. + The constraint manager to match the constraint. + A dummy argument value. + + + + Tests that the passed in argument is equal to the specified value. + + The type of the argument. + The constraint manager to match the constraint. + The value to compare to. + A dummy argument value. + + + + Tests that the passed in argument is the same instance (reference) as the specified value. + + The type of the argument. + The constraint manager to match the constraint. + The reference to compare to. + A dummy argument value. + + + + Constrains the argument to be of the specified type. + + The type of argument in the method signature. + The constraint manager. + The type to constrain the argument with. + A dummy value. + + + + Constrains the argument with a predicate. + + + The constraint manager. + + + The predicate that should constrain the argument. + + + A human readable description of the constraint. + + + The type of argument in the method signature. + + + A dummy argument value. + + + + + Constrains the argument with a predicate. + + + The constraint manager. + + + The predicate that should constrain the argument. + + + A human readable description of the constraint format string. + + + Arguments for the format string. + + + The type of argument in the method signature. + + + A dummy argument value. + + + + + Constrains the argument with a predicate. + + + The constraint manager. + + + The predicate that should constrain the argument. + + + The type of argument in the method signature. + + + A dummy argument value. + + + + + Constrains the argument to be not null (Nothing in VB) and to match + the specified predicate. + + The type of the argument to constrain. + The constraint manager. + The predicate that constrains non null values. + An action that writes a description of the constraint + to the output. + A dummy argument value. + + + + Provides extension methods for . + + + + + Specifies that a call to the configured call should be applied no matter what arguments + are used in the call to the faked object. + + The type of the interface. + The configuration. + A configuration object. + + + + Provides extension methods for . + + + + + Asserts that the specified call must have happened once or more. + + The configuration to assert on. + + + + Asserts that the specified call has not happened. + + The configuration to assert on. + + + + Provides extension methods for . + + + + + Executes the specified action when a matching call is being made. This overload can also be used to fake calls with arguments when they don't need to be accessed. + + The type of fake object. + The configuration that is extended. + The to invoke. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Executes the specified action when a matching call is being made. + + The configuration that is extended. + The to invoke. + The type of fake object. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + The signatures of the faked method and the do not match. + The fake object. + + + + Provides extension methods for . + + + + + Filters to contain only the calls that matches the call specification. + + The type of fake the call is made on. + The calls to filter. + The call to match on. + A collection of the calls that matches the call specification. + + + + Provides extension methods for generic usage of . + + + + + Gets an enumerable of tuples where the first value of each tuple is a value + from the first collection and the second value of each tuple is the value at the same position + from the second collection. + + The type of values in the first collection. + The type of values in the second collection. + The first of the collections to combine. + The second of the collections to combine. + An enumerable of tuples. + + + + Joins the collection to a string. + + The type of items in the collection. + The items to join. + A function that converts from an item to a string value. + Separator to insert between each item. + A string representation of the collection. + + + + Gets a dictionary containing the first element from the sequence that has a key specified by the key selector. + + The type of items in the sequence. + The type of the key. + The sequence. + The key selector. + A dictionary. + + + + Provides the extension methods for . + + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + The exception to throw when a call that matches is invoked. + Configuration object. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Configuration object. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + A function that returns the exception to throw when invoked. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + Configuration object. + The signatures of the faked method and the do not match. + + + + Throws the specified exception when the currently configured + call gets called. + + The configuration to use. + The type of exception to throw. + Configuration object. + + + + Provides extension methods for . + + + + + Evaluates an expression by compiling it into a delegate and invoking the delegate. + + The expression to be evaluated. + The value returned from the delegate compiled from the expression. + + + + Provides extension methods for configuring and asserting on faked objects + without going through the static methods of the Fake-class. + + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + The type of fake object to configure. + The type of the return value of the member. + The faked object to configure. + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + The faked object to configure. + The type of fake object to configure. + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call is made to any method on the + object. + + The type of the fake. + The faked object. + A configuration object. + + + + Provides an extension method for configuring fake objects. + + + + + Gets an object that provides a fluent interface syntax for configuring + the fake object. + + The type of the fake object. + The fake object to configure. + A configuration object. + The fakedObject was null. + The object passed in is not a faked object. + + + + Provides extension methods for . + + + + + Gets the argument at the specified index in the arguments collection + for the call. + + The type of the argument to get. + The call to get the argument from. + The index of the argument. + The value of the argument with the specified index. + + + + Gets the argument with the specified name in the arguments collection + for the call. + + The type of the argument to get. + The call to get the argument from. + The name of the argument. + The value of the argument with the specified name. + + + + Writes the calls in the collection to the specified output writer. + + The type of the calls. + The calls to write. + The writer to write the calls to. + + + + Writes all calls in the collection to the console. + + The type of the calls. + The calls to write. + + + + Gets the description of a call to a fake object. + + The call to describe. + A description of the call. + + + + Provides extension methods for . + + + + + Makes the fake strict, this means that any call to the fake + that has not been explicitly configured will throw an exception. + + The type of fake object. + The configuration. + A configuration object. + + + + Provides extension methods for . + + + + + Provides extensions for . + + + + + Writes a new line to the writer. + + The writer to write to. + The writer. + + + + Writes the format string to the writer. + + The writer to write to. + The format string to write. + Replacements for the format string. + The writer. + + + + Writes the specified object to the writer (using the ToString-method of the object). + + The writer to write to. + The value to write to the writer. + The writer. + + + + Provides extensions for . + + + + + Specifies NumberOfTimes(1) to the repeat configuration. + + The configuration to set repeat 1 to. + + + + Specifies NumberOfTimes(2) to the repeat configuration. + + The configuration to set repeat 2 to. + + + + Provides extension methods for . + + + + + Specifies the value to return when the configured call is made. + + The type of the return value. + The configuration to extend. + The value to return. + A configuration object. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The type of the return value. + The configuration to extend. + A function that produces the return value. + A configuration object. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The type of the return value. + Type of the first argument of the faked method call. + The configuration to extend. + A function that produces the return value. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + The configuration to extend. + A function that produces the return value. + The type of the return value. + Type of the first argument of the faked method call. + Type of the second argument of the faked method call. + Type of the third argument of the faked method call. + Type of the fourth argument of the faked method call. + A configuration object. + The signatures of the faked method and the do not match. + + + + Configures the call to return the next value from the specified sequence each time it's called. Null will + be returned when all the values in the sequence has been returned. + + + The type of return value. + + + The call configuration to extend. + + + The values to return in sequence. + + + + + Provides extension methods for . + + + + + Provides extension methods for . + + + + + Replaces the format item in a specified System.String with the text equivalent + of the value of a corresponding System.Object instance in a specified array using + invariant culture as . + + A composite format string. + An array containing zero or more objects to format. + The formatted string. + + + + Provides extension methods for . + + + + + Provides extension methods for . + + + + + Applies a predicate to constrain which calls will be considered for interception. + + The return type of the where method. + The configuration object to extend. + A predicate for a fake object call. + The configuration object. + + + + Provides string formatting for arguments of type T when written in call lists. + + The type of the arguments which will be formatted by this instance. + + + + Provides string formatting for arguments when written in + call lists. + + + + + Gets a string representing the specified argument value. + + The argument value to get as a string. + A string representation of the value. + + + + Gets the type of arguments this formatter works on. + + + + + Gets the priority of the formatter, when two formatters are + registered for the same type the one with the highest + priority is used. + + + + + Gets a string representing the specified argument value. + + The argument value to get as a string. + A string representation of the value. + + + + Gets a string representing the specified argument value. + + The argument value to get as a string. + A string representation of the value. + + + + Gets the type of arguments this formatter works on. + + + + + Gets the priority of the formatter, when two formatters are + registered for the same type the one with the highest + priority is used. + + + + + Provides the base for rules that can be built using the FakeConfiguration. + + + + + Represents a call rule that has a description of the calls the + rule is applicable to. + + + + + Allows for intercepting call to a fake object and + act upon them. + + + + + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + + The call to check for applicability. + True if the interceptor is applicable. + + + + Applies an action to the call, might set a return value or throw + an exception. + + The call to apply the interceptor to. + + + + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. + + + + + Writes a description of calls the rule is applicable to. + + The writer. + + + + Gets if this rule is applicable to the specified call. + + The call to validate. + True if the rule applies to the call. + + + + Writes a description of calls the rule is applicable to. + + The writer to write the description to. + + + + Gets or sets an action that is called by the Apply method to apply this + rule to a fake object call. + + + + + Gets a collection of actions that should be invoked when the configured + call is made. + + + + + Gets or sets values to apply to output and reference variables. + + + + + Gets or sets a value indicating whether the base method of the fake object call should be + called when the fake object call is made. + + + + + Gets or sets the number of times the configured rule should be used. + + + + + Gets a description of calls the rule is applicable to. + + + + + + Configuration for any call to a faked object. + + + + + Provides a way to configure predicates for when a call should be applied. + + The type of fake object that is going to be configured.. + + + + Applies a predicate to constrain which calls will be considered for interception. + + A predicate for a fake object call. + An action that writes a description of the predicate + to the output. + The configuration object. + + + + Provides configuration methods for methods that does not have a return value and + allows the use to specify validations for arguments. + + + + + Provides configuration methods for methods that does not have a return value. + + + + + Configuration that lets the developer specify that an exception should be + thrown by a fake object call. + + + + + Hides standard Object members to make fluent interfaces + easier to read. Found in the source of Autofac: + Based on blog post here: + + + + + + Hides the ToString-method. + + A string representation of the implementing object. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the type. + + The exact runtime type of the current instance. + + + + Throws the specified exception when the currently configured + call gets called. + + A function that creates the exception to throw. + Configuration object. + + + + Configuration for callbacks of fake object calls. + + The type of interface to return. + + + + Executes the specified action when a matching call is being made. + + The action to invoke. + A configuration object. + + + + Configuration that lets you specify that a fake object call should call it's base method. + + + + + When the configured method or methods are called the call + will be delegated to the base method of the faked method. + + A configuration object. + The fake object is of an abstract type or an interface + and no base method exists. + + + + Lets the developer configure output values of out and ref parameters. + + + + + Specifies output values for out and ref parameters. Specify the values in the order + the ref and out parameters has in the configured call, any non out and ref parameters are ignored. + + The values. + A configuration object. + + + + Allows the developer to assert on a call that's configured. + + + + + Asserts that the configured call has happened the number of times + constrained by the repeatConstraint parameter. + + A constraint for how many times the call + must have happened. + The call has not been called a number of times + that passes the repeat constraint. + + + + Configures the specified call to do nothing when called. + + A configuration object. + + + + Provides configurations to validate arguments of a fake object call. + + The type of interface to return. + + + + Configures the call to be accepted when the specified predicate returns true. + + The argument predicate. + A configuration object. + + + + Matches calls that has the return type specified in the generic type parameter. + + The return type of the members to configure. + A configuration object. + + + + Manages registration of a set of components in a DictionaryContainer. + + + + + Registers the components of this module. + + The container to register components in. + + + + A factory that creates instances of the RecordingCallRuleType. + + + + + Creates the specified fake object. + + The type of the fake. + The fake object the rule belongs to. + The rule that's being recorded. + A RecordingCallRule instance. + + + + A factory responsible for creating start configuration for fake objects. + + + + + Creates a start configuration for the specified fake object that fakes the + specified type. + + The type of the fake object. + The fake object to configure. + A configuration object. + + + + An exception that can be thrown when something goes wrong with the configuration + of a fake object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Handles the configuration of fake object given an expression specifying + a call on a faked object. + + + + + Lets you set up expectations and configure repeat for the configured call. + + + + + Provides configuration for method calls that has a return value. + + + + + Specifies the number of times for the configured event. + + The number of times to repeat. + + + + A combination of the IAfterCallSpecifiedConfiguration and IOutAndRefParametersConfiguration + interfaces. + + + + + Aggregate of IReturnValueArgumentValidationConfiguration<T> and IWhereConfiguration<IAnyCallConfigurationWithReturnTypeSpecified<T>>. + + The type of fake object that is configured. + + + + Configures a call that returns a value and allows the use to + specify validations for arguments. + + The type of the member. + + + + Configures a call that returns a value. + + The type of the member. + + + + Specifies a function used to produce a return value when the configured call is made. + The function will be called each time this call is made and can return different values + each time. + + A function that produces the return value. + A configuration object. + + + + Configurations for when a configured call is recorded. + + + + + Provides configuration from VisualBasic. + + + + + Provides methods for configuring a fake object. + + The type of fake object. + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + The type of the return value of the member. + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call that matches the specified + call happens. + + An expression that specifies the calls to configure. + A configuration object. + + + + Configures the behavior of the fake object when a call is made to any method on the + object. + + A configuration object. + + + + A call rule that has been recorded. + + + + + A call rule that "sits and waits" for the next call, when + that call occurs the recorded rule is added for that call. + + The type of the fake. + + + + Provides access to a set of calls and a call matcher for these calls. + + + + + Provides access to a call matcher. + + + + + Gets a call predicate that can be used to check if a fake object call matches + the specified constraint. + + + + + Gets the set of calls. + + + + + Represents a delegate that creates a configuration object from + a fake object and the rule to build. + + The rule that's being built. + The fake object the rule is for. + A configuration object. + + + + Represents a predicate that matches a fake object call. + + + + + Gets a value indicating whether the call matches the predicate. + + The call to match. + True if the call matches the predicate. + + + + Provides configuration of faked objects. + + + + + Gets a configuration for the specified faked object. + + The type of the fake. + The faked object to configure. + A configuration object. + The specified object is not a faked object. + The fakedObject parameter was null. + + + + Represents an argument and a dummy value to use for that argument. + + + + + Initializes a new instance of the class. + + A value indicating if the dummy value was successfully resolved. + The type of argument. + The resolved value. + + + + Gets a value indicating whether a dummy argument value was successfully + resolved. + + + + + Gets the type of the argument. + + + + + Gets the resolved value. + + + + + Holds a formatter as well as the distance between a type to be formatted + and the type for which the formatted is registered. + + + + + Represents an event that happens when a call has been intercepted by a proxy. + + + + + Initializes a new instance of the class. + + The call. + + + + Gets the call that was intercepted. + + The call. + + + + Keeps track of metadata for interceptions. + + + + + Gets whether the rule has been called the number of times specified or not. + + True if the rule has not been called the number of times specified. + + + + Gets or sets the number of times the rule has been used. + + + + + Gets or sets the rule this metadata object is tracking. + + + + + Manages attaching of argument constraints. + + The type of argument to constrain. + + + + Constrains the argument with a predicate. + + The predicate that should constrain the argument. + An action that will be write a description of the constraint. + A dummy argument value. + + + + Inverts the logic of the matches method. + + + + + Validates an argument, checks that it's valid in a specific fake call. + + + + + Writes a description of the argument constraint to the specified writer. + + + The writer. + + + + + Gets whether the argument is valid. + + The argument to validate. + True if the argument is valid. + + + + Default implementation of . + + + + + Attaches a fake manager to the proxy so that intercepted + calls can be configured. + + + + + Attaches a to the specified proxy, listening to + the event raiser. + + The type of the fake object proxy. + The proxy to attach to. + The event raiser to listen to. + + + + Gets the fake manager associated with the proxy. + + The proxy to get the manager from. + A fake manager. + + + + Attaches a to the specified proxy, listening to + the event raiser. + + The type of the fake object proxy. + The proxy to attach to. + The event raiser to listen to. + + + + Gets the fake manager associated with the proxy. + + The proxy to get the manager from. + A fake manager. + + + + Represents an object that can be tagged with another object. When implemented + by a proxy returned from an FakeItEasy uses the tag + to store a reference to the that handles that proxy. + + + + + Gets or sets the tag. + + + + + The default implementation of the IFakeObjectCallFormatter interface. + + + + + Provides string formatting for fake object calls. + + + + + Gets a human readable description of the specified + fake object call. + + The call to get a description for. + A description of the call. + + + + Gets a human readable description of the specified + fake object call. + + The call to get a description for. + A description of the call. + + + + Handles configuring of fake objects to delegate all their calls to a wrapped instance. + + + + + Manages configuration of fake objects to wrap instances. + + + + + Configures the specified faked object to wrap the specified instance. + + The faked object to configure. + The instance to wrap. + The recorder to use, null if no recording should be made. + + + + Configures the specified faked object to wrap the specified instance. + + The faked object to configure. + The instance to wrap. + The recorder to use, null if no recording should be made. + + + + A fake object container where delegates can be registered that are used to + resolve fake objects. + + + + + A container that can create fake objects. + + + + + Handles global configuration of fake object. + + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + + + + Creates a dummy object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + + The type of dummy object to create. + The dummy object that was created if the method returns true. + True if a dummy object can be created. + + + + Initializes a new instance of the class. + Creates a new instance of the DelegateFakeObjectContainer. + + + + + Creates a fake object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + + The type of dummy object to create. + The fake object that was created if the method returns true. + True if a fake object can be created. + + + + Configures the fake. + + The type of fake. + The fake object. + + + + Registers the specified fake delegate. + + The type of the return value of the method that encapsulates. + The fake delegate. + + + + A IFakeObjectContainer implementation that uses MEF to load IFakeDefinitions and + IFakeConfigurations. + + + + + Initializes a new instance of the class. + + The dummy definitions. + The fake configurators. + + + + Creates a fake object of the specified type using the specified arguments if it's + supported by the container, returns a value indicating if it's supported or not. + + The type of fake object to create. + The fake object that was created if the method returns true. + True if a fake object can be created. + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + + + + An exception that is thrown when there was an error creating a fake object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + Auto fake property rule. + + The central point in the API for proxied fake objects handles interception + of fake object calls by using a set of rules. User defined rules can be inserted + by using the AddRule-method. + + Event rule. + Object member rule. + Property behavior rule. + Property setter rule. + + + + Initializes a new instance of the class. + + + + + Adds a call rule to the fake object. + + The rule to add. + + + + Adds a call rule last in the list of user rules, meaning it has the lowest priority possible. + + The rule to add. + + + + Removes the specified rule for the fake object. + + The rule to remove. + + + + Adds an interception listener to the manager. + + The listener to add. + + + + Removes any specified user rules. + + + + + Gets the faked object. + + + + + Gets the faked type. + + + + + Gets the interceptions that are currently registered with the fake object. + + + + + Gets a collection of all the calls made to the fake object within the current scope. + + + + + A delegate responsible for creating FakeObject instances. + + An instance of . + + + + Represents a call to a fake object at interception time. + + + + + Represents a fake object call that can be edited. + + + + + Represents a call to a fake object. + + + + + Gets the method that's called. + + + + + Gets the arguments used in the call. + + + + + Gets the faked object the call is performed on. + + + + + Sets the return value of the call. + + The return value to set. + + + + Calls the base method of the faked type. + + + + + Sets the value of the argument at the specified index in the parameters list. + + The index of the argument to set the value of. + The value to set to the argument. + + + + Freezes the call so that it can no longer be modified. + + A completed fake object call. + + + + Sets that the call should not be recorded by the fake manager. + + + + + Attempts to preserve the stack trace of an existing exception when rethrown via throw or throw ex. + + Nicked from + http://weblogs.asp.net/fmarguerie/archive/2008/01/02/rethrowing-exceptions-and-preserving-the-full-call-stack-trace.aspx. + If reduced trust context (for example) precludes + invoking internal members on , the stack trace will not be preserved. + + The exception whose stack trace needs preserving. + + + + Represents a scope for fake objects, calls configured within a scope + are only valid within that scope. Only calls made within a scope + are accessible from within a scope so for example asserts will only + assert on those calls done within the scope. + + + + + Provides access to all calls made to fake objects within a scope. + Scopes calls so that only calls made within the scope are visible. + + + + + Creates a new scope and sets it as the current scope. + + The created scope. + + + + Creates a new scope and sets it as the current scope, using the specified + container as the container for the new scope. + + The container to use for the new scope. + The created scope. + + + + Closes the scope. + + + + + Adds an intercepted call to the current scope. + + The fake object. + The call that is intercepted. + + + + Adds a fake object call to the current scope. + + The fake object. + The rule to add. + + + + Represents a completed call to a fake object. + + + + + Gets the value set to be returned from the call. + + + + + Used by the event raising rule of fake objects to get the event arguments used in + a call to Raise.With. + + + + + Gets the sender of the event. + + + + + Gets the event arguments of the event. + + + + + Represents a listener for fake object calls, can be plugged into a + FakeManager instance to listen to all intercepted calls. + + The OnBeforeCallIntercepted method will be invoked before the OnBeforeCallIntercepted method of any + previously added listener. The OnAfterCallIntercepted method will be invoked after the OnAfterCallIntercepted + method of any previously added listener. + + + + Called when the interception begins but before any call rules + has been applied. + + The intercepted call. + + + + Called when the interception has been completed and rules has been + applied. + + The intercepted call. + The rule that was applied to the call. + + + + Handles comparisons of instances of . + + + + + Gets a value indicating whether the two instances of would invoke the same method + if invoked on an instance of the target type. + + The type of target for invocation. + The first . + The second . + True if the same method would be invoked. + + + + A null implementation for the IFakeObjectContainer interface. + + + + + Always returns false and sets the fakeObject to null. + + The type of dummy object to create. + Output variable for the fake object that will always be set to null. + Always return false. + + + + Applies base configuration to a fake object. + + The type the fake object represents. + The fake object to configure. + + + + A call rule that applies to any call and just delegates the + call to the wrapped object. + + + + + Initializes a new instance of the class. + Creates a new instance. + + + The object to wrap. + + + + + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + + The call to check for applicability. + True if the interceptor is applicable. + + + + Applies an action to the call, might set a return value or throw + an exception. + + The call to apply the interceptor to. + + + + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. + + + + + + An interface to be implemented by classes that can generate proxies for FakeItEasy. + + + + + Generates a proxy of the specified type and returns a result object containing information + about the success of the generation and the proxy if it was generated. + + The type of proxy to generate. + Interfaces to be implemented by the proxy. + Arguments to pass to the constructor of the type in . + The custom attribute builders. + A result containing the generated proxy. + + + + Generates a proxy of the specified type and returns a result object containing information + about the success of the generation and the proxy if it was generated. + + The type of proxy to generate. + Interfaces to be implemented by the proxy. + Arguments to pass to the constructor of the type in . + A result containing the generated proxy. + + + + Gets a value indicating whether the specified member can be intercepted by the proxy generator. + + The member to test. + The instance the method will be called on. + The reason the method can not be intercepted. + True if the member can be intercepted. + + + + An object that raises an event every time a call to a proxy has been intercepted. + + + + + Raised when a call is intercepted. + + + + + An adapter that adapts an to a . + + + + + Initializes a new instance of the class. + + The invocation. + + + + Freezes the call so that it can no longer be modified. + + A completed fake object call. + + + + Calls the base method, should not be used with interface types. + + + + + Sets the specified value to the argument at the specified index. + + The index of the argument to set the value to. + The value to set to the argument. + + + + Sets the return value of the call. + + The return value. + + + + Returns a description of the call. + + + A that represents this instance. + + + + + Gets a human readable description of the call. + + + + + + Gets the value set to be returned from the call. + + + + + Gets the method that's called. + + + + + Gets the arguments used in the call. + + + + + Gets the faked object the call is performed on. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to No constructor matches the passed arguments for constructor.. + + + + + Looks up a localized string similar to Arguments for constructor specified for interface type.. + + + + + Looks up a localized string similar to The type of proxy "{0}" is sealed.. + + + + + Looks up a localized string similar to The type of proxy must be an interface or a class but it was {0}.. + + + + + Looks up a localized string similar to No usable default constructor was found on the type {0}.. + + + + + The default implementation of the IFakeAndDummyManager interface. + + + + + Handles the creation of fake and dummy objects. + + + + + Creates a dummy of the specified type. + + The type of dummy to create. + The created dummy. + The current IProxyGenerator is not able to generate a fake of the specified type and + the current IFakeObjectContainer does not contain the specified type. + + + + Creates a fake object of the specified type. + + The type of fake object to generate. + Options for building the fake object. + A fake object. + The current IProxyGenerator is not able to generate a fake of the specified type. + + + + Tries to create a dummy of the specified type. + + The type of dummy to create. + Outputs the result dummy when creation is successful. + A value indicating whether the creation was successful. + + + + Tries to create a fake object of the specified type. + + The type of fake to create. + Options for the creation of the fake. + The created fake object when creation is successful. + A value indicating whether the creation was successful. + + + + Default implementation of the IFakeCreator-interface. + + + + + A facade used by the public API for testability. + + + + + Creates a fake object of the specified type. + + The type of fake to create. + Options for the created fake object. + The created fake object. + Was unable to generate the fake in the current configuration. + + + + Creates a dummy object, this can be a fake object or an object resolved + from the current IFakeObjectContainer. + + The type of dummy to create. + The created dummy. + Was unable to generate the fake in the current configuration and + no dummy was registered in the container for the specified type.. + + + + Creates a collection of fakes of the specified type. + + The type of fakes to create. + The number of fakes in the collection. + A collection of fake objects of the specified type. + + + + Initializes a new instance of the class. + + The fake and dummy manager. + + + + Creates a fake object of the specified type. + + The type of fake to create. + Options for the created fake object. + The created fake object. + Was unable to generate the fake in the current configuration. + + + + Creates a collection of fakes of the specified type. + + The type of fakes to create. + The number of fakes in the collection. + + A collection of fake objects of the specified type. + + + + + Creates a dummy object, this can be a fake object or an object resolved + from the current IFakeObjectContainer. + + The type of dummy to create. + The created dummy. + Was unable to generate the fake in the current configuration and + no dummy was registered in the container for the specified type.. + + + + Provides options for fake wrappers. + + The type of the fake object generated. + + + + Provides options for generating fake object. + + The type of fake object generated. + + + + Specifies arguments for the constructor of the faked class. + + The arguments to pass to the constructor of the faked class. + Options object. + + + + Specifies arguments for the constructor of the faked class by giving an expression with the call to + the desired constructor using the arguments to be passed to the constructor. + + The constructor call to use when creating a class proxy. + Options object. + + + + Specifies that the fake should delegate calls to the specified instance. + + The object to delegate calls to. + Options object. + + + + Specifies that the fake should be created with these additional attributes. + + The attributes to build into the proxy. + Options object. + + + + Sets up the fake to implement the specified interface in addition to the + originally faked class. + + The type of interface to implement. + Options object. + The specified type is not an interface. + The specified type is null. + + + + Specifies an action that should be run over the fake object + once it's created. + + An action to perform. + Options object. + + + + Specifies a fake recorder to use. + + The recorder to use. + Options object. + + + + Initializes a new instance of the class. + + The container. + The fake object creator. + + + + Contains the result of a call to TryCreateProxy of IProxyGenerator. + + + + + Initializes a new instance of the class. + Creates a new instance representing a failed proxy + generation attempt. + + + The reason the proxy generation failed. + + + + + Initializes a new instance of the class. + Creates a new instance representing a failed proxy + generation attempt due to an exception being caught. + + + The reason the proxy generation failed. + + + The exception thrown from the creation attempt. + + + + + Initializes a new instance of the class. + Creates a new instance representing a successful proxy + generation. + + + The proxy that was generated. + + + An event raiser that raises + events when calls are intercepted to the proxy. + + + + + Gets a value indicating whether the proxy was successfully created. + + + + + Gets the generated proxy when it was successfully created. + + + + + Gets the event raiser that raises events when calls to the proxy are + intercepted. + + + + + Gets the reason for failure when the generation was not successful. + + + + + Represents a text writer that writes to the output. + + + + + Writes the specified value to the output. + + The value to write. + The writer for method chaining. + + + + Formats the specified argument value as a string and writes + it to the output. + + The value to write. + The writer for method chaining. + + + + Indents the writer. + + A disposable that will unindent the writer when disposed. + + + + Represents a definition of how a fake object of the type T should + be created. + + The type of fake. + + + + Represents a definition of how dummies of the specified type should be created. + + + + + Creates the fake. + + The fake object. + + + + Gets the type of fake object the definition is for. + + + + + Creates the dummy. + + The dummy object. + + + + Creates the dummy. + + The dummy object. + + + + Gets the type the definition is for. + + For type. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to The Apply method of the ExpressionInterceptor may no be called before the Applicator property has been set.. + + + + + Looks up a localized string similar to The specified argument name does not exist in the ArgumentList.. + + + + + Looks up a localized string similar to Arguments for constructor was specified when generating proxy of interface type.. + + + + + Looks up a localized string similar to An argument validation was not configured correctly.. + + + + + Looks up a localized string similar to The method '{0}' was called too few times, expected #{1} times but was called #{2} times.. + + + + + Looks up a localized string similar to The method '{0}' was called too many times, expected #{1} times but was called #{2} times.. + + + + + Looks up a localized string similar to Can not create fake of the type '{0}', it's not registered in the current container and the current IProxyGenerator can not generate the fake. + + The following constructors failed: + {1}. + + + + + Looks up a localized string similar to Error when accessing FakeObject, the specified argument is of the type '{0}' which is not faked.. + + + + + Looks up a localized string similar to An ExpressionCallMatcher can only be created for expressions that represents a method call or a property getter.. + + + + + Looks up a localized string similar to + + The current proxy generator failed to create a proxy with the specified arguments for the constructor: + + Reason for failure: + - {0} + + . + + + + + Looks up a localized string similar to FakeItEasy failed to create fake object of type "{0}". + + 1. The type is not registered in the current IFakeObjectContainer. + 2. The current IProxyGenerator failed to generate a proxy for the following reason: + + {1}. + + + + + Looks up a localized string similar to Unable to create fake object.. + + + + + Looks up a localized string similar to Only abstract classes can be faked using the A.Fake-method that takes an enumerable of objects as arguments for constructor, use the overload that takes an expression instead.. + + + + + Looks up a localized string similar to The member accessor expression must be a lambda expression with a MethodCallExpression or MemberAccessExpression as its body.. + + + + + Looks up a localized string similar to The specified method can not be configured since it can not be intercepted by the current IProxyGenerator.. + + + + + Looks up a localized string similar to The method of the call did not match the method of the recorded call, the recorded sequence is no longer valid.. + + + + + Looks up a localized string similar to No constructor matching the specified arguments was found on the type {0}.. + + + + + Looks up a localized string similar to Can not generate fake object for the class since no usable default constructor was found, specify a constructor call.. + + + + + Looks up a localized string similar to All the recorded calls has been applied, the recorded sequence is no longer valid.. + + + + + Looks up a localized string similar to Only expression of the type ExpressionType.New (constructor calls) are accepted.. + + + + + Looks up a localized string similar to The Now-method on the event raise is not meant to be called directly, only use it to register to an event on a fake object that you want to be raised.. + + + + + Looks up a localized string similar to The number of values for out and ref parameters specified does not match the number of out and ref parameters in the call.. + + + + + Looks up a localized string similar to A scope for ordered assertions is already opened, close that scope before opening another one.. + + + + + Looks up a localized string similar to The specified call is not made on a fake object.. + + + + + Looks up a localized string similar to The current fake proxy generator can not create proxies of the type {0}.. + + + + + Looks up a localized string similar to FakeItEasy was unable to create dummy of type "{0}", register it in the current IFakeObjectContainer to enable this.. + + + + + Looks up a localized string similar to Expected to find call {0} the number of times specified by the predicate '{1}' but found it {2} times among the calls:. + + + + + Looks up a localized string similar to The number of argument names does not match the number of arguments.. + + + + + An exception thrown when an expectation is not met (when asserting on fake object calls). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Represents a class that can parse a lambda expression + that represents a method or property call. + + + + + Parses the specified expression. + + The expression to parse. + The parsed expression. + + + + Handles the matching of fake object calls to expressions. + + + + + Initializes a new instance of the class. + + The call specification. + The constraint factory. + The method info manager to use. + A parser to use to parse call expressions. + + + + Matches the specified call against the expression. + + The call to match. + True if the call is matched by the expression. + + + + Gets a description of the call. + + Description of the call. + + + + Gets a human readable description of calls that will be matched by this + matcher. + + + + + An implementation of the interface that uses + expressions for evaluating if the rule is applicable to a specific call. + + + + + Initializes a new instance of the class. + + The expression matcher to use. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Handles the instantiation of ExpressionCallRule instance. + + An expression specifying the call. + A rule instance. + + + + Manages breaking call specification expression into their various parts. + + + + + Manages breaking call specification expression into their various parts. + + + + + Gets the fake object an expression is called on. + + The call expression. + The FakeManager instance that manages the faked object the call is made on. + The fakeObjectCall is null. + The specified expression is not an expression where a call is made to a faked object. + + + + Gets the fake object an expression is called on. + + The call expression. + A FakeObject. + The fakeObjectCall is null. + The specified expression is not an expression where a call is made to a faked object. + + + + Provides static methods for accessing fake objects. + + + + + Gets the fake object that manages the faked object. + + The faked object to get the manager object for. + The fake object manager. + + + + Creates a new scope and sets it as the current scope. When inside a scope the + getting the calls made to a fake will return only the calls within that scope and when + asserting that calls were made, the calls must have been made within that scope. + + The created scope. + + + + Creates a new scope and sets it as the current scope. When inside a scope the + getting the calls made to a fake will return only the calls within that scope and when + asserting that calls were made, the calls must have been made within that scope. + + The container to use within the specified scope. + The created scope. + + + + Gets a value indicating whether the two objects are equal. + + The first object to compare. + The second object to compare. + True if the two objects are equal. + + + + Gets a value indicating whether the two objects are the same reference. + + The object A. + The object B. + True if the objects are the same reference. + + + + Gets all the calls made to the specified fake object. + + The faked object. + A collection containing the calls to the object. + The object passed in is not a faked object. + + + + Clears the configuration of the faked object. + + The faked object to clear the configuration of. + + + + Sets a new fake to each property or field that is tagged with the FakeAttribute in the specified + fixture. + + The object to initialize. + + + + Represents a fake object that provides an API for configuring a faked object, exposed by the + FakedObject-property. + + The type of the faked object. + + + + Initializes a new instance of the class. + Creates a new fake object. + + + + + Initializes a new instance of the class. + Creates a new fake object using the specified options. + + + Options used to create the fake object. + + + + + Configures calls to the specified member. + + An expression specifying the call to configure. + A configuration object. + + + + Configures calls to the specified member. + + The type of value the member returns. + An expression specifying the call to configure. + A configuration object. + + + + Configures any call to the fake object. + + A configuration object. + + + + Gets the faked object. + + + + + Gets all calls made to the faked object. + + + + + Used to tag fields and properties that will be initialized through the + Fake.Initialize-method. + + + + + Provides the base implementation for the IFakeConfigurator-interface. + + The type of fakes the configurator can configure. + + + + Provides configurations for fake objects of a specific type. + + + + + Applies the configuration for the specified fake object. + + The fake object to configure. + + + + Gets the type the instance provides configuration for. + + + + + Configures the fake. + + The fake object. + + + + Applies the configuration for the specified fake object. + + The fake object to configure. + + + + Asserts the type of the that fake is of correct. + + The fake object. + + + + Gets the type the instance provides configuration for. + + + + + + Provides methods for guarding method arguments. + + + + + Throws an exception if the specified argument is null. + + The argument. + Name of the argument. + The specified argument was null. + + + + When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked. + + + + + Provides access to the file system. + + + + + Opens the specified file in the specified mode. + + The full path and name of the file to open. + The mode to open the file in. + A stream for reading and writing the file. + + + + Gets a value indicating whether the specified file exists. + + The path and name of the file to check. + True if the file exists. + + + + Creates a file with the specified name. + + The name of the file to create. + + + + A simple implementation of an IoC container. + + + + + The dictionary that stores the registered services. + + + + + Initializes a new instance of the class. + + + + + Resolves an instance of the specified component type. + + Type of the component. + An instance of the component type. + + + + Registers the specified resolver. + + The type of component to register. + The resolver. + + + + Registers the specified resolver as a singleton. + + The type of component to register. + The resolver. + + + + Provides properties and methods to specify repeat. + + + + + Specifies the number of times as repeat. + + The number of times expected. + A Repeated instance. + + + + Specifies once as the repeat. + + + + + Specifies twice as the repeat. + + + + + Lets you specify options for the next call to a fake object. + + + + + Specifies options for the next call to the specified fake object. The next call will + be recorded as a call configuration. + + The type of the faked object. + The faked object to configure. + A call configuration object. + + + + Provides functionality for making ordered assertions on fakes. + + + + + Creates a scope that changes the behavior on asserts so that all asserts within + the scope must be to calls in the specified collection of calls. Calls must have happened + in the order that the asserts are specified or the asserts will fail. + + The calls to assert among. + A disposable used to close the scope. + + + + Allows the developer to raise an event on a faked object. + + + + + Raises an event on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + + The type of the event args. + The sender of the event. + The instance containing the event data. + A Raise(TEventArgs)-object that exposes the event handler to attach. + + + + Raises an event on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + + The type of the event arguments. + The instance containing the event data. + + A Raise(TEventArgs)-object that exposes the event handler to attach. + + + + + Raises an event with empty event arguments on a faked object by attaching the event handler produced by the method + to the event that is to be raised. + + + A Raise(TEventArgs)-object that exposes the event handler to attach. + + + + + A class exposing an event handler to attach to an event of a faked object + in order to raise that event. + + The type of the event args. + + + + Register this event handler to an event on a faked object in order to raise that event. + + The sender of the event. + Event args for the event. + + + + Gets a generic event handler to attach to the event to raise. + + + + + Provides methods for creating recorders for self initializing fakes. + + + + + Provides syntax for specifying the number of times a call must have been repeated when asserting on + fake object calls. + + A.CallTo(() => foo.Bar()).Assert(Happened.Once.Exactly); + + + + Specifies that a call must have been repeated a number of times + that is validated by the specified repeatValidation argument. + + A predicate that specifies the number of times + a call must have been made. + A Repeated-instance. + + + + When implemented gets a value indicating if the repeat is matched + by the Happened-instance. + + The repeat of a call. + True if the repeat is a match. + + + + Asserts that a call has not happened at all. + + + + + The call must have happened exactly the number of times that is specified in the next step. + + + + + The call must have happened any number of times greater than or equal to the number of times that is specified + in the next step. + + + + + The call must have happened any number of times less than or equal to the number of times that is specified + in the next step. + + + + + Handles the registration of root dependencies in an IoC-container. + + + + + Registers the dependencies. + + The container to register the dependencies in. + + + + DTO for recorded calls. + + + + + Initializes a new instance of the class. + + The method. + The output arguments. + The return value. + + + + Gets the method that was called. + + The method. + + + + Gets the output arguments of the call. + + The output arguments. + + + + Gets the return value of the call. + + The return value. + + + + Represents storage for recorded calls for self initializing + fakes. + + + + + Loads the recorded calls for the specified recording. + + The recorded calls for the recording with the specified id. + + + + Saves the specified calls as the recording with the specified id, + overwriting any previous recording. + + The calls to save. + + + + An interface for recorders that provides stored responses for self initializing fakes. + + + + + Applies the call if the call has been recorded. + + The call to apply to from recording. + + + + Records the specified call. + + The call to record. + + + + Gets a value indicating whether the recorder is currently recording. + + + + + An exception that can be thrown when recording for self initialized + fakes fails or when playback fails. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Manages the applying of recorded calls and recording of new calls when + using self initialized fakes. + + + + + Initializes a new instance of the class. + + The storage. + + + + Applies the call if the call has been recorded. + + The call to apply to from recording. + + + + Records the specified call. + + The call to record. + + + + Saves all recorded calls to the storage. + + + + + Gets a value indicating whether the recorder is currently recording. + + + + + + Represents a factory responsible for creating recording manager + instances. + + The storage the manager should use. + A RecordingManager instance. + + + + A call rule use for self initializing fakes, delegates call to + be applied by the recorder. + + + + + Initializes a new instance of the class. + + The wrapped rule. + The recorder. + + + + Gets whether this interceptor is applicable to the specified + call, if true is returned the Apply-method of the interceptor will + be called. + + The call to check for applicability. + True if the interceptor is applicable. + + + + Applies an action to the call, might set a return value or throw + an exception. + + The call to apply the interceptor to. + + + + Gets the number of times this call rule is valid, if it's set + to null its infinitely valid. + + + + + + An attribute that can be applied to code that should be fixed because there's a + code smell. + + + + + Gets or sets the description of the smell. + + + + + Used to tag fields and properties that will be initialized as a SUT through the Fake.Initialize-method. + + + + + Provides helper methods for checking the value producer signature against call signatures. + + + + + Fixes so that existing Serializable-attributes are omitted in the compilation + of the silverlight project. + + + + + Fixes so that existing NonSerialized-attributes are omitted in the compilation + of the silverlight project. + + + + diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs index 40b75520dbb..8ea2fe32b58 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Autofac; using Autofac.Extras.FakeItEasy; using Elasticsearch.Net.Connection; using Elasticsearch.Net.Exceptions; @@ -23,14 +24,19 @@ public class RetryTests private readonly ConnectionConfiguration _connectionConfig = new ConnectionConfiguration() .SetMaxRetries(_retries); + private void ProvideTransport(AutoFake fake) + { + var param = new TypedParameter(typeof(IDateTimeProvider), null); + fake.Provide(param); + } + [Test] public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() { using (var fake = new AutoFake(callsDoNothing: true)) { fake.Provide(_connectionConfig); - fake.Provide(fake.Resolve()); - + this.ProvideTransport(fake); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Throws(); @@ -50,7 +56,7 @@ public void ShouldNotRetryOn400() using (var fake = new AutoFake(callsDoNothing: true)) { var settings = fake.Provide(_connectionConfig); - fake.Provide(fake.Resolve()); + this.ProvideTransport(fake); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 400, "GET", "/", null, null)); @@ -69,7 +75,7 @@ public void ShouldNotRetryOn500() using (var fake = new AutoFake(callsDoNothing: true)) { var settings = fake.Provide(_connectionConfig); - fake.Provide(fake.Resolve()); + this.ProvideTransport(fake); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 500, "GET", "/", null, null)); @@ -88,7 +94,7 @@ public void ShouldNotRetryOn201() using (var fake = new AutoFake(callsDoNothing: true)) { var settings = fake.Provide(_connectionConfig); - fake.Provide(fake.Resolve()); + this.ProvideTransport(fake); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 201, "GET", "/", null, null)); @@ -107,7 +113,7 @@ public void ShouldRetryOn503() using (var fake = new AutoFake(callsDoNothing: true)) { var settings = fake.Provide(_connectionConfig); - fake.Provide(fake.Resolve()); + this.ProvideTransport(fake); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(settings, 503, "GET", "/", null, null)); diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs index dd1b71819a1..6442862e194 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs @@ -3,6 +3,13 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Autofac; +using Autofac.Extras.FakeItEasy; +using Elasticsearch.Net.Connection; +using Elasticsearch.Net.Exceptions; +using FakeItEasy; +using FakeItEasy.Configuration; +using FluentAssertions; using NUnit.Framework; namespace Elasticsearch.Net.Tests.Unit.Connection @@ -10,6 +17,155 @@ namespace Elasticsearch.Net.Tests.Unit.Connection [TestFixture] public class SniffingConnectionPoolTests { + [Test] + public void SniffOnStartupCallsSniffOnlyOnce() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + //It's recommended to only have on instance of your connection pool + //Be sure to register it as Singleton in your IOC + var connectionPool = new SniffingConnectionPool(new[] { new Uri("http://localhost:9200") }); + var config = new ConnectionConfiguration(connectionPool) + .SniffOnStartup(); + fake.Provide(config); + var param = new TypedParameter(typeof(IDateTimeProvider), null); + fake.Provide(param); + var connection = fake.Resolve(); + var sniffCall = A.CallTo(() => connection.Sniff(A._, A._)); + var client1 = fake.Resolve(); + var client2 = fake.Resolve(); + var client3 = fake.Resolve(); + var client4 = fake.Resolve(); + + sniffCall.MustHaveHappened(Repeated.Exactly.Once); + } + } + + [Test] + public void SniffIsCalledAfterItHasGoneOutOfDate() + { + using (var fake = new AutoFake()) + { + var dateTimeProvider = fake.Resolve(); + var nowCall = A.CallTo(()=>dateTimeProvider.Now()); + nowCall.ReturnsNextFromSequence( + DateTime.UtcNow, //initial sniff time (set even if not sniff_on_startup + DateTime.UtcNow, //info call 1 + DateTime.UtcNow, //info call 2 + DateTime.UtcNow.AddMinutes(10), //info call 3 + DateTime.UtcNow.AddMinutes(10), //set now after sniff 3 + DateTime.UtcNow.AddMinutes(20), //info call 4 + DateTime.UtcNow.AddMinutes(20), //set now after sniff 4 + DateTime.UtcNow.AddMinutes(22) //info call 5 + ); + var connectionPool = new SniffingConnectionPool(new[] { new Uri("http://localhost:9200") }); + var config = new ConnectionConfiguration(connectionPool) + .SniffLifeSpan(TimeSpan.FromMinutes(4)); + fake.Provide(config); + fake.Provide(fake.Resolve()); + var connection = fake.Resolve(); + var sniffCall = A.CallTo(() => connection.Sniff(A._, A._)); + var getCall = A.CallTo(() => connection.GetSync(A._)); + getCall.Returns(ElasticsearchResponse.Create(config, 200, "GET", "/", null, null)); + + var client1 = fake.Resolve(); + client1.Info(); //info call 1 + client1.Info(); //info call 2 + client1.Info(); //info call 3 + client1.Info(); //info call 4 + client1.Info(); //info call 5 + + sniffCall.MustHaveHappened(Repeated.Exactly.Twice); + nowCall.MustHaveHappened(Repeated.Exactly.Times(8)); + + //var nowCall = A.CallTo(() => fake.Resolve().Sniff(A._, A._)); + } + } + [Test] + public void SniffIsCalledAfterItHasGoneOutOfDate_NotWhenItSeesA503() + { + using (var fake = new AutoFake()) + { + var dateTimeProvider = fake.Resolve(); + var nowCall = A.CallTo(()=>dateTimeProvider.Now()); + nowCall.ReturnsNextFromSequence( + DateTime.UtcNow, //initial sniff time (set even if not sniff_on_startup + DateTime.UtcNow, //info call 1 + DateTime.UtcNow, //info call 2 + DateTime.UtcNow.AddMinutes(10), //info call 3 + DateTime.UtcNow.AddMinutes(10), //set now after sniff 3 + DateTime.UtcNow.AddMinutes(10), //info call 4 + DateTime.UtcNow.AddMinutes(12) //info call 5 + ); + var connectionPool = new SniffingConnectionPool(new[] { new Uri("http://localhost:9200") }); + var config = new ConnectionConfiguration(connectionPool) + .SniffLifeSpan(TimeSpan.FromMinutes(4)); + fake.Provide(config); + fake.Provide(fake.Resolve()); + var connection = fake.Resolve(); + var sniffCall = A.CallTo(() => connection.Sniff(A._, A._)); + var getCall = A.CallTo(() => connection.GetSync(A._)); + getCall.ReturnsNextFromSequence( + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 1 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 2 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 3 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //sniff + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 4 + ElasticsearchResponse.Create(config, 503, "GET", "/", null, null) //info 5 + ); + + var client1 = fake.Resolve(); + client1.Info(); //info call 1 + client1.Info(); //info call 2 + client1.Info(); //info call 3 + client1.Info(); //info call 4 + client1.Info(); //info call 5 + + sniffCall.MustHaveHappened(Repeated.Exactly.Once); + nowCall.MustHaveHappened(Repeated.Exactly.Times(7)); + + //var nowCall = A.CallTo(() => fake.Resolve().Sniff(A._, A._)); + } + } + + [Test] + public void SniffOnConnectionFaultCausesSniffOn503() + { + using (var fake = new AutoFake()) + { + var dateTimeProvider = fake.Resolve(); + var nowCall = A.CallTo(()=>dateTimeProvider.Now()); + nowCall.Returns(DateTime.UtcNow); + + var connectionPool = new SniffingConnectionPool(new[] { new Uri("http://localhost:9200") }); + var config = new ConnectionConfiguration(connectionPool) + .SnifsOnConnectionFault(); + fake.Provide(config); + fake.Provide(fake.Resolve()); + var connection = fake.Resolve(); + var sniffCall = A.CallTo(() => connection.Sniff(A._, A._)); + var getCall = A.CallTo(() => connection.GetSync(A._)); + getCall.ReturnsNextFromSequence( + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 1 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 2 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 3 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 4 + ElasticsearchResponse.Create(config, 503, "GET", "/", null, null) //info 5 + ); + + var client1 = fake.Resolve(); + client1.Info(); //info call 1 + client1.Info(); //info call 2 + client1.Info(); //info call 3 + client1.Info(); //info call 4 + Assert.Throws(()=>client1.Info()); //info call 5 + + sniffCall.MustHaveHappened(Repeated.Exactly.Once); + nowCall.MustHaveHappened(Repeated.Exactly.Times(7)); + + //var nowCall = A.CallTo(() => fake.Resolve().Sniff(A._, A._)); + } + } } -} +} \ No newline at end of file diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs index d9402394a13..1b4130e3267 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs @@ -37,6 +37,11 @@ public StaticConnectionPoolRetryTests() _config = new ConnectionConfiguration(_connectionPool); } + private void ProvideTransport(AutoFake fake) + { + var param = new TypedParameter(typeof(IDateTimeProvider), null); + fake.Provide(param); + } [Test] public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() { @@ -47,7 +52,7 @@ public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() fake.Provide(_config); //prove a real HttpTransport with its unspecified dependencies //as fakes - fake.Provide(fake.Resolve()); + this.ProvideTransport(fake); //set up fake for a call on IConnection.GetSync so that it always throws //an exception @@ -82,7 +87,7 @@ public void AllNodesMustBeTriedOnce() fake.Provide(_config); var connection = fake.Resolve(); fake.Provide(connection); - fake.Provide(fake.Resolve()); + this.ProvideTransport(fake); //provide a unique fake for each node. var calls = _uris.Select(u => @@ -118,7 +123,7 @@ public void HardRetryLimitTakesPrecedenceOverNumberOfNodes() var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Throws(); - fake.Provide(fake.Resolve()); + this.ProvideTransport(fake); var client = fake.Resolve(); @@ -154,7 +159,7 @@ public void AConnectionMustBeMadeEvenIfAllNodesAreDead() ); //setup client - fake.Provide(fake.Resolve()); + this.ProvideTransport(fake); var client = fake.Resolve(); //Do not throw because by miracle the 4th retry manages to give back a 200 @@ -203,7 +208,8 @@ public void AllNodesWillBeMarkedDead() ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null) ); - fake.Provide(fake.Resolve()); + + this.ProvideTransport(fake); var client = fake.Resolve(); //Since we always get a 503 we should see an out of nodes exception @@ -254,7 +260,7 @@ public void IfAConnectionComesBackToLifeOnItsOwnItShouldBeMarked() //provide a transport with all the dependencies resolved - fake.Provide(fake.Resolve()); + this.ProvideTransport(fake); //instantiate connection with faked dependencies var client = fake.Resolve(); @@ -321,7 +327,7 @@ public void IfAllButOneConnectionDiesSubsequentRequestsMustUseTheOneAliveConnect ); //provide a transport with all the dependencies resolved - fake.Provide(fake.Resolve()); + this.ProvideTransport(fake); //instantiate connection with faked dependencies var client = fake.Resolve(); diff --git a/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj b/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj index 33644bc6270..6824207a07e 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj +++ b/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj @@ -33,12 +33,13 @@ ..\..\dep\Autofac.3.2.0\lib\net40\Autofac.dll - - ..\..\dep\Autofac.Extras.FakeItEasy.3.0.0\lib\net40\Autofac.Extras.FakeItEasy.dll + + False + ..\..\dep\Autofac.Extras.FakeItEasy.3.0.1\lib\net40\Autofac.Extras.FakeItEasy.dll - + False - ..\..\dep\FakeItEasy.1.15.0\lib\net40\FakeItEasy.dll + ..\..\dep\FakeItEasy.1.18.0\lib\net40\FakeItEasy.dll ..\..\dep\FluentAssertions.2.0.0.1\lib\net45\FluentAssertions.dll diff --git a/src/Elasticsearch.Net.Tests.Unit/packages.config b/src/Elasticsearch.Net.Tests.Unit/packages.config index e665f257735..3fdf6efbaeb 100644 --- a/src/Elasticsearch.Net.Tests.Unit/packages.config +++ b/src/Elasticsearch.Net.Tests.Unit/packages.config @@ -1,8 +1,9 @@  - + + \ No newline at end of file diff --git a/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs b/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs index 719b1dadfe7..4a6f8f83c42 100644 --- a/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs +++ b/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs @@ -87,9 +87,6 @@ public T SniffLifeSpan(TimeSpan sniffTimeSpan) return (T)this; } - - - /// /// Enable Trace signals to the IConnection that it should put debug information on the Trace. /// diff --git a/src/Elasticsearch.Net/Connection/ConnectionPool.cs b/src/Elasticsearch.Net/Connection/ConnectionPool.cs index 5552b71284b..db63b3ec68b 100644 --- a/src/Elasticsearch.Net/Connection/ConnectionPool.cs +++ b/src/Elasticsearch.Net/Connection/ConnectionPool.cs @@ -101,6 +101,8 @@ public SniffingConnectionPool( { } + + public override void Sniff(IConnection connection, bool fromStartupHint = false) { if (fromStartupHint && _seenStartup) @@ -112,6 +114,8 @@ public override void Sniff(IConnection connection, bool fromStartupHint = false) this._readerWriter.EnterWriteLock(); var nodes = connection.Sniff(uri, 50); + if (!nodes.HasAny()) + return; this._nodeUris = nodes; this._uriLookup = nodes.ToDictionary(k => k, v => new EndpointState()); diff --git a/src/Elasticsearch.Net/Connection/Transport.cs b/src/Elasticsearch.Net/Connection/Transport.cs index 2fbf7b7ffbd..680667001f9 100644 --- a/src/Elasticsearch.Net/Connection/Transport.cs +++ b/src/Elasticsearch.Net/Connection/Transport.cs @@ -13,27 +13,33 @@ public class Transport : ITransport private readonly IConnection _connection; private readonly IElasticsearchSerializer _serializer; private readonly IConnectionPool _connectionPool; - private DateTime? _lastSniff { get; set; } + private IDateTimeProvider _dateTimeProvider; + private DateTime? _lastSniff = null; public Transport( IConnectionConfigurationValues configurationValues, IConnection connection, - IElasticsearchSerializer serializer + IElasticsearchSerializer serializer, + IDateTimeProvider dateTimeProvider = null ) { + _dateTimeProvider = dateTimeProvider; this._connection = connection; this._configurationValues = configurationValues; this._serializer = serializer ?? new ElasticsearchDefaultSerializer(); this._connectionPool = this._configurationValues.ConnectionPool; + this._dateTimeProvider = dateTimeProvider ?? new DateTimeProvider(); if (this._configurationValues.SniffsOnStartup) this.Sniff(fromStartup: true); + else + this._lastSniff = this._dateTimeProvider.Now(); } private void Sniff(bool fromStartup = false) { this._connectionPool.Sniff(this._connection, fromStartup); - this._lastSniff = DateTime.UtcNow; + this._lastSniff = this._dateTimeProvider.Now(); } /// @@ -98,8 +104,9 @@ public ElasticsearchResponse DoRequest(string method, string path, object data = private void SniffIfInformationIsTooOld(int retried) { var sniffLifeSpan = this._configurationValues.SniffInformationLifeSpan; + var now = this._dateTimeProvider.Now(); if (retried == 0 && this._lastSniff.HasValue && - sniffLifeSpan.HasValue && sniffLifeSpan.Value > (DateTime.UtcNow - this._lastSniff.Value)) + sniffLifeSpan.HasValue && sniffLifeSpan.Value > (now - this._lastSniff.Value)) this.Sniff(); } From 6aecc347393b4cebacb06912304e853a60fe037c Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Mon, 10 Mar 2014 19:53:59 +0100 Subject: [PATCH 06/15] fixed namespaces --- .../ThriftConnection.cs | 1 + .../Connection/RetryTests.cs | 1 + .../Connection/SniffingConnectionPoolTests.cs | 2 + .../StaticConnectionPoolRetryTests.cs | 2 + .../Connection/ConnectionConfiguration.cs | 13 +- .../Connection/ConnectionPool.cs | 255 -- ...acer.cs => ElasticsearchResponseTracer.cs} | 4 +- .../Connection/HttpConnection.cs | 7 +- .../Connection/IConnectionConfiguration.cs | 2 +- .../IConnectionConfigurationValues.cs | 5 +- src/Elasticsearch.Net/Connection/Transport.cs | 5 +- .../ConnectionPool/EndpointState.cs | 13 + .../IConnectionPool.cs | 3 +- .../SingleNodeConnectionPool.cs | 3 +- .../ConnectionPool/SniffingConnectionPool.cs | 92 + .../ConnectionPool/StaticConnectionPool.cs | 89 + .../Domain/ElasticsearchResponse.cs | 1 + .../Elasticsearch.Net.csproj | 15 +- src/Elasticsearch.Net/ElasticsearchClient.cs | 1 + .../ConnectionException.cs | 0 .../IElasticsearchClient.Generated.cs | 3 +- .../Providers/DateTimeProvider.cs | 22 + .../Providers/IDateTimeProvider.cs | 11 + src/Elasticsearch.Net/Providers/Sniffer.cs | 53 + .../ElasticsearchDefaultSerializer.cs | 2 +- .../Serialization/IElasticsearchSerializer.cs | 2 +- .../Serialization/IStringifier.cs | 2 +- .../Serialization/SerializationFormatting.cs | 2 +- .../Serialization/SimpleJson.cs | 3511 ++++++++--------- .../Serialization/Stringifier.cs | 2 +- .../Domain/Connection/IConnectionSettings.cs | 1 + src/Nest/ExposedInternals/INestSerializer.cs | 1 + src/Nest/ExposedInternals/NestSerializer.cs | 1 + src/Nest/ExposedInternals/Stringifier.cs | 1 + .../Serializer/SsTextNestSerializer.cs | 1 + .../ElasticsearchJsonNetSerializer.cs | 1 + .../ElasticsearchServiceStackSerializer.cs | 1 + .../YamlTestsBase.cs | 1 + .../Connection/Failover/SniffTests.cs | 1 + 39 files changed, 2088 insertions(+), 2045 deletions(-) delete mode 100644 src/Elasticsearch.Net/Connection/ConnectionPool.cs rename src/Elasticsearch.Net/Connection/{ConnectionStatusTracer.cs => ElasticsearchResponseTracer.cs} (90%) create mode 100644 src/Elasticsearch.Net/ConnectionPool/EndpointState.cs rename src/Elasticsearch.Net/{Connection => ConnectionPool}/IConnectionPool.cs (93%) rename src/Elasticsearch.Net/{Connection => ConnectionPool}/SingleNodeConnectionPool.cs (89%) create mode 100644 src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs create mode 100644 src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs rename src/Elasticsearch.Net/{Connection => Exceptions}/ConnectionException.cs (100%) create mode 100644 src/Elasticsearch.Net/Providers/DateTimeProvider.cs create mode 100644 src/Elasticsearch.Net/Providers/IDateTimeProvider.cs create mode 100644 src/Elasticsearch.Net/Providers/Sniffer.cs diff --git a/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs b/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs index cd9b7dfb236..b9e469b8488 100644 --- a/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs +++ b/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs @@ -8,6 +8,7 @@ using System.Threading.Tasks; using Elasticsearch.Net.Connection.Thrift.Protocol; using Elasticsearch.Net.Connection.Thrift.Transport; +using Elasticsearch.Net.Providers; namespace Elasticsearch.Net.Connection.Thrift { diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs index 8ea2fe32b58..ad33949b462 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs @@ -7,6 +7,7 @@ using Autofac.Extras.FakeItEasy; using Elasticsearch.Net.Connection; using Elasticsearch.Net.Exceptions; +using Elasticsearch.Net.Providers; using FakeItEasy; using FluentAssertions; using NUnit.Framework; diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs index 6442862e194..7a8afd0f832 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs @@ -6,7 +6,9 @@ using Autofac; using Autofac.Extras.FakeItEasy; using Elasticsearch.Net.Connection; +using Elasticsearch.Net.ConnectionPool; using Elasticsearch.Net.Exceptions; +using Elasticsearch.Net.Providers; using FakeItEasy; using FakeItEasy.Configuration; using FluentAssertions; diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs index 1b4130e3267..57d6417994b 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs @@ -9,7 +9,9 @@ using Autofac.Core.Activators.Reflection; using Autofac.Extras.FakeItEasy; using Elasticsearch.Net.Connection; +using Elasticsearch.Net.ConnectionPool; using Elasticsearch.Net.Exceptions; +using Elasticsearch.Net.Providers; using Elasticsearch.Net.Tests.Unit.Stubs; using FakeItEasy; using FluentAssertions; diff --git a/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs b/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs index 4a6f8f83c42..80a2189a83c 100644 --- a/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs +++ b/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs @@ -1,12 +1,11 @@ -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System; +using System; +using System.Collections.Generic; using System.Collections.Specialized; -using System.Net; -using Elasticsearch.Net.Connection; +using System.Linq; +using Elasticsearch.Net.ConnectionPool; +using Elasticsearch.Net.Serialization; -namespace Elasticsearch.Net +namespace Elasticsearch.Net.Connection { public class ConnectionConfiguration : ConnectionConfiguration, diff --git a/src/Elasticsearch.Net/Connection/ConnectionPool.cs b/src/Elasticsearch.Net/Connection/ConnectionPool.cs deleted file mode 100644 index db63b3ec68b..00000000000 --- a/src/Elasticsearch.Net/Connection/ConnectionPool.cs +++ /dev/null @@ -1,255 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Security.Cryptography.X509Certificates; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading; -using Elasticsearch.Net.Exceptions; - -namespace Elasticsearch.Net.Connection -{ - public class EndpointState - { - public int _attempts = 0; - public DateTime date = new DateTime(); - } - - - public interface IDateTimeProvider - { - DateTime Now(); - DateTime DeadTime(Uri uri, int attempts); - DateTime AliveTime(Uri uri, int attempts); - } - - public class DateTimeProvider : IDateTimeProvider - { - public DateTime Now() - { - return DateTime.UtcNow; - } - - public DateTime DeadTime(Uri uri, int attempts) - { - return DateTime.UtcNow.AddSeconds(60); - } - - public DateTime AliveTime(Uri uri, int attempts) - { - return new DateTime(); - } - } - - public static class Sniffer - { - private static readonly Regex _uriParse = new Regex(@"inet\[\/([^:]+):(\d+)"); - private class NodeInfoResponse - { - public IDictionary nodes { get; set; } - } - - private class NodeState - { - public string http_address { get; set; } - public string https_address { get; set; } - public string thrift_address { get; set; } - } - - private static Uri Parse(string scheme, string inetString) - { - var match = _uriParse.Match(inetString); - var host = match.Groups[1].Value; - var port = match.Groups[2].Value; - return new Uri("{0}://{1}:{2}".F(scheme, host, port)); - - } - public static IList FromStream(Stream stream, IElasticsearchSerializer serializer) - { - using (var memoryStream = new MemoryStream()) - { - stream.CopyTo(memoryStream); - var response = serializer.Deserialize(memoryStream.ToArray()); - var l = new List(); - foreach(var kv in response.nodes.Values) - { - //TODO parse address since its in inet[] form - if (!kv.http_address.IsNullOrEmpty()) - l.Add(Parse("http", kv.http_address)); - else if (!kv.https_address.IsNullOrEmpty()) - l.Add(Parse("https",kv.https_address)); - else if (!kv.thrift_address.IsNullOrEmpty()) - l.Add(Parse("http", kv.thrift_address)); - } - return l; - } - } - } - - public class SniffingConnectionPool : StaticConnectionPool - { - private readonly ReaderWriterLockSlim _readerWriter = new ReaderWriterLockSlim(); - - private bool _seenStartup = false; - - public SniffingConnectionPool( - IEnumerable uris, - bool randomizeOnStartup = true, - IDateTimeProvider dateTimeProvider = null) - : base(uris, randomizeOnStartup, dateTimeProvider) - { - } - - - - public override void Sniff(IConnection connection, bool fromStartupHint = false) - { - if (fromStartupHint && _seenStartup) - return; - - try - { - var uri = this.GetNext(); - - this._readerWriter.EnterWriteLock(); - var nodes = connection.Sniff(uri, 50); - if (!nodes.HasAny()) - return; - - this._nodeUris = nodes; - this._uriLookup = nodes.ToDictionary(k => k, v => new EndpointState()); - if (fromStartupHint) - this._seenStartup = true; - - } - finally - { - this._readerWriter.ExitWriteLock(); - } - } - - public override Uri GetNext() - { - try - { - this._readerWriter.EnterReadLock(); - return base.GetNext(); - } - finally - { - this._readerWriter.ExitReadLock(); - } - } - - public override void MarkAlive(Uri uri) - { - try - { - this._readerWriter.EnterReadLock(); - base.MarkAlive(uri); - } - finally - { - this._readerWriter.ExitReadLock(); - - } - } - - public override void MarkDead(Uri uri) - { - try - { - this._readerWriter.EnterReadLock(); - base.MarkDead(uri); - } - finally - { - this._readerWriter.ExitReadLock(); - - } - } - - } - - - public class StaticConnectionPool : IConnectionPool - { - protected IDictionary _uriLookup; - protected IList _nodeUris; - - public int MaxRetries { get { return _nodeUris.Count - 1; } } - - private int _current = -1; - private readonly IDateTimeProvider _dateTimeProvider; - - public StaticConnectionPool( - IEnumerable uris, - bool randomizeOnStartup = true, - IDateTimeProvider dateTimeProvider = null) - { - _dateTimeProvider = dateTimeProvider ?? new DateTimeProvider(); - var rnd = new Random(); - uris.ThrowIfEmpty("uris"); - _nodeUris = uris.ToList(); - if (randomizeOnStartup) - _nodeUris = _nodeUris.OrderBy((item) => rnd.Next()).ToList(); - _uriLookup = _nodeUris.ToDictionary(k=>k, v=> new EndpointState()); - } - - public virtual Uri GetNext() - { - var initialOffset = Interlocked.Increment(ref _current); - var count = _nodeUris.Count; - int i = initialOffset % count, attempts = 0; - Uri uri = null; - do - { - uri = this._nodeUris[i]; - var state = this._uriLookup[uri]; - lock (state) - { - if (state.date <= _dateTimeProvider.Now()) - { - state._attempts = 0; - return uri; - } - } - Interlocked.Increment(ref state._attempts); - ++attempts; - i = (++initialOffset) % count; - } while (attempts < count); - - //could not find a suitable node retrying on node that has been dead longest. - return this._nodeUris[0]; //todo random; - } - - public virtual void MarkDead(Uri uri) - { - EndpointState state = null; - if (!this._uriLookup.TryGetValue(uri, out state)) - return; - lock(state) - { - state.date = this._dateTimeProvider.DeadTime(uri, state._attempts); - } - } - - public virtual void MarkAlive(Uri uri) - { - EndpointState state = null; - if (!this._uriLookup.TryGetValue(uri, out state)) - return; - lock (state) - { - state.date = this._dateTimeProvider.AliveTime(uri, state._attempts); - state._attempts = 0; - } - } - - public virtual void Sniff(IConnection connection, bool fromStartupHint = false) - { - //NOOP on static connection class - } - } -} diff --git a/src/Elasticsearch.Net/Connection/ConnectionStatusTracer.cs b/src/Elasticsearch.Net/Connection/ElasticsearchResponseTracer.cs similarity index 90% rename from src/Elasticsearch.Net/Connection/ConnectionStatusTracer.cs rename to src/Elasticsearch.Net/Connection/ElasticsearchResponseTracer.cs index 23d88721fc6..89af35c4d1b 100644 --- a/src/Elasticsearch.Net/Connection/ConnectionStatusTracer.cs +++ b/src/Elasticsearch.Net/Connection/ElasticsearchResponseTracer.cs @@ -6,14 +6,14 @@ namespace Elasticsearch.Net.Connection { - public class ConnectionStatusTracer : IDisposable + public class ElasticsearchResponseTracer : IDisposable { private readonly bool _enabled; private Stopwatch _stopwatch; public ElasticsearchResponse _result { get; set; } - public ConnectionStatusTracer(bool enabled) + public ElasticsearchResponseTracer(bool enabled) { this._enabled = enabled; if (enabled) diff --git a/src/Elasticsearch.Net/Connection/HttpConnection.cs b/src/Elasticsearch.Net/Connection/HttpConnection.cs index 90f3e4eec6c..ce2cc4bda11 100644 --- a/src/Elasticsearch.Net/Connection/HttpConnection.cs +++ b/src/Elasticsearch.Net/Connection/HttpConnection.cs @@ -6,6 +6,7 @@ using System.Text; using System.Threading; using System.Threading.Tasks; +using Elasticsearch.Net.Providers; using PUrify; namespace Elasticsearch.Net.Connection @@ -205,7 +206,7 @@ protected virtual ElasticsearchResponse DoSynchronousRequest(HttpWebRequest requ { var path = request.RequestUri.ToString(); var method = request.Method; - using (var tracer = new ConnectionStatusTracer(this._ConnectionSettings.TraceEnabled)) + using (var tracer = new ElasticsearchResponseTracer(this._ConnectionSettings.TraceEnabled)) { ElasticsearchResponse cs = null; if (data != null) @@ -251,7 +252,7 @@ protected virtual Task DoAsyncRequest(HttpWebRequest requ var method = request.Method; if (!this._ResourceLock.WaitOne(timeout)) { - using (var tracer = new ConnectionStatusTracer(this._ConnectionSettings.TraceEnabled)) + using (var tracer = new ElasticsearchResponseTracer(this._ConnectionSettings.TraceEnabled)) { var m = "Could not start the operation before the timeout of " + timeout + "ms completed while waiting for the semaphore"; @@ -280,7 +281,7 @@ private Task CreateIterateTask(HttpWebRequest request, by private IEnumerable _AsyncSteps(HttpWebRequest request, TaskCompletionSource tcs, byte[] data = null) { - using (var tracer = new ConnectionStatusTracer(this._ConnectionSettings.TraceEnabled)) + using (var tracer = new ElasticsearchResponseTracer(this._ConnectionSettings.TraceEnabled)) { var timeout = this._ConnectionSettings.Timeout; diff --git a/src/Elasticsearch.Net/Connection/IConnectionConfiguration.cs b/src/Elasticsearch.Net/Connection/IConnectionConfiguration.cs index f8ce6bfadfd..f6ecf5f2f5d 100644 --- a/src/Elasticsearch.Net/Connection/IConnectionConfiguration.cs +++ b/src/Elasticsearch.Net/Connection/IConnectionConfiguration.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Specialized; -namespace Elasticsearch.Net +namespace Elasticsearch.Net.Connection { public interface IConnectionConfiguration : IConnectionConfiguration diff --git a/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs b/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs index 4285dfcc9f7..1cd5e2faccf 100644 --- a/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs +++ b/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs @@ -1,8 +1,9 @@ using System; using System.Collections.Specialized; -using Elasticsearch.Net.Connection; +using Elasticsearch.Net.ConnectionPool; +using Elasticsearch.Net.Serialization; -namespace Elasticsearch.Net +namespace Elasticsearch.Net.Connection { public interface IConnectionConfigurationValues { diff --git a/src/Elasticsearch.Net/Connection/Transport.cs b/src/Elasticsearch.Net/Connection/Transport.cs index 680667001f9..9d74c0735e0 100644 --- a/src/Elasticsearch.Net/Connection/Transport.cs +++ b/src/Elasticsearch.Net/Connection/Transport.cs @@ -3,7 +3,10 @@ using System.Collections.Specialized; using System.Linq; using System.Threading.Tasks; +using Elasticsearch.Net.ConnectionPool; using Elasticsearch.Net.Exceptions; +using Elasticsearch.Net.Providers; +using Elasticsearch.Net.Serialization; namespace Elasticsearch.Net.Connection { @@ -106,7 +109,7 @@ private void SniffIfInformationIsTooOld(int retried) var sniffLifeSpan = this._configurationValues.SniffInformationLifeSpan; var now = this._dateTimeProvider.Now(); if (retried == 0 && this._lastSniff.HasValue && - sniffLifeSpan.HasValue && sniffLifeSpan.Value > (now - this._lastSniff.Value)) + sniffLifeSpan.HasValue && sniffLifeSpan.Value < (now - this._lastSniff.Value)) this.Sniff(); } diff --git a/src/Elasticsearch.Net/ConnectionPool/EndpointState.cs b/src/Elasticsearch.Net/ConnectionPool/EndpointState.cs new file mode 100644 index 00000000000..528fe5a52f7 --- /dev/null +++ b/src/Elasticsearch.Net/ConnectionPool/EndpointState.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Elasticsearch.Net.ConnectionPool +{ + public class EndpointState + { + public int _attempts = 0; + public DateTime date = new DateTime(); + } +} diff --git a/src/Elasticsearch.Net/Connection/IConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs similarity index 93% rename from src/Elasticsearch.Net/Connection/IConnectionPool.cs rename to src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs index 2885110dd14..68092a2b41d 100644 --- a/src/Elasticsearch.Net/Connection/IConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs @@ -1,6 +1,7 @@ using System; +using Elasticsearch.Net.Connection; -namespace Elasticsearch.Net.Connection +namespace Elasticsearch.Net.ConnectionPool { public interface IConnectionPool { diff --git a/src/Elasticsearch.Net/Connection/SingleNodeConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs similarity index 89% rename from src/Elasticsearch.Net/Connection/SingleNodeConnectionPool.cs rename to src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs index 59e750ba6b6..13b59518231 100644 --- a/src/Elasticsearch.Net/Connection/SingleNodeConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs @@ -1,6 +1,7 @@ using System; +using Elasticsearch.Net.Connection; -namespace Elasticsearch.Net.Connection +namespace Elasticsearch.Net.ConnectionPool { public class SingleNodeConnectionPool : IConnectionPool { diff --git a/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs new file mode 100644 index 00000000000..dc2a152466f --- /dev/null +++ b/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using Elasticsearch.Net.Connection; +using Elasticsearch.Net.Providers; + +namespace Elasticsearch.Net.ConnectionPool +{ + public class SniffingConnectionPool : StaticConnectionPool + { + private readonly ReaderWriterLockSlim _readerWriter = new ReaderWriterLockSlim(); + + private bool _seenStartup = false; + + public SniffingConnectionPool( + IEnumerable uris, + bool randomizeOnStartup = true, + IDateTimeProvider dateTimeProvider = null) + : base(uris, randomizeOnStartup, dateTimeProvider) + { + } + + public override void Sniff(IConnection connection, bool fromStartupHint = false) + { + if (fromStartupHint && _seenStartup) + return; + + try + { + var uri = this.GetNext(); + + this._readerWriter.EnterWriteLock(); + var nodes = connection.Sniff(uri, 50); + if (!nodes.HasAny()) + return; + + this._nodeUris = nodes; + this._uriLookup = nodes.ToDictionary(k => k, v => new EndpointState()); + if (fromStartupHint) + this._seenStartup = true; + + } + finally + { + this._readerWriter.ExitWriteLock(); + } + } + + public override Uri GetNext() + { + try + { + this._readerWriter.EnterReadLock(); + return base.GetNext(); + } + finally + { + this._readerWriter.ExitReadLock(); + } + } + + public override void MarkAlive(Uri uri) + { + try + { + this._readerWriter.EnterReadLock(); + base.MarkAlive(uri); + } + finally + { + this._readerWriter.ExitReadLock(); + + } + } + + public override void MarkDead(Uri uri) + { + try + { + this._readerWriter.EnterReadLock(); + base.MarkDead(uri); + } + finally + { + this._readerWriter.ExitReadLock(); + + } + } + + } +} \ No newline at end of file diff --git a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs new file mode 100644 index 00000000000..43d0636cfe0 --- /dev/null +++ b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using Elasticsearch.Net.Connection; +using Elasticsearch.Net.Providers; + +namespace Elasticsearch.Net.ConnectionPool +{ + public class StaticConnectionPool : IConnectionPool + { + protected IDictionary _uriLookup; + protected IList _nodeUris; + + public int MaxRetries { get { return _nodeUris.Count - 1; } } + + private int _current = -1; + private readonly IDateTimeProvider _dateTimeProvider; + + public StaticConnectionPool( + IEnumerable uris, + bool randomizeOnStartup = true, + IDateTimeProvider dateTimeProvider = null) + { + _dateTimeProvider = dateTimeProvider ?? new DateTimeProvider(); + var rnd = new Random(); + uris.ThrowIfEmpty("uris"); + _nodeUris = uris.ToList(); + if (randomizeOnStartup) + _nodeUris = _nodeUris.OrderBy((item) => rnd.Next()).ToList(); + _uriLookup = _nodeUris.ToDictionary(k=>k, v=> new EndpointState()); + } + + public virtual Uri GetNext() + { + var initialOffset = Interlocked.Increment(ref _current); + var count = _nodeUris.Count; + int i = initialOffset % count, attempts = 0; + Uri uri = null; + do + { + uri = this._nodeUris[i]; + var state = this._uriLookup[uri]; + lock (state) + { + if (state.date <= _dateTimeProvider.Now()) + { + state._attempts = 0; + return uri; + } + } + Interlocked.Increment(ref state._attempts); + ++attempts; + i = (++initialOffset) % count; + } while (attempts < count); + + //could not find a suitable node retrying on node that has been dead longest. + return this._nodeUris[0]; //todo random; + } + + public virtual void MarkDead(Uri uri) + { + EndpointState state = null; + if (!this._uriLookup.TryGetValue(uri, out state)) + return; + lock(state) + { + state.date = this._dateTimeProvider.DeadTime(uri, state._attempts); + } + } + + public virtual void MarkAlive(Uri uri) + { + EndpointState state = null; + if (!this._uriLookup.TryGetValue(uri, out state)) + return; + lock (state) + { + state.date = this._dateTimeProvider.AliveTime(uri, state._attempts); + state._attempts = 0; + } + } + + public virtual void Sniff(IConnection connection, bool fromStartupHint = false) + { + //NOOP on static connection class + } + } +} \ No newline at end of file diff --git a/src/Elasticsearch.Net/Domain/ElasticsearchResponse.cs b/src/Elasticsearch.Net/Domain/ElasticsearchResponse.cs index 6f954987704..7c4ad6acbdd 100644 --- a/src/Elasticsearch.Net/Domain/ElasticsearchResponse.cs +++ b/src/Elasticsearch.Net/Domain/ElasticsearchResponse.cs @@ -9,6 +9,7 @@ using System.Net; using Elasticsearch.Net; using Elasticsearch.Net.Connection; +using Elasticsearch.Net.Serialization; namespace Elasticsearch.Net diff --git a/src/Elasticsearch.Net/Elasticsearch.Net.csproj b/src/Elasticsearch.Net/Elasticsearch.Net.csproj index 8152d2d3a3f..3d5c152b32a 100644 --- a/src/Elasticsearch.Net/Elasticsearch.Net.csproj +++ b/src/Elasticsearch.Net/Elasticsearch.Net.csproj @@ -44,18 +44,23 @@ + - + - + - - + + + + + + - + diff --git a/src/Elasticsearch.Net/ElasticsearchClient.cs b/src/Elasticsearch.Net/ElasticsearchClient.cs index 825af42342c..4fa3ac59350 100644 --- a/src/Elasticsearch.Net/ElasticsearchClient.cs +++ b/src/Elasticsearch.Net/ElasticsearchClient.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Elasticsearch.Net.Connection; using Elasticsearch.Net.Exceptions; +using Elasticsearch.Net.Serialization; namespace Elasticsearch.Net { diff --git a/src/Elasticsearch.Net/Connection/ConnectionException.cs b/src/Elasticsearch.Net/Exceptions/ConnectionException.cs similarity index 100% rename from src/Elasticsearch.Net/Connection/ConnectionException.cs rename to src/Elasticsearch.Net/Exceptions/ConnectionException.cs diff --git a/src/Elasticsearch.Net/IElasticsearchClient.Generated.cs b/src/Elasticsearch.Net/IElasticsearchClient.Generated.cs index 93e0fca09a5..d432983d243 100644 --- a/src/Elasticsearch.Net/IElasticsearchClient.Generated.cs +++ b/src/Elasticsearch.Net/IElasticsearchClient.Generated.cs @@ -5,8 +5,9 @@ using System.Text; using System.Threading.Tasks; using Elasticsearch.Net.Connection; - ///Generated File Please Do Not Edit Manually +using Elasticsearch.Net.Serialization; + namespace Elasticsearch.Net { /// diff --git a/src/Elasticsearch.Net/Providers/DateTimeProvider.cs b/src/Elasticsearch.Net/Providers/DateTimeProvider.cs new file mode 100644 index 00000000000..0716ce2a7d7 --- /dev/null +++ b/src/Elasticsearch.Net/Providers/DateTimeProvider.cs @@ -0,0 +1,22 @@ +using System; + +namespace Elasticsearch.Net.Providers +{ + public class DateTimeProvider : IDateTimeProvider + { + public DateTime Now() + { + return DateTime.UtcNow; + } + + public DateTime DeadTime(Uri uri, int attempts) + { + return DateTime.UtcNow.AddSeconds(60); + } + + public DateTime AliveTime(Uri uri, int attempts) + { + return new DateTime(); + } + } +} \ No newline at end of file diff --git a/src/Elasticsearch.Net/Providers/IDateTimeProvider.cs b/src/Elasticsearch.Net/Providers/IDateTimeProvider.cs new file mode 100644 index 00000000000..13581522ef7 --- /dev/null +++ b/src/Elasticsearch.Net/Providers/IDateTimeProvider.cs @@ -0,0 +1,11 @@ +using System; + +namespace Elasticsearch.Net.Providers +{ + public interface IDateTimeProvider + { + DateTime Now(); + DateTime DeadTime(Uri uri, int attempts); + DateTime AliveTime(Uri uri, int attempts); + } +} \ No newline at end of file diff --git a/src/Elasticsearch.Net/Providers/Sniffer.cs b/src/Elasticsearch.Net/Providers/Sniffer.cs new file mode 100644 index 00000000000..76d7f0d6abb --- /dev/null +++ b/src/Elasticsearch.Net/Providers/Sniffer.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text.RegularExpressions; +using Elasticsearch.Net.Serialization; + +namespace Elasticsearch.Net.Providers +{ + public static class Sniffer + { + private static readonly Regex _uriParse = new Regex(@"inet\[\/([^:]+):(\d+)"); + private class NodeInfoResponse + { + public IDictionary nodes { get; set; } + } + + private class NodeState + { + public string http_address { get; set; } + public string https_address { get; set; } + public string thrift_address { get; set; } + } + + private static Uri Parse(string scheme, string inetString) + { + var match = _uriParse.Match(inetString); + var host = match.Groups[1].Value; + var port = match.Groups[2].Value; + return new Uri("{0}://{1}:{2}".F(scheme, host, port)); + + } + public static IList FromStream(Stream stream, IElasticsearchSerializer serializer) + { + using (var memoryStream = new MemoryStream()) + { + stream.CopyTo(memoryStream); + var response = serializer.Deserialize(memoryStream.ToArray()); + var l = new List(); + foreach(var kv in response.nodes.Values) + { + //TODO parse address since its in inet[] form + if (!kv.http_address.IsNullOrEmpty()) + l.Add(Parse("http", kv.http_address)); + else if (!kv.https_address.IsNullOrEmpty()) + l.Add(Parse("https",kv.https_address)); + else if (!kv.thrift_address.IsNullOrEmpty()) + l.Add(Parse("http", kv.thrift_address)); + } + return l; + } + } + } +} \ No newline at end of file diff --git a/src/Elasticsearch.Net/Serialization/ElasticsearchDefaultSerializer.cs b/src/Elasticsearch.Net/Serialization/ElasticsearchDefaultSerializer.cs index 3612f5c9de1..42fcabb5be0 100644 --- a/src/Elasticsearch.Net/Serialization/ElasticsearchDefaultSerializer.cs +++ b/src/Elasticsearch.Net/Serialization/ElasticsearchDefaultSerializer.cs @@ -1,6 +1,6 @@ using System.Linq; -namespace Elasticsearch.Net +namespace Elasticsearch.Net.Serialization { public class ElasticsearchDefaultSerializer : IElasticsearchSerializer { diff --git a/src/Elasticsearch.Net/Serialization/IElasticsearchSerializer.cs b/src/Elasticsearch.Net/Serialization/IElasticsearchSerializer.cs index 7380ece0df6..60db8eece8a 100644 --- a/src/Elasticsearch.Net/Serialization/IElasticsearchSerializer.cs +++ b/src/Elasticsearch.Net/Serialization/IElasticsearchSerializer.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Elasticsearch.Net +namespace Elasticsearch.Net.Serialization { public interface IElasticsearchSerializer { diff --git a/src/Elasticsearch.Net/Serialization/IStringifier.cs b/src/Elasticsearch.Net/Serialization/IStringifier.cs index 94e1b7cfbea..64cec15e599 100644 --- a/src/Elasticsearch.Net/Serialization/IStringifier.cs +++ b/src/Elasticsearch.Net/Serialization/IStringifier.cs @@ -3,7 +3,7 @@ using System.Linq; using System.Text; -namespace Elasticsearch.Net +namespace Elasticsearch.Net.Serialization { public interface IStringifier { diff --git a/src/Elasticsearch.Net/Serialization/SerializationFormatting.cs b/src/Elasticsearch.Net/Serialization/SerializationFormatting.cs index c4140e7ba91..d6709e76153 100644 --- a/src/Elasticsearch.Net/Serialization/SerializationFormatting.cs +++ b/src/Elasticsearch.Net/Serialization/SerializationFormatting.cs @@ -1,4 +1,4 @@ -namespace Elasticsearch.Net +namespace Elasticsearch.Net.Serialization { public enum SerializationFormatting { diff --git a/src/Elasticsearch.Net/Serialization/SimpleJson.cs b/src/Elasticsearch.Net/Serialization/SimpleJson.cs index b576432eb78..4343ccada8f 100644 --- a/src/Elasticsearch.Net/Serialization/SimpleJson.cs +++ b/src/Elasticsearch.Net/Serialization/SimpleJson.cs @@ -49,1127 +49,1118 @@ #if NETFX_CORE #define SIMPLE_JSON_TYPEINFO #endif - using System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; -#if !SIMPLE_JSON_NO_LINQ_EXPRESSION -using System.Linq.Expressions; -#endif using System.ComponentModel; using System.Diagnostics.CodeAnalysis; -#if SIMPLE_JSON_DYNAMIC using System.Dynamic; -#endif using System.Globalization; +using System.Linq.Expressions; using System.Reflection; using System.Runtime.Serialization; using System.Text; -using Elasticsearch.Net.Reflection; +namespace Elasticsearch.Net.Serialization +{ // ReSharper disable LoopCanBeConvertedToQuery // ReSharper disable RedundantExplicitArrayCreation // ReSharper disable SuggestUseVarKeywordEvident -namespace Elasticsearch.Net -{ - /// - /// Represents the json array. - /// - [GeneratedCode("simple-json", "1.0.0")] - [EditorBrowsable(EditorBrowsableState.Never)] - [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] + /// + /// Represents the json array. + /// + [GeneratedCode("simple-json", "1.0.0")] + [EditorBrowsable(EditorBrowsableState.Never)] + [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] #if SIMPLE_JSON_OBJARRAYINTERNAL - internal + internal #else public #endif - class JsonArray : List - { - /// - /// Initializes a new instance of the class. - /// - public JsonArray() { } - - /// - /// Initializes a new instance of the class. - /// - /// The capacity of the json array. - public JsonArray(int capacity) : base(capacity) { } - - /// - /// The json representation of the array. - /// - /// The json representation of the array. - public override string ToString() - { - return SimpleJson.SerializeObject(this) ?? string.Empty; - } - } - - /// - /// Represents the json object. - /// - [GeneratedCode("simple-json", "1.0.0")] - [EditorBrowsable(EditorBrowsableState.Never)] - [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] + class JsonArray : List + { + /// + /// Initializes a new instance of the class. + /// + public JsonArray() { } + + /// + /// Initializes a new instance of the class. + /// + /// The capacity of the json array. + public JsonArray(int capacity) : base(capacity) { } + + /// + /// The json representation of the array. + /// + /// The json representation of the array. + public override string ToString() + { + return SimpleJson.SerializeObject(this) ?? string.Empty; + } + } + + /// + /// Represents the json object. + /// + [GeneratedCode("simple-json", "1.0.0")] + [EditorBrowsable(EditorBrowsableState.Never)] + [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] #if SIMPLE_JSON_OBJARRAYINTERNAL - internal + internal #else public #endif - class JsonObject : + class JsonObject : #if SIMPLE_JSON_DYNAMIC - DynamicObject, + DynamicObject, #endif - IDictionary - { - /// - /// The internal member dictionary. - /// - private readonly Dictionary _members; - - /// - /// Initializes a new instance of . - /// - public JsonObject() - { - _members = new Dictionary(); - } - - /// - /// Initializes a new instance of . - /// - /// The implementation to use when comparing keys, or null to use the default for the type of the key. - public JsonObject(IEqualityComparer comparer) - { - _members = new Dictionary(comparer); - } - - /// - /// Gets the at the specified index. - /// - /// - public object this[int index] - { - get { return GetAtIndex(_members, index); } - } - - internal static object GetAtIndex(IDictionary obj, int index) - { - if (obj == null) - throw new ArgumentNullException("obj"); - if (index >= obj.Count) - throw new ArgumentOutOfRangeException("index"); - int i = 0; - foreach (KeyValuePair o in obj) - if (i++ == index) return o.Value; - return null; - } - - /// - /// Adds the specified key. - /// - /// The key. - /// The value. - public void Add(string key, object value) - { - _members.Add(key, value); - } - - /// - /// Determines whether the specified key contains key. - /// - /// The key. - /// - /// true if the specified key contains key; otherwise, false. - /// - public bool ContainsKey(string key) - { - return _members.ContainsKey(key); - } - - /// - /// Gets the keys. - /// - /// The keys. - public ICollection Keys - { - get { return _members.Keys; } - } - - /// - /// Removes the specified key. - /// - /// The key. - /// - public bool Remove(string key) - { - return _members.Remove(key); - } - - /// - /// Tries the get value. - /// - /// The key. - /// The value. - /// - public bool TryGetValue(string key, out object value) - { - return _members.TryGetValue(key, out value); - } - - /// - /// Gets the values. - /// - /// The values. - public ICollection Values - { - get { return _members.Values; } - } - - /// - /// Gets or sets the with the specified key. - /// - /// - public object this[string key] - { - get { return _members[key]; } - set { _members[key] = value; } - } - - /// - /// Adds the specified item. - /// - /// The item. - public void Add(KeyValuePair item) - { - _members.Add(item.Key, item.Value); - } - - /// - /// Clears this instance. - /// - public void Clear() - { - _members.Clear(); - } - - /// - /// Determines whether [contains] [the specified item]. - /// - /// The item. - /// - /// true if [contains] [the specified item]; otherwise, false. - /// - public bool Contains(KeyValuePair item) - { - return _members.ContainsKey(item.Key) && _members[item.Key] == item.Value; - } - - /// - /// Copies to. - /// - /// The array. - /// Index of the array. - public void CopyTo(KeyValuePair[] array, int arrayIndex) - { - if (array == null) throw new ArgumentNullException("array"); - int num = Count; - foreach (KeyValuePair kvp in this) - { - array[arrayIndex++] = kvp; - if (--num <= 0) - return; - } - } - - /// - /// Gets the count. - /// - /// The count. - public int Count - { - get { return _members.Count; } - } - - /// - /// Gets a value indicating whether this instance is read only. - /// - /// - /// true if this instance is read only; otherwise, false. - /// - public bool IsReadOnly - { - get { return false; } - } - - /// - /// Removes the specified item. - /// - /// The item. - /// - public bool Remove(KeyValuePair item) - { - return _members.Remove(item.Key); - } - - /// - /// Gets the enumerator. - /// - /// - public IEnumerator> GetEnumerator() - { - return _members.GetEnumerator(); - } - - /// - /// Returns an enumerator that iterates through a collection. - /// - /// - /// An object that can be used to iterate through the collection. - /// - IEnumerator IEnumerable.GetEnumerator() - { - return _members.GetEnumerator(); - } - - /// - /// Returns a json that represents the current . - /// - /// - /// A json that represents the current . - /// - public override string ToString() - { - return SimpleJson.SerializeObject(this); - } + IDictionary + { + /// + /// The internal member dictionary. + /// + private readonly Dictionary _members; + + /// + /// Initializes a new instance of . + /// + public JsonObject() + { + _members = new Dictionary(); + } + + /// + /// Initializes a new instance of . + /// + /// The implementation to use when comparing keys, or null to use the default for the type of the key. + public JsonObject(IEqualityComparer comparer) + { + _members = new Dictionary(comparer); + } + + /// + /// Gets the at the specified index. + /// + /// + public object this[int index] + { + get { return GetAtIndex(_members, index); } + } + + internal static object GetAtIndex(IDictionary obj, int index) + { + if (obj == null) + throw new ArgumentNullException("obj"); + if (index >= obj.Count) + throw new ArgumentOutOfRangeException("index"); + int i = 0; + foreach (KeyValuePair o in obj) + if (i++ == index) return o.Value; + return null; + } + + /// + /// Adds the specified key. + /// + /// The key. + /// The value. + public void Add(string key, object value) + { + _members.Add(key, value); + } + + /// + /// Determines whether the specified key contains key. + /// + /// The key. + /// + /// true if the specified key contains key; otherwise, false. + /// + public bool ContainsKey(string key) + { + return _members.ContainsKey(key); + } + + /// + /// Gets the keys. + /// + /// The keys. + public ICollection Keys + { + get { return _members.Keys; } + } + + /// + /// Removes the specified key. + /// + /// The key. + /// + public bool Remove(string key) + { + return _members.Remove(key); + } + + /// + /// Tries the get value. + /// + /// The key. + /// The value. + /// + public bool TryGetValue(string key, out object value) + { + return _members.TryGetValue(key, out value); + } + + /// + /// Gets the values. + /// + /// The values. + public ICollection Values + { + get { return _members.Values; } + } + + /// + /// Gets or sets the with the specified key. + /// + /// + public object this[string key] + { + get { return _members[key]; } + set { _members[key] = value; } + } + + /// + /// Adds the specified item. + /// + /// The item. + public void Add(KeyValuePair item) + { + _members.Add(item.Key, item.Value); + } + + /// + /// Clears this instance. + /// + public void Clear() + { + _members.Clear(); + } + + /// + /// Determines whether [contains] [the specified item]. + /// + /// The item. + /// + /// true if [contains] [the specified item]; otherwise, false. + /// + public bool Contains(KeyValuePair item) + { + return _members.ContainsKey(item.Key) && _members[item.Key] == item.Value; + } + + /// + /// Copies to. + /// + /// The array. + /// Index of the array. + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + if (array == null) throw new ArgumentNullException("array"); + int num = Count; + foreach (KeyValuePair kvp in this) + { + array[arrayIndex++] = kvp; + if (--num <= 0) + return; + } + } + + /// + /// Gets the count. + /// + /// The count. + public int Count + { + get { return _members.Count; } + } + + /// + /// Gets a value indicating whether this instance is read only. + /// + /// + /// true if this instance is read only; otherwise, false. + /// + public bool IsReadOnly + { + get { return false; } + } + + /// + /// Removes the specified item. + /// + /// The item. + /// + public bool Remove(KeyValuePair item) + { + return _members.Remove(item.Key); + } + + /// + /// Gets the enumerator. + /// + /// + public IEnumerator> GetEnumerator() + { + return _members.GetEnumerator(); + } + + /// + /// Returns an enumerator that iterates through a collection. + /// + /// + /// An object that can be used to iterate through the collection. + /// + IEnumerator IEnumerable.GetEnumerator() + { + return _members.GetEnumerator(); + } + + /// + /// Returns a json that represents the current . + /// + /// + /// A json that represents the current . + /// + public override string ToString() + { + return SimpleJson.SerializeObject(this); + } #if SIMPLE_JSON_DYNAMIC - /// - /// Provides implementation for type conversion operations. Classes derived from the class can override this method to specify dynamic behavior for operations that convert an object from one type to another. - /// - /// Provides information about the conversion operation. The binder.Type property provides the type to which the object must be converted. For example, for the statement (String)sampleObject in C# (CType(sampleObject, Type) in Visual Basic), where sampleObject is an instance of the class derived from the class, binder.Type returns the type. The binder.Explicit property provides information about the kind of conversion that occurs. It returns true for explicit conversion and false for implicit conversion. - /// The result of the type conversion operation. - /// - /// Alwasy returns true. - /// - public override bool TryConvert(ConvertBinder binder, out object result) - { - // - if (binder == null) - throw new ArgumentNullException("binder"); - // - Type targetType = binder.Type; - - if ((targetType == typeof(IEnumerable)) || - (targetType == typeof(IEnumerable>)) || - (targetType == typeof(IDictionary)) || - (targetType == typeof(IDictionary))) - { - result = this; - return true; - } - - return base.TryConvert(binder, out result); - } - - /// - /// Provides the implementation for operations that delete an object member. This method is not intended for use in C# or Visual Basic. - /// - /// Provides information about the deletion. - /// - /// Alwasy returns true. - /// - public override bool TryDeleteMember(DeleteMemberBinder binder) - { - // - if (binder == null) - throw new ArgumentNullException("binder"); - // - return _members.Remove(binder.Name); - } - - /// - /// Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. - /// - /// Provides information about the operation. - /// The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, is equal to 3. - /// The result of the index operation. - /// - /// Alwasy returns true. - /// - public override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result) - { - if (indexes == null) throw new ArgumentNullException("indexes"); - if (indexes.Length == 1) - { - result = ((IDictionary)this)[(string)indexes[0]]; - return true; - } - result = null; - return true; - } - - /// - /// Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. - /// - /// Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. - /// The result of the get operation. For example, if the method is called for a property, you can assign the property value to . - /// - /// Alwasy returns true. - /// - public override bool TryGetMember(GetMemberBinder binder, out object result) - { - object value; - if (_members.TryGetValue(binder.Name, out value)) - { - result = value; - return true; - } - result = null; - return true; - } - - /// - /// Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index. - /// - /// Provides information about the operation. - /// The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 3. - /// The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10. - /// - /// true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. - /// - public override bool TrySetIndex(SetIndexBinder binder, object[] indexes, object value) - { - if (indexes == null) throw new ArgumentNullException("indexes"); - if (indexes.Length == 1) - { - ((IDictionary)this)[(string)indexes[0]] = value; - return true; - } - return base.TrySetIndex(binder, indexes, value); - } - - /// - /// Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. - /// - /// Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. - /// The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". - /// - /// true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) - /// - public override bool TrySetMember(SetMemberBinder binder, object value) - { - // - if (binder == null) - throw new ArgumentNullException("binder"); - // - _members[binder.Name] = value; - return true; - } - - /// - /// Returns the enumeration of all dynamic member names. - /// - /// - /// A sequence that contains dynamic member names. - /// - public override IEnumerable GetDynamicMemberNames() - { - foreach (var key in Keys) - yield return key; - } + /// + /// Provides implementation for type conversion operations. Classes derived from the class can override this method to specify dynamic behavior for operations that convert an object from one type to another. + /// + /// Provides information about the conversion operation. The binder.Type property provides the type to which the object must be converted. For example, for the statement (String)sampleObject in C# (CType(sampleObject, Type) in Visual Basic), where sampleObject is an instance of the class derived from the class, binder.Type returns the type. The binder.Explicit property provides information about the kind of conversion that occurs. It returns true for explicit conversion and false for implicit conversion. + /// The result of the type conversion operation. + /// + /// Alwasy returns true. + /// + public override bool TryConvert(ConvertBinder binder, out object result) + { + // + if (binder == null) + throw new ArgumentNullException("binder"); + // + Type targetType = binder.Type; + + if ((targetType == typeof(IEnumerable)) || + (targetType == typeof(IEnumerable>)) || + (targetType == typeof(IDictionary)) || + (targetType == typeof(IDictionary))) + { + result = this; + return true; + } + + return base.TryConvert(binder, out result); + } + + /// + /// Provides the implementation for operations that delete an object member. This method is not intended for use in C# or Visual Basic. + /// + /// Provides information about the deletion. + /// + /// Alwasy returns true. + /// + public override bool TryDeleteMember(DeleteMemberBinder binder) + { + // + if (binder == null) + throw new ArgumentNullException("binder"); + // + return _members.Remove(binder.Name); + } + + /// + /// Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. + /// + /// Provides information about the operation. + /// The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, is equal to 3. + /// The result of the index operation. + /// + /// Alwasy returns true. + /// + public override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result) + { + if (indexes == null) throw new ArgumentNullException("indexes"); + if (indexes.Length == 1) + { + result = ((IDictionary)this)[(string)indexes[0]]; + return true; + } + result = null; + return true; + } + + /// + /// Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + /// + /// Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + /// The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + /// + /// Alwasy returns true. + /// + public override bool TryGetMember(GetMemberBinder binder, out object result) + { + object value; + if (_members.TryGetValue(binder.Name, out value)) + { + result = value; + return true; + } + result = null; + return true; + } + + /// + /// Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index. + /// + /// Provides information about the operation. + /// The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 3. + /// The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10. + /// + /// true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. + /// + public override bool TrySetIndex(SetIndexBinder binder, object[] indexes, object value) + { + if (indexes == null) throw new ArgumentNullException("indexes"); + if (indexes.Length == 1) + { + ((IDictionary)this)[(string)indexes[0]] = value; + return true; + } + return base.TrySetIndex(binder, indexes, value); + } + + /// + /// Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + /// + /// Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + /// The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + /// + /// true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + /// + public override bool TrySetMember(SetMemberBinder binder, object value) + { + // + if (binder == null) + throw new ArgumentNullException("binder"); + // + _members[binder.Name] = value; + return true; + } + + /// + /// Returns the enumeration of all dynamic member names. + /// + /// + /// A sequence that contains dynamic member names. + /// + public override IEnumerable GetDynamicMemberNames() + { + foreach (var key in Keys) + yield return key; + } #endif - } -} - -namespace Elasticsearch.Net -{ - /// - /// This class encodes and decodes JSON strings. - /// Spec. details, see http://www.json.org/ - /// - /// JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). - /// All numbers are parsed to doubles. - /// - [GeneratedCode("simple-json", "1.0.0")] + } + + /// + /// This class encodes and decodes JSON strings. + /// Spec. details, see http://www.json.org/ + /// + /// JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + /// All numbers are parsed to doubles. + /// + [GeneratedCode("simple-json", "1.0.0")] #if SIMPLE_JSON_INTERNAL - internal + internal #else public #endif - static class SimpleJson - { - private const int TOKEN_NONE = 0; - private const int TOKEN_CURLY_OPEN = 1; - private const int TOKEN_CURLY_CLOSE = 2; - private const int TOKEN_SQUARED_OPEN = 3; - private const int TOKEN_SQUARED_CLOSE = 4; - private const int TOKEN_COLON = 5; - private const int TOKEN_COMMA = 6; - private const int TOKEN_STRING = 7; - private const int TOKEN_NUMBER = 8; - private const int TOKEN_TRUE = 9; - private const int TOKEN_FALSE = 10; - private const int TOKEN_NULL = 11; - private const int BUILDER_CAPACITY = 2000; - - /// - /// Parses the string json into a value - /// - /// A JSON string. - /// An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false - public static object DeserializeObject(string json) - { - object obj; - if (TryDeserializeObject(json, out obj)) - return obj; - throw new SerializationException("Invalid JSON string"); - } - - /// - /// Try parsing the json string into a value. - /// - /// - /// A JSON string. - /// - /// - /// The object. - /// - /// - /// Returns true if successfull otherwise false. - /// - [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification="Need to support .NET 2")] - public static bool TryDeserializeObject(string json, out object obj) - { - bool success = true; - if (json != null) - { - char[] charArray = json.ToCharArray(); - int index = 0; - obj = ParseValue(charArray, ref index, ref success); - } - else - obj = null; - - return success; - } - - public static object DeserializeObject(string json, Type type, IJsonSerializerStrategy jsonSerializerStrategy) - { - object jsonObject = DeserializeObject(json); - return type == null || jsonObject != null && ReflectionUtils.IsAssignableFrom(jsonObject.GetType(), type) - ? jsonObject - : (jsonSerializerStrategy ?? CurrentJsonSerializerStrategy).DeserializeObject(jsonObject, type); - } - - public static object DeserializeObject(string json, Type type) - { - return DeserializeObject(json, type, null); - } - - public static T DeserializeObject(string json, IJsonSerializerStrategy jsonSerializerStrategy) - { - return (T)DeserializeObject(json, typeof(T), jsonSerializerStrategy); - } - - public static T DeserializeObject(string json) - { - return (T)DeserializeObject(json, typeof(T), null); - } - - /// - /// Converts a IDictionary<string,object> / IList<object> object into a JSON string - /// - /// A IDictionary<string,object> / IList<object> - /// Serializer strategy to use - /// A JSON encoded string, or null if object 'json' is not serializable - public static string SerializeObject(object json, IJsonSerializerStrategy jsonSerializerStrategy) - { - StringBuilder builder = new StringBuilder(BUILDER_CAPACITY); - bool success = SerializeValue(jsonSerializerStrategy, json, builder); - return (success ? builder.ToString() : null); - } - - public static string SerializeObject(object json) - { - return SerializeObject(json, CurrentJsonSerializerStrategy); - } - - public static string EscapeToJavascriptString(string jsonString) - { - if (string.IsNullOrEmpty(jsonString)) - return jsonString; - - StringBuilder sb = new StringBuilder(); - char c; - - for (int i = 0; i < jsonString.Length; ) - { - c = jsonString[i++]; - - if (c == '\\') - { - int remainingLength = jsonString.Length - i; - if (remainingLength >= 2) - { - char lookahead = jsonString[i]; - if (lookahead == '\\') - { - sb.Append('\\'); - ++i; - } - else if (lookahead == '"') - { - sb.Append("\""); - ++i; - } - else if (lookahead == 't') - { - sb.Append('\t'); - ++i; - } - else if (lookahead == 'b') - { - sb.Append('\b'); - ++i; - } - else if (lookahead == 'n') - { - sb.Append('\n'); - ++i; - } - else if (lookahead == 'r') - { - sb.Append('\r'); - ++i; - } - } - } - else - { - sb.Append(c); - } - } - return sb.ToString(); - } - - static IDictionary ParseObject(char[] json, ref int index, ref bool success) - { - IDictionary table = new JsonObject(); - int token; - - // { - NextToken(json, ref index); - - bool done = false; - while (!done) - { - token = LookAhead(json, index); - if (token == TOKEN_NONE) - { - success = false; - return null; - } - else if (token == TOKEN_COMMA) - NextToken(json, ref index); - else if (token == TOKEN_CURLY_CLOSE) - { - NextToken(json, ref index); - return table; - } - else - { - // name - string name = ParseString(json, ref index, ref success); - if (!success) - { - success = false; - return null; - } - // : - token = NextToken(json, ref index); - if (token != TOKEN_COLON) - { - success = false; - return null; - } - // value - object value = ParseValue(json, ref index, ref success); - if (!success) - { - success = false; - return null; - } - table[name] = value; - } - } - return table; - } - - static JsonArray ParseArray(char[] json, ref int index, ref bool success) - { - JsonArray array = new JsonArray(); - - // [ - NextToken(json, ref index); - - bool done = false; - while (!done) - { - int token = LookAhead(json, index); - if (token == TOKEN_NONE) - { - success = false; - return null; - } - else if (token == TOKEN_COMMA) - NextToken(json, ref index); - else if (token == TOKEN_SQUARED_CLOSE) - { - NextToken(json, ref index); - break; - } - else - { - object value = ParseValue(json, ref index, ref success); - if (!success) - return null; - array.Add(value); - } - } - return array; - } - - static object ParseValue(char[] json, ref int index, ref bool success) - { - switch (LookAhead(json, index)) - { - case TOKEN_STRING: - return ParseString(json, ref index, ref success); - case TOKEN_NUMBER: - return ParseNumber(json, ref index, ref success); - case TOKEN_CURLY_OPEN: - return ParseObject(json, ref index, ref success); - case TOKEN_SQUARED_OPEN: - return ParseArray(json, ref index, ref success); - case TOKEN_TRUE: - NextToken(json, ref index); - return true; - case TOKEN_FALSE: - NextToken(json, ref index); - return false; - case TOKEN_NULL: - NextToken(json, ref index); - return null; - case TOKEN_NONE: - break; - } - success = false; - return null; - } - - static string ParseString(char[] json, ref int index, ref bool success) - { - StringBuilder s = new StringBuilder(BUILDER_CAPACITY); - char c; - - EatWhitespace(json, ref index); - - // " - c = json[index++]; - bool complete = false; - while (!complete) - { - if (index == json.Length) - break; - - c = json[index++]; - if (c == '"') - { - complete = true; - break; - } - else if (c == '\\') - { - if (index == json.Length) - break; - c = json[index++]; - if (c == '"') - s.Append('"'); - else if (c == '\\') - s.Append('\\'); - else if (c == '/') - s.Append('/'); - else if (c == 'b') - s.Append('\b'); - else if (c == 'f') - s.Append('\f'); - else if (c == 'n') - s.Append('\n'); - else if (c == 'r') - s.Append('\r'); - else if (c == 't') - s.Append('\t'); - else if (c == 'u') - { - int remainingLength = json.Length - index; - if (remainingLength >= 4) - { - // parse the 32 bit hex into an integer codepoint - uint codePoint; - if (!(success = UInt32.TryParse(new string(json, index, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out codePoint))) - return ""; - - // convert the integer codepoint to a unicode char and add to string - if (0xD800 <= codePoint && codePoint <= 0xDBFF) // if high surrogate - { - index += 4; // skip 4 chars - remainingLength = json.Length - index; - if (remainingLength >= 6) - { - uint lowCodePoint; - if (new string(json, index, 2) == "\\u" && UInt32.TryParse(new string(json, index + 2, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out lowCodePoint)) - { - if (0xDC00 <= lowCodePoint && lowCodePoint <= 0xDFFF) // if low surrogate - { - s.Append((char)codePoint); - s.Append((char)lowCodePoint); - index += 6; // skip 6 chars - continue; - } - } - } - success = false; // invalid surrogate pair - return ""; - } - s.Append(ConvertFromUtf32((int)codePoint)); - // skip 4 chars - index += 4; - } - else - break; - } - } - else - s.Append(c); - } - if (!complete) - { - success = false; - return null; - } - return s.ToString(); - } - - private static string ConvertFromUtf32(int utf32) - { - // http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System/System/Char.cs.htm - if (utf32 < 0 || utf32 > 0x10FFFF) - throw new ArgumentOutOfRangeException("utf32", "The argument must be from 0 to 0x10FFFF."); - if (0xD800 <= utf32 && utf32 <= 0xDFFF) - throw new ArgumentOutOfRangeException("utf32", "The argument must not be in surrogate pair range."); - if (utf32 < 0x10000) - return new string((char)utf32, 1); - utf32 -= 0x10000; - return new string(new char[] { (char)((utf32 >> 10) + 0xD800), (char)(utf32 % 0x0400 + 0xDC00) }); - } - - static object ParseNumber(char[] json, ref int index, ref bool success) - { - EatWhitespace(json, ref index); - int lastIndex = GetLastIndexOfNumber(json, index); - int charLength = (lastIndex - index) + 1; - object returnNumber; - string str = new string(json, index, charLength); - if (str.IndexOf(".", StringComparison.OrdinalIgnoreCase) != -1 || str.IndexOf("e", StringComparison.OrdinalIgnoreCase) != -1) - { - double number; - success = double.TryParse(new string(json, index, charLength), NumberStyles.Any, CultureInfo.InvariantCulture, out number); - returnNumber = number; - } - else - { - long number; - success = long.TryParse(new string(json, index, charLength), NumberStyles.Any, CultureInfo.InvariantCulture, out number); - returnNumber = number; - } - index = lastIndex + 1; - return returnNumber; - } - - static int GetLastIndexOfNumber(char[] json, int index) - { - int lastIndex; - for (lastIndex = index; lastIndex < json.Length; lastIndex++) - if ("0123456789+-.eE".IndexOf(json[lastIndex]) == -1) break; - return lastIndex - 1; - } - - static void EatWhitespace(char[] json, ref int index) - { - for (; index < json.Length; index++) - if (" \t\n\r\b\f".IndexOf(json[index]) == -1) break; - } - - static int LookAhead(char[] json, int index) - { - int saveIndex = index; - return NextToken(json, ref saveIndex); - } - - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - static int NextToken(char[] json, ref int index) - { - EatWhitespace(json, ref index); - if (index == json.Length) - return TOKEN_NONE; - char c = json[index]; - index++; - switch (c) - { - case '{': - return TOKEN_CURLY_OPEN; - case '}': - return TOKEN_CURLY_CLOSE; - case '[': - return TOKEN_SQUARED_OPEN; - case ']': - return TOKEN_SQUARED_CLOSE; - case ',': - return TOKEN_COMMA; - case '"': - return TOKEN_STRING; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case '-': - return TOKEN_NUMBER; - case ':': - return TOKEN_COLON; - } - index--; - int remainingLength = json.Length - index; - // false - if (remainingLength >= 5) - { - if (json[index] == 'f' && json[index + 1] == 'a' && json[index + 2] == 'l' && json[index + 3] == 's' && json[index + 4] == 'e') - { - index += 5; - return TOKEN_FALSE; - } - } - // true - if (remainingLength >= 4) - { - if (json[index] == 't' && json[index + 1] == 'r' && json[index + 2] == 'u' && json[index + 3] == 'e') - { - index += 4; - return TOKEN_TRUE; - } - } - // null - if (remainingLength >= 4) - { - if (json[index] == 'n' && json[index + 1] == 'u' && json[index + 2] == 'l' && json[index + 3] == 'l') - { - index += 4; - return TOKEN_NULL; - } - } - return TOKEN_NONE; - } - - static bool SerializeValue(IJsonSerializerStrategy jsonSerializerStrategy, object value, StringBuilder builder) - { - bool success = true; - string stringValue = value as string; - if (stringValue != null) - success = SerializeString(stringValue, builder); - else - { - IDictionary dict = value as IDictionary; - if (dict != null) - { - success = SerializeObject(jsonSerializerStrategy, dict.Keys, dict.Values, builder); - } - else - { - IDictionary stringDictionary = value as IDictionary; - if (stringDictionary != null) - { - success = SerializeObject(jsonSerializerStrategy, stringDictionary.Keys, stringDictionary.Values, builder); - } - else - { - IEnumerable enumerableValue = value as IEnumerable; - if (enumerableValue != null) - success = SerializeArray(jsonSerializerStrategy, enumerableValue, builder); - else if (IsNumeric(value)) - success = SerializeNumber(value, builder); - else if (value is bool) - builder.Append((bool)value ? "true" : "false"); - else if (value == null) - builder.Append("null"); - else - { - object serializedObject; - success = jsonSerializerStrategy.TrySerializeNonPrimitiveObject(value, out serializedObject); - if (success) - SerializeValue(jsonSerializerStrategy, serializedObject, builder); - } - } - } - } - return success; - } - - static bool SerializeObject(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable keys, IEnumerable values, StringBuilder builder) - { - builder.Append("{"); - IEnumerator ke = keys.GetEnumerator(); - IEnumerator ve = values.GetEnumerator(); - bool first = true; - while (ke.MoveNext() && ve.MoveNext()) - { - object key = ke.Current; - object value = ve.Current; - if (!first) - builder.Append(","); - string stringKey = key as string; - if (stringKey != null) - SerializeString(stringKey, builder); - else - if (!SerializeValue(jsonSerializerStrategy, value, builder)) return false; - builder.Append(":"); - if (!SerializeValue(jsonSerializerStrategy, value, builder)) - return false; - first = false; - } - builder.Append("}"); - return true; - } - - static bool SerializeArray(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable anArray, StringBuilder builder) - { - builder.Append("["); - bool first = true; - foreach (object value in anArray) - { - if (!first) - builder.Append(","); - if (!SerializeValue(jsonSerializerStrategy, value, builder)) - return false; - first = false; - } - builder.Append("]"); - return true; - } - - static bool SerializeString(string aString, StringBuilder builder) - { - builder.Append("\""); - char[] charArray = aString.ToCharArray(); - for (int i = 0; i < charArray.Length; i++) - { - char c = charArray[i]; - if (c == '"') - builder.Append("\\\""); - else if (c == '\\') - builder.Append("\\\\"); - else if (c == '\b') - builder.Append("\\b"); - else if (c == '\f') - builder.Append("\\f"); - else if (c == '\n') - builder.Append("\\n"); - else if (c == '\r') - builder.Append("\\r"); - else if (c == '\t') - builder.Append("\\t"); - else - builder.Append(c); - } - builder.Append("\""); - return true; - } - - static bool SerializeNumber(object number, StringBuilder builder) - { - if (number is long) - builder.Append(((long)number).ToString(CultureInfo.InvariantCulture)); - else if (number is ulong) - builder.Append(((ulong)number).ToString(CultureInfo.InvariantCulture)); - else if (number is int) - builder.Append(((int)number).ToString(CultureInfo.InvariantCulture)); - else if (number is uint) - builder.Append(((uint)number).ToString(CultureInfo.InvariantCulture)); - else if (number is decimal) - builder.Append(((decimal)number).ToString(CultureInfo.InvariantCulture)); - else if (number is float) - builder.Append(((float)number).ToString(CultureInfo.InvariantCulture)); - else - builder.Append(Convert.ToDouble(number, CultureInfo.InvariantCulture).ToString("r", CultureInfo.InvariantCulture)); - return true; - } - - /// - /// Determines if a given object is numeric in any way - /// (can be integer, double, null, etc). - /// - static bool IsNumeric(object value) - { - if (value is sbyte) return true; - if (value is byte) return true; - if (value is short) return true; - if (value is ushort) return true; - if (value is int) return true; - if (value is uint) return true; - if (value is long) return true; - if (value is ulong) return true; - if (value is float) return true; - if (value is double) return true; - if (value is decimal) return true; - return false; - } - - private static IJsonSerializerStrategy _currentJsonSerializerStrategy; - public static IJsonSerializerStrategy CurrentJsonSerializerStrategy - { - get - { - return _currentJsonSerializerStrategy ?? - (_currentJsonSerializerStrategy = + static class SimpleJson + { + private const int TOKEN_NONE = 0; + private const int TOKEN_CURLY_OPEN = 1; + private const int TOKEN_CURLY_CLOSE = 2; + private const int TOKEN_SQUARED_OPEN = 3; + private const int TOKEN_SQUARED_CLOSE = 4; + private const int TOKEN_COLON = 5; + private const int TOKEN_COMMA = 6; + private const int TOKEN_STRING = 7; + private const int TOKEN_NUMBER = 8; + private const int TOKEN_TRUE = 9; + private const int TOKEN_FALSE = 10; + private const int TOKEN_NULL = 11; + private const int BUILDER_CAPACITY = 2000; + + /// + /// Parses the string json into a value + /// + /// A JSON string. + /// An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + public static object DeserializeObject(string json) + { + object obj; + if (TryDeserializeObject(json, out obj)) + return obj; + throw new SerializationException("Invalid JSON string"); + } + + /// + /// Try parsing the json string into a value. + /// + /// + /// A JSON string. + /// + /// + /// The object. + /// + /// + /// Returns true if successfull otherwise false. + /// + [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification="Need to support .NET 2")] + public static bool TryDeserializeObject(string json, out object obj) + { + bool success = true; + if (json != null) + { + char[] charArray = json.ToCharArray(); + int index = 0; + obj = ParseValue(charArray, ref index, ref success); + } + else + obj = null; + + return success; + } + + public static object DeserializeObject(string json, Type type, IJsonSerializerStrategy jsonSerializerStrategy) + { + object jsonObject = DeserializeObject(json); + return type == null || jsonObject != null && ReflectionUtils.IsAssignableFrom(jsonObject.GetType(), type) + ? jsonObject + : (jsonSerializerStrategy ?? CurrentJsonSerializerStrategy).DeserializeObject(jsonObject, type); + } + + public static object DeserializeObject(string json, Type type) + { + return DeserializeObject(json, type, null); + } + + public static T DeserializeObject(string json, IJsonSerializerStrategy jsonSerializerStrategy) + { + return (T)DeserializeObject(json, typeof(T), jsonSerializerStrategy); + } + + public static T DeserializeObject(string json) + { + return (T)DeserializeObject(json, typeof(T), null); + } + + /// + /// Converts a IDictionary<string,object> / IList<object> object into a JSON string + /// + /// A IDictionary<string,object> / IList<object> + /// Serializer strategy to use + /// A JSON encoded string, or null if object 'json' is not serializable + public static string SerializeObject(object json, IJsonSerializerStrategy jsonSerializerStrategy) + { + StringBuilder builder = new StringBuilder(BUILDER_CAPACITY); + bool success = SerializeValue(jsonSerializerStrategy, json, builder); + return (success ? builder.ToString() : null); + } + + public static string SerializeObject(object json) + { + return SerializeObject(json, CurrentJsonSerializerStrategy); + } + + public static string EscapeToJavascriptString(string jsonString) + { + if (string.IsNullOrEmpty(jsonString)) + return jsonString; + + StringBuilder sb = new StringBuilder(); + char c; + + for (int i = 0; i < jsonString.Length; ) + { + c = jsonString[i++]; + + if (c == '\\') + { + int remainingLength = jsonString.Length - i; + if (remainingLength >= 2) + { + char lookahead = jsonString[i]; + if (lookahead == '\\') + { + sb.Append('\\'); + ++i; + } + else if (lookahead == '"') + { + sb.Append("\""); + ++i; + } + else if (lookahead == 't') + { + sb.Append('\t'); + ++i; + } + else if (lookahead == 'b') + { + sb.Append('\b'); + ++i; + } + else if (lookahead == 'n') + { + sb.Append('\n'); + ++i; + } + else if (lookahead == 'r') + { + sb.Append('\r'); + ++i; + } + } + } + else + { + sb.Append(c); + } + } + return sb.ToString(); + } + + static IDictionary ParseObject(char[] json, ref int index, ref bool success) + { + IDictionary table = new JsonObject(); + int token; + + // { + NextToken(json, ref index); + + bool done = false; + while (!done) + { + token = LookAhead(json, index); + if (token == TOKEN_NONE) + { + success = false; + return null; + } + else if (token == TOKEN_COMMA) + NextToken(json, ref index); + else if (token == TOKEN_CURLY_CLOSE) + { + NextToken(json, ref index); + return table; + } + else + { + // name + string name = ParseString(json, ref index, ref success); + if (!success) + { + success = false; + return null; + } + // : + token = NextToken(json, ref index); + if (token != TOKEN_COLON) + { + success = false; + return null; + } + // value + object value = ParseValue(json, ref index, ref success); + if (!success) + { + success = false; + return null; + } + table[name] = value; + } + } + return table; + } + + static JsonArray ParseArray(char[] json, ref int index, ref bool success) + { + JsonArray array = new JsonArray(); + + // [ + NextToken(json, ref index); + + bool done = false; + while (!done) + { + int token = LookAhead(json, index); + if (token == TOKEN_NONE) + { + success = false; + return null; + } + else if (token == TOKEN_COMMA) + NextToken(json, ref index); + else if (token == TOKEN_SQUARED_CLOSE) + { + NextToken(json, ref index); + break; + } + else + { + object value = ParseValue(json, ref index, ref success); + if (!success) + return null; + array.Add(value); + } + } + return array; + } + + static object ParseValue(char[] json, ref int index, ref bool success) + { + switch (LookAhead(json, index)) + { + case TOKEN_STRING: + return ParseString(json, ref index, ref success); + case TOKEN_NUMBER: + return ParseNumber(json, ref index, ref success); + case TOKEN_CURLY_OPEN: + return ParseObject(json, ref index, ref success); + case TOKEN_SQUARED_OPEN: + return ParseArray(json, ref index, ref success); + case TOKEN_TRUE: + NextToken(json, ref index); + return true; + case TOKEN_FALSE: + NextToken(json, ref index); + return false; + case TOKEN_NULL: + NextToken(json, ref index); + return null; + case TOKEN_NONE: + break; + } + success = false; + return null; + } + + static string ParseString(char[] json, ref int index, ref bool success) + { + StringBuilder s = new StringBuilder(BUILDER_CAPACITY); + char c; + + EatWhitespace(json, ref index); + + // " + c = json[index++]; + bool complete = false; + while (!complete) + { + if (index == json.Length) + break; + + c = json[index++]; + if (c == '"') + { + complete = true; + break; + } + else if (c == '\\') + { + if (index == json.Length) + break; + c = json[index++]; + if (c == '"') + s.Append('"'); + else if (c == '\\') + s.Append('\\'); + else if (c == '/') + s.Append('/'); + else if (c == 'b') + s.Append('\b'); + else if (c == 'f') + s.Append('\f'); + else if (c == 'n') + s.Append('\n'); + else if (c == 'r') + s.Append('\r'); + else if (c == 't') + s.Append('\t'); + else if (c == 'u') + { + int remainingLength = json.Length - index; + if (remainingLength >= 4) + { + // parse the 32 bit hex into an integer codepoint + uint codePoint; + if (!(success = UInt32.TryParse(new string(json, index, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out codePoint))) + return ""; + + // convert the integer codepoint to a unicode char and add to string + if (0xD800 <= codePoint && codePoint <= 0xDBFF) // if high surrogate + { + index += 4; // skip 4 chars + remainingLength = json.Length - index; + if (remainingLength >= 6) + { + uint lowCodePoint; + if (new string(json, index, 2) == "\\u" && UInt32.TryParse(new string(json, index + 2, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out lowCodePoint)) + { + if (0xDC00 <= lowCodePoint && lowCodePoint <= 0xDFFF) // if low surrogate + { + s.Append((char)codePoint); + s.Append((char)lowCodePoint); + index += 6; // skip 6 chars + continue; + } + } + } + success = false; // invalid surrogate pair + return ""; + } + s.Append(ConvertFromUtf32((int)codePoint)); + // skip 4 chars + index += 4; + } + else + break; + } + } + else + s.Append(c); + } + if (!complete) + { + success = false; + return null; + } + return s.ToString(); + } + + private static string ConvertFromUtf32(int utf32) + { + // http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System/System/Char.cs.htm + if (utf32 < 0 || utf32 > 0x10FFFF) + throw new ArgumentOutOfRangeException("utf32", "The argument must be from 0 to 0x10FFFF."); + if (0xD800 <= utf32 && utf32 <= 0xDFFF) + throw new ArgumentOutOfRangeException("utf32", "The argument must not be in surrogate pair range."); + if (utf32 < 0x10000) + return new string((char)utf32, 1); + utf32 -= 0x10000; + return new string(new char[] { (char)((utf32 >> 10) + 0xD800), (char)(utf32 % 0x0400 + 0xDC00) }); + } + + static object ParseNumber(char[] json, ref int index, ref bool success) + { + EatWhitespace(json, ref index); + int lastIndex = GetLastIndexOfNumber(json, index); + int charLength = (lastIndex - index) + 1; + object returnNumber; + string str = new string(json, index, charLength); + if (str.IndexOf(".", StringComparison.OrdinalIgnoreCase) != -1 || str.IndexOf("e", StringComparison.OrdinalIgnoreCase) != -1) + { + double number; + success = double.TryParse(new string(json, index, charLength), NumberStyles.Any, CultureInfo.InvariantCulture, out number); + returnNumber = number; + } + else + { + long number; + success = long.TryParse(new string(json, index, charLength), NumberStyles.Any, CultureInfo.InvariantCulture, out number); + returnNumber = number; + } + index = lastIndex + 1; + return returnNumber; + } + + static int GetLastIndexOfNumber(char[] json, int index) + { + int lastIndex; + for (lastIndex = index; lastIndex < json.Length; lastIndex++) + if ("0123456789+-.eE".IndexOf(json[lastIndex]) == -1) break; + return lastIndex - 1; + } + + static void EatWhitespace(char[] json, ref int index) + { + for (; index < json.Length; index++) + if (" \t\n\r\b\f".IndexOf(json[index]) == -1) break; + } + + static int LookAhead(char[] json, int index) + { + int saveIndex = index; + return NextToken(json, ref saveIndex); + } + + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + static int NextToken(char[] json, ref int index) + { + EatWhitespace(json, ref index); + if (index == json.Length) + return TOKEN_NONE; + char c = json[index]; + index++; + switch (c) + { + case '{': + return TOKEN_CURLY_OPEN; + case '}': + return TOKEN_CURLY_CLOSE; + case '[': + return TOKEN_SQUARED_OPEN; + case ']': + return TOKEN_SQUARED_CLOSE; + case ',': + return TOKEN_COMMA; + case '"': + return TOKEN_STRING; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '-': + return TOKEN_NUMBER; + case ':': + return TOKEN_COLON; + } + index--; + int remainingLength = json.Length - index; + // false + if (remainingLength >= 5) + { + if (json[index] == 'f' && json[index + 1] == 'a' && json[index + 2] == 'l' && json[index + 3] == 's' && json[index + 4] == 'e') + { + index += 5; + return TOKEN_FALSE; + } + } + // true + if (remainingLength >= 4) + { + if (json[index] == 't' && json[index + 1] == 'r' && json[index + 2] == 'u' && json[index + 3] == 'e') + { + index += 4; + return TOKEN_TRUE; + } + } + // null + if (remainingLength >= 4) + { + if (json[index] == 'n' && json[index + 1] == 'u' && json[index + 2] == 'l' && json[index + 3] == 'l') + { + index += 4; + return TOKEN_NULL; + } + } + return TOKEN_NONE; + } + + static bool SerializeValue(IJsonSerializerStrategy jsonSerializerStrategy, object value, StringBuilder builder) + { + bool success = true; + string stringValue = value as string; + if (stringValue != null) + success = SerializeString(stringValue, builder); + else + { + IDictionary dict = value as IDictionary; + if (dict != null) + { + success = SerializeObject(jsonSerializerStrategy, dict.Keys, dict.Values, builder); + } + else + { + IDictionary stringDictionary = value as IDictionary; + if (stringDictionary != null) + { + success = SerializeObject(jsonSerializerStrategy, stringDictionary.Keys, stringDictionary.Values, builder); + } + else + { + IEnumerable enumerableValue = value as IEnumerable; + if (enumerableValue != null) + success = SerializeArray(jsonSerializerStrategy, enumerableValue, builder); + else if (IsNumeric(value)) + success = SerializeNumber(value, builder); + else if (value is bool) + builder.Append((bool)value ? "true" : "false"); + else if (value == null) + builder.Append("null"); + else + { + object serializedObject; + success = jsonSerializerStrategy.TrySerializeNonPrimitiveObject(value, out serializedObject); + if (success) + SerializeValue(jsonSerializerStrategy, serializedObject, builder); + } + } + } + } + return success; + } + + static bool SerializeObject(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable keys, IEnumerable values, StringBuilder builder) + { + builder.Append("{"); + IEnumerator ke = keys.GetEnumerator(); + IEnumerator ve = values.GetEnumerator(); + bool first = true; + while (ke.MoveNext() && ve.MoveNext()) + { + object key = ke.Current; + object value = ve.Current; + if (!first) + builder.Append(","); + string stringKey = key as string; + if (stringKey != null) + SerializeString(stringKey, builder); + else + if (!SerializeValue(jsonSerializerStrategy, value, builder)) return false; + builder.Append(":"); + if (!SerializeValue(jsonSerializerStrategy, value, builder)) + return false; + first = false; + } + builder.Append("}"); + return true; + } + + static bool SerializeArray(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable anArray, StringBuilder builder) + { + builder.Append("["); + bool first = true; + foreach (object value in anArray) + { + if (!first) + builder.Append(","); + if (!SerializeValue(jsonSerializerStrategy, value, builder)) + return false; + first = false; + } + builder.Append("]"); + return true; + } + + static bool SerializeString(string aString, StringBuilder builder) + { + builder.Append("\""); + char[] charArray = aString.ToCharArray(); + for (int i = 0; i < charArray.Length; i++) + { + char c = charArray[i]; + if (c == '"') + builder.Append("\\\""); + else if (c == '\\') + builder.Append("\\\\"); + else if (c == '\b') + builder.Append("\\b"); + else if (c == '\f') + builder.Append("\\f"); + else if (c == '\n') + builder.Append("\\n"); + else if (c == '\r') + builder.Append("\\r"); + else if (c == '\t') + builder.Append("\\t"); + else + builder.Append(c); + } + builder.Append("\""); + return true; + } + + static bool SerializeNumber(object number, StringBuilder builder) + { + if (number is long) + builder.Append(((long)number).ToString(CultureInfo.InvariantCulture)); + else if (number is ulong) + builder.Append(((ulong)number).ToString(CultureInfo.InvariantCulture)); + else if (number is int) + builder.Append(((int)number).ToString(CultureInfo.InvariantCulture)); + else if (number is uint) + builder.Append(((uint)number).ToString(CultureInfo.InvariantCulture)); + else if (number is decimal) + builder.Append(((decimal)number).ToString(CultureInfo.InvariantCulture)); + else if (number is float) + builder.Append(((float)number).ToString(CultureInfo.InvariantCulture)); + else + builder.Append(Convert.ToDouble(number, CultureInfo.InvariantCulture).ToString("r", CultureInfo.InvariantCulture)); + return true; + } + + /// + /// Determines if a given object is numeric in any way + /// (can be integer, double, null, etc). + /// + static bool IsNumeric(object value) + { + if (value is sbyte) return true; + if (value is byte) return true; + if (value is short) return true; + if (value is ushort) return true; + if (value is int) return true; + if (value is uint) return true; + if (value is long) return true; + if (value is ulong) return true; + if (value is float) return true; + if (value is double) return true; + if (value is decimal) return true; + return false; + } + + private static IJsonSerializerStrategy _currentJsonSerializerStrategy; + public static IJsonSerializerStrategy CurrentJsonSerializerStrategy + { + get + { + return _currentJsonSerializerStrategy ?? + (_currentJsonSerializerStrategy = #if SIMPLE_JSON_DATACONTRACT DataContractJsonSerializerStrategy #else - PocoJsonSerializerStrategy + PocoJsonSerializerStrategy #endif -); - } - set - { - _currentJsonSerializerStrategy = value; - } - } - - private static PocoJsonSerializerStrategy _pocoJsonSerializerStrategy; - [EditorBrowsable(EditorBrowsableState.Advanced)] - public static PocoJsonSerializerStrategy PocoJsonSerializerStrategy - { - get - { - return _pocoJsonSerializerStrategy ?? (_pocoJsonSerializerStrategy = new PocoJsonSerializerStrategy()); - } - } + ); + } + set + { + _currentJsonSerializerStrategy = value; + } + } + + private static PocoJsonSerializerStrategy _pocoJsonSerializerStrategy; + [EditorBrowsable(EditorBrowsableState.Advanced)] + public static PocoJsonSerializerStrategy PocoJsonSerializerStrategy + { + get + { + return _pocoJsonSerializerStrategy ?? (_pocoJsonSerializerStrategy = new PocoJsonSerializerStrategy()); + } + } #if SIMPLE_JSON_DATACONTRACT @@ -1184,299 +1175,299 @@ public static DataContractJsonSerializerStrategy DataContractJsonSerializerStrat } #endif - } + } - [GeneratedCode("simple-json", "1.0.0")] + [GeneratedCode("simple-json", "1.0.0")] #if SIMPLE_JSON_INTERNAL - internal + internal #else public #endif - interface IJsonSerializerStrategy - { - [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification="Need to support .NET 2")] - bool TrySerializeNonPrimitiveObject(object input, out object output); - object DeserializeObject(object value, Type type); - } - - [GeneratedCode("simple-json", "1.0.0")] + interface IJsonSerializerStrategy + { + [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification="Need to support .NET 2")] + bool TrySerializeNonPrimitiveObject(object input, out object output); + object DeserializeObject(object value, Type type); + } + + [GeneratedCode("simple-json", "1.0.0")] #if SIMPLE_JSON_INTERNAL - internal + internal #else public #endif - class PocoJsonSerializerStrategy : IJsonSerializerStrategy - { - internal IDictionary ConstructorCache; - internal IDictionary> GetCache; - internal IDictionary>> SetCache; - - internal static readonly Type[] EmptyTypes = new Type[0]; - internal static readonly Type[] ArrayConstructorParameterTypes = new Type[] { typeof(int) }; - - private static readonly string[] Iso8601Format = new string[] - { - @"yyyy-MM-dd\THH:mm:ss.FFFFFFF\Z", - @"yyyy-MM-dd\THH:mm:ss\Z", - @"yyyy-MM-dd\THH:mm:ssK" - }; - - public PocoJsonSerializerStrategy() - { - ConstructorCache = new ReflectionUtils.ThreadSafeDictionary(ContructorDelegateFactory); - GetCache = new ReflectionUtils.ThreadSafeDictionary>(GetterValueFactory); - SetCache = new ReflectionUtils.ThreadSafeDictionary>>(SetterValueFactory); - } - - protected virtual string MapClrMemberNameToJsonFieldName(string clrPropertyName) - { - return clrPropertyName; - } - - internal virtual ReflectionUtils.ConstructorDelegate ContructorDelegateFactory(Type key) - { - return ReflectionUtils.GetContructor(key, key.IsArray ? ArrayConstructorParameterTypes : EmptyTypes); - } - - internal virtual IDictionary GetterValueFactory(Type type) - { - IDictionary result = new Dictionary(); - foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) - { - if (propertyInfo.CanRead) - { - MethodInfo getMethod = ReflectionUtils.GetGetterMethodInfo(propertyInfo); - if (getMethod.IsStatic || !getMethod.IsPublic) - continue; - result[MapClrMemberNameToJsonFieldName(propertyInfo.Name)] = ReflectionUtils.GetGetMethod(propertyInfo); - } - } - foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) - { - if (fieldInfo.IsStatic || !fieldInfo.IsPublic) - continue; - result[MapClrMemberNameToJsonFieldName(fieldInfo.Name)] = ReflectionUtils.GetGetMethod(fieldInfo); - } - return result; - } - - internal virtual IDictionary> SetterValueFactory(Type type) - { - IDictionary> result = new Dictionary>(); - foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) - { - if (propertyInfo.CanWrite) - { - MethodInfo setMethod = ReflectionUtils.GetSetterMethodInfo(propertyInfo); - if (setMethod.IsStatic || !setMethod.IsPublic) - continue; - result[MapClrMemberNameToJsonFieldName(propertyInfo.Name)] = new KeyValuePair(propertyInfo.PropertyType, ReflectionUtils.GetSetMethod(propertyInfo)); - } - } - foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) - { - if (fieldInfo.IsInitOnly || fieldInfo.IsStatic || !fieldInfo.IsPublic) - continue; - result[MapClrMemberNameToJsonFieldName(fieldInfo.Name)] = new KeyValuePair(fieldInfo.FieldType, ReflectionUtils.GetSetMethod(fieldInfo)); - } - return result; - } - - public virtual bool TrySerializeNonPrimitiveObject(object input, out object output) - { - return TrySerializeKnownTypes(input, out output) || TrySerializeUnknownTypes(input, out output); - } - - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] - public virtual object DeserializeObject(object value, Type type) - { - if (type == null) throw new ArgumentNullException("type"); - string str = value as string; - - if (type == typeof (Guid) && string.IsNullOrEmpty(str)) - return default(Guid); - - if (value == null) - return null; + class PocoJsonSerializerStrategy : IJsonSerializerStrategy + { + internal IDictionary ConstructorCache; + internal IDictionary> GetCache; + internal IDictionary>> SetCache; + + internal static readonly Type[] EmptyTypes = new Type[0]; + internal static readonly Type[] ArrayConstructorParameterTypes = new Type[] { typeof(int) }; + + private static readonly string[] Iso8601Format = new string[] + { + @"yyyy-MM-dd\THH:mm:ss.FFFFFFF\Z", + @"yyyy-MM-dd\THH:mm:ss\Z", + @"yyyy-MM-dd\THH:mm:ssK" + }; + + public PocoJsonSerializerStrategy() + { + ConstructorCache = new ReflectionUtils.ThreadSafeDictionary(ContructorDelegateFactory); + GetCache = new ReflectionUtils.ThreadSafeDictionary>(GetterValueFactory); + SetCache = new ReflectionUtils.ThreadSafeDictionary>>(SetterValueFactory); + } + + protected virtual string MapClrMemberNameToJsonFieldName(string clrPropertyName) + { + return clrPropertyName; + } + + internal virtual ReflectionUtils.ConstructorDelegate ContructorDelegateFactory(Type key) + { + return ReflectionUtils.GetContructor(key, key.IsArray ? ArrayConstructorParameterTypes : EmptyTypes); + } + + internal virtual IDictionary GetterValueFactory(Type type) + { + IDictionary result = new Dictionary(); + foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) + { + if (propertyInfo.CanRead) + { + MethodInfo getMethod = ReflectionUtils.GetGetterMethodInfo(propertyInfo); + if (getMethod.IsStatic || !getMethod.IsPublic) + continue; + result[MapClrMemberNameToJsonFieldName(propertyInfo.Name)] = ReflectionUtils.GetGetMethod(propertyInfo); + } + } + foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) + { + if (fieldInfo.IsStatic || !fieldInfo.IsPublic) + continue; + result[MapClrMemberNameToJsonFieldName(fieldInfo.Name)] = ReflectionUtils.GetGetMethod(fieldInfo); + } + return result; + } + + internal virtual IDictionary> SetterValueFactory(Type type) + { + IDictionary> result = new Dictionary>(); + foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) + { + if (propertyInfo.CanWrite) + { + MethodInfo setMethod = ReflectionUtils.GetSetterMethodInfo(propertyInfo); + if (setMethod.IsStatic || !setMethod.IsPublic) + continue; + result[MapClrMemberNameToJsonFieldName(propertyInfo.Name)] = new KeyValuePair(propertyInfo.PropertyType, ReflectionUtils.GetSetMethod(propertyInfo)); + } + } + foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) + { + if (fieldInfo.IsInitOnly || fieldInfo.IsStatic || !fieldInfo.IsPublic) + continue; + result[MapClrMemberNameToJsonFieldName(fieldInfo.Name)] = new KeyValuePair(fieldInfo.FieldType, ReflectionUtils.GetSetMethod(fieldInfo)); + } + return result; + } + + public virtual bool TrySerializeNonPrimitiveObject(object input, out object output) + { + return TrySerializeKnownTypes(input, out output) || TrySerializeUnknownTypes(input, out output); + } + + [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + public virtual object DeserializeObject(object value, Type type) + { + if (type == null) throw new ArgumentNullException("type"); + string str = value as string; + + if (type == typeof (Guid) && string.IsNullOrEmpty(str)) + return default(Guid); + + if (value == null) + return null; - object obj = null; - - if (str != null) - { - if (str.Length != 0) // We know it can't be null now. - { - if (type == typeof(DateTime) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(DateTime))) - return DateTime.ParseExact(str, Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); - if (type == typeof(DateTimeOffset) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(DateTimeOffset))) - return DateTimeOffset.ParseExact(str, Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); - if (type == typeof(Guid) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid))) - return new Guid(str); - if (type == typeof(Uri)) - { - bool isValid = Uri.IsWellFormedUriString(str, UriKind.RelativeOrAbsolute); - - Uri result; - if (isValid && Uri.TryCreate(str, UriKind.RelativeOrAbsolute, out result)) - return result; - } - return str; - } - else - { - if (type == typeof(Guid)) - obj = default(Guid); - else if (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid)) - obj = null; - else - obj = str; - } - // Empty string case - if (!ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid)) - return str; - } - else if (value is bool) - return value; + object obj = null; + + if (str != null) + { + if (str.Length != 0) // We know it can't be null now. + { + if (type == typeof(DateTime) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(DateTime))) + return DateTime.ParseExact(str, Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); + if (type == typeof(DateTimeOffset) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(DateTimeOffset))) + return DateTimeOffset.ParseExact(str, Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); + if (type == typeof(Guid) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid))) + return new Guid(str); + if (type == typeof(Uri)) + { + bool isValid = Uri.IsWellFormedUriString(str, UriKind.RelativeOrAbsolute); + + Uri result; + if (isValid && Uri.TryCreate(str, UriKind.RelativeOrAbsolute, out result)) + return result; + } + return str; + } + else + { + if (type == typeof(Guid)) + obj = default(Guid); + else if (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid)) + obj = null; + else + obj = str; + } + // Empty string case + if (!ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid)) + return str; + } + else if (value is bool) + return value; - bool valueIsLong = value is long; - bool valueIsDouble = value is double; - if ((valueIsLong && type == typeof(long)) || (valueIsDouble && type == typeof(double))) - return value; - if ((valueIsDouble && type != typeof(double)) || (valueIsLong && type != typeof(long))) - { - obj = type == typeof(int) || type == typeof(long) || type == typeof(double) || type == typeof(float) || type == typeof(bool) || type == typeof(decimal) || type == typeof(byte) || type == typeof(short) - ? Convert.ChangeType(value, type, CultureInfo.InvariantCulture) - : value; - } - else - { - IDictionary objects = value as IDictionary; - if (objects != null) - { - IDictionary jsonObject = objects; - - if (ReflectionUtils.IsTypeDictionary(type)) - { - // if dictionary then - Type[] types = ReflectionUtils.GetGenericTypeArguments(type); - Type keyType = types[0]; - Type valueType = types[1]; - - Type genericType = typeof(Dictionary<,>).MakeGenericType(keyType, valueType); - - IDictionary dict = (IDictionary)ConstructorCache[genericType](); - - foreach (KeyValuePair kvp in jsonObject) - dict.Add(kvp.Key, DeserializeObject(kvp.Value, valueType)); - - obj = dict; - } - else - { - if (type == typeof(object)) - obj = value; - else - { - obj = ConstructorCache[type](); - foreach (KeyValuePair> setter in SetCache[type]) - { - object jsonValue; - if (jsonObject.TryGetValue(setter.Key, out jsonValue)) - { - jsonValue = DeserializeObject(jsonValue, setter.Value.Key); - setter.Value.Value(obj, jsonValue); - } - } - } - } - } - else - { - IList valueAsList = value as IList; - if (valueAsList != null) - { - IList jsonObject = valueAsList; - IList list = null; - - if (type.IsArray) - { - list = (IList)ConstructorCache[type](jsonObject.Count); - int i = 0; - foreach (object o in jsonObject) - list[i++] = DeserializeObject(o, type.GetElementType()); - } - else if (ReflectionUtils.IsTypeGenericeCollectionInterface(type) || ReflectionUtils.IsAssignableFrom(typeof(IList), type)) - { - Type innerType = ReflectionUtils.GetGenericListElementType(type); - list = (IList)(ConstructorCache[type] ?? ConstructorCache[typeof(List<>).MakeGenericType(innerType)])(jsonObject.Count); - foreach (object o in jsonObject) - list.Add(DeserializeObject(o, innerType)); - } + bool valueIsLong = value is long; + bool valueIsDouble = value is double; + if ((valueIsLong && type == typeof(long)) || (valueIsDouble && type == typeof(double))) + return value; + if ((valueIsDouble && type != typeof(double)) || (valueIsLong && type != typeof(long))) + { + obj = type == typeof(int) || type == typeof(long) || type == typeof(double) || type == typeof(float) || type == typeof(bool) || type == typeof(decimal) || type == typeof(byte) || type == typeof(short) + ? Convert.ChangeType(value, type, CultureInfo.InvariantCulture) + : value; + } + else + { + IDictionary objects = value as IDictionary; + if (objects != null) + { + IDictionary jsonObject = objects; + + if (ReflectionUtils.IsTypeDictionary(type)) + { + // if dictionary then + Type[] types = ReflectionUtils.GetGenericTypeArguments(type); + Type keyType = types[0]; + Type valueType = types[1]; + + Type genericType = typeof(Dictionary<,>).MakeGenericType(keyType, valueType); + + IDictionary dict = (IDictionary)ConstructorCache[genericType](); + + foreach (KeyValuePair kvp in jsonObject) + dict.Add(kvp.Key, DeserializeObject(kvp.Value, valueType)); + + obj = dict; + } + else + { + if (type == typeof(object)) + obj = value; else - { - list = (IList)ConstructorCache[typeof(object[])](jsonObject.Count); - int i = 0; - foreach (object o in jsonObject) - list[i++] = DeserializeObject(o, typeof(object)); - } - obj = list ?? new object[0]; - } - } - return obj; - } - if (ReflectionUtils.IsNullableType(type)) - return ReflectionUtils.ToNullableType(obj, type); - return obj; - } - - protected virtual object SerializeEnum(Enum p) - { - return Convert.ToDouble(p, CultureInfo.InvariantCulture); - } - - [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification="Need to support .NET 2")] - protected virtual bool TrySerializeKnownTypes(object input, out object output) - { - bool returnValue = true; - if (input is DateTime) - output = ((DateTime)input).ToUniversalTime().ToString(Iso8601Format[0], CultureInfo.InvariantCulture); - else if (input is DateTimeOffset) - output = ((DateTimeOffset)input).ToUniversalTime().ToString(Iso8601Format[0], CultureInfo.InvariantCulture); - else if (input is Guid) - output = ((Guid)input).ToString("D"); - else if (input is Uri) - output = input.ToString(); - else - { - Enum inputEnum = input as Enum; - if (inputEnum != null) - output = SerializeEnum(inputEnum); - else - { - returnValue = false; - output = null; - } - } - return returnValue; - } - [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification="Need to support .NET 2")] - protected virtual bool TrySerializeUnknownTypes(object input, out object output) - { - if (input == null) throw new ArgumentNullException("input"); - output = null; - Type type = input.GetType(); - if (type.FullName == null) - return false; - IDictionary obj = new JsonObject(); - IDictionary getters = GetCache[type]; - foreach (KeyValuePair getter in getters) - { - if (getter.Value != null) - obj.Add(MapClrMemberNameToJsonFieldName(getter.Key), getter.Value(input)); - } - output = obj; - return true; - } - } + { + obj = ConstructorCache[type](); + foreach (KeyValuePair> setter in SetCache[type]) + { + object jsonValue; + if (jsonObject.TryGetValue(setter.Key, out jsonValue)) + { + jsonValue = DeserializeObject(jsonValue, setter.Value.Key); + setter.Value.Value(obj, jsonValue); + } + } + } + } + } + else + { + IList valueAsList = value as IList; + if (valueAsList != null) + { + IList jsonObject = valueAsList; + IList list = null; + + if (type.IsArray) + { + list = (IList)ConstructorCache[type](jsonObject.Count); + int i = 0; + foreach (object o in jsonObject) + list[i++] = DeserializeObject(o, type.GetElementType()); + } + else if (ReflectionUtils.IsTypeGenericeCollectionInterface(type) || ReflectionUtils.IsAssignableFrom(typeof(IList), type)) + { + Type innerType = ReflectionUtils.GetGenericListElementType(type); + list = (IList)(ConstructorCache[type] ?? ConstructorCache[typeof(List<>).MakeGenericType(innerType)])(jsonObject.Count); + foreach (object o in jsonObject) + list.Add(DeserializeObject(o, innerType)); + } + else + { + list = (IList)ConstructorCache[typeof(object[])](jsonObject.Count); + int i = 0; + foreach (object o in jsonObject) + list[i++] = DeserializeObject(o, typeof(object)); + } + obj = list ?? new object[0]; + } + } + return obj; + } + if (ReflectionUtils.IsNullableType(type)) + return ReflectionUtils.ToNullableType(obj, type); + return obj; + } + + protected virtual object SerializeEnum(Enum p) + { + return Convert.ToDouble(p, CultureInfo.InvariantCulture); + } + + [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification="Need to support .NET 2")] + protected virtual bool TrySerializeKnownTypes(object input, out object output) + { + bool returnValue = true; + if (input is DateTime) + output = ((DateTime)input).ToUniversalTime().ToString(Iso8601Format[0], CultureInfo.InvariantCulture); + else if (input is DateTimeOffset) + output = ((DateTimeOffset)input).ToUniversalTime().ToString(Iso8601Format[0], CultureInfo.InvariantCulture); + else if (input is Guid) + output = ((Guid)input).ToString("D"); + else if (input is Uri) + output = input.ToString(); + else + { + Enum inputEnum = input as Enum; + if (inputEnum != null) + output = SerializeEnum(inputEnum); + else + { + returnValue = false; + output = null; + } + } + return returnValue; + } + [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification="Need to support .NET 2")] + protected virtual bool TrySerializeUnknownTypes(object input, out object output) + { + if (input == null) throw new ArgumentNullException("input"); + output = null; + Type type = input.GetType(); + if (type.FullName == null) + return false; + IDictionary obj = new JsonObject(); + IDictionary getters = GetCache[type]; + foreach (KeyValuePair getter in getters) + { + if (getter.Value != null) + obj.Add(MapClrMemberNameToJsonFieldName(getter.Key), getter.Value(input)); + } + output = obj; + return true; + } + } #if SIMPLE_JSON_DATACONTRACT [GeneratedCode("simple-json", "1.0.0")] @@ -1557,25 +1548,23 @@ private static bool CanAdd(MemberInfo info, out string jsonKey) #endif - namespace Reflection - { - // This class is meant to be copied into other libraries. So we want to exclude it from Code Analysis rules - // that might be in place in the target project. - [GeneratedCode("reflection-utils", "1.0.0")] +// This class is meant to be copied into other libraries. So we want to exclude it from Code Analysis rules +// that might be in place in the target project. + [GeneratedCode("reflection-utils", "1.0.0")] #if SIMPLE_JSON_REFLECTION_UTILS_PUBLIC public #else - internal + internal #endif - class ReflectionUtils - { - private static readonly object[] EmptyObjects = new object[] { }; + class ReflectionUtils + { + private static readonly object[] EmptyObjects = new object[] { }; - public delegate object GetDelegate(object source); - public delegate void SetDelegate(object source, object value); - public delegate object ConstructorDelegate(params object[] args); + public delegate object GetDelegate(object source); + public delegate void SetDelegate(object source, object value); + public delegate object ConstructorDelegate(params object[] args); - public delegate TValue ThreadSafeDictionaryValueFactory(TKey key); + public delegate TValue ThreadSafeDictionaryValueFactory(TKey key); #if SIMPLE_JSON_TYPEINFO public static TypeInfo GetTypeInfo(Type type) @@ -1583,509 +1572,509 @@ public static TypeInfo GetTypeInfo(Type type) return type.GetTypeInfo(); } #else - public static Type GetTypeInfo(Type type) - { - return type; - } + public static Type GetTypeInfo(Type type) + { + return type; + } #endif - public static Attribute GetAttribute(MemberInfo info, Type type) - { + public static Attribute GetAttribute(MemberInfo info, Type type) + { #if SIMPLE_JSON_TYPEINFO if (info == null || type == null || !info.IsDefined(type)) return null; return info.GetCustomAttribute(type); #else - if (info == null || type == null || !Attribute.IsDefined(info, type)) - return null; - return Attribute.GetCustomAttribute(info, type); + if (info == null || type == null || !Attribute.IsDefined(info, type)) + return null; + return Attribute.GetCustomAttribute(info, type); #endif - } + } - public static Type GetGenericListElementType(Type type) - { - IEnumerable interfaces; + public static Type GetGenericListElementType(Type type) + { + IEnumerable interfaces; #if SIMPLE_JSON_TYPEINFO interfaces = type.GetTypeInfo().ImplementedInterfaces; #else - interfaces = type.GetInterfaces(); + interfaces = type.GetInterfaces(); #endif - foreach (Type implementedInterface in interfaces) - { - if (IsTypeGeneric(implementedInterface) && - implementedInterface.GetGenericTypeDefinition() == typeof (IList<>)) - { - return GetGenericTypeArguments(implementedInterface)[0]; - } - } - return GetGenericTypeArguments(type)[0]; - } - - public static Attribute GetAttribute(Type objectType, Type attributeType) - { + foreach (Type implementedInterface in interfaces) + { + if (IsTypeGeneric(implementedInterface) && + implementedInterface.GetGenericTypeDefinition() == typeof (IList<>)) + { + return GetGenericTypeArguments(implementedInterface)[0]; + } + } + return GetGenericTypeArguments(type)[0]; + } + + public static Attribute GetAttribute(Type objectType, Type attributeType) + { #if SIMPLE_JSON_TYPEINFO if (objectType == null || attributeType == null || !objectType.GetTypeInfo().IsDefined(attributeType)) return null; return objectType.GetTypeInfo().GetCustomAttribute(attributeType); #else - if (objectType == null || attributeType == null || !Attribute.IsDefined(objectType, attributeType)) - return null; - return Attribute.GetCustomAttribute(objectType, attributeType); + if (objectType == null || attributeType == null || !Attribute.IsDefined(objectType, attributeType)) + return null; + return Attribute.GetCustomAttribute(objectType, attributeType); #endif - } + } - public static Type[] GetGenericTypeArguments(Type type) - { + public static Type[] GetGenericTypeArguments(Type type) + { #if SIMPLE_JSON_TYPEINFO return type.GetTypeInfo().GenericTypeArguments; #else - return type.GetGenericArguments(); + return type.GetGenericArguments(); #endif - } + } - public static bool IsTypeGeneric(Type type) - { - return GetTypeInfo(type).IsGenericType; - } + public static bool IsTypeGeneric(Type type) + { + return GetTypeInfo(type).IsGenericType; + } - public static bool IsTypeGenericeCollectionInterface(Type type) - { - if (!IsTypeGeneric(type)) - return false; + public static bool IsTypeGenericeCollectionInterface(Type type) + { + if (!IsTypeGeneric(type)) + return false; - Type genericDefinition = type.GetGenericTypeDefinition(); + Type genericDefinition = type.GetGenericTypeDefinition(); - return (genericDefinition == typeof(IList<>) - || genericDefinition == typeof(ICollection<>) - || genericDefinition == typeof(IEnumerable<>) + return (genericDefinition == typeof(IList<>) + || genericDefinition == typeof(ICollection<>) + || genericDefinition == typeof(IEnumerable<>) #if SIMPLE_JSON_READONLY_COLLECTIONS || genericDefinition == typeof(IReadOnlyCollection<>) || genericDefinition == typeof(IReadOnlyList<>) #endif - ); - } + ); + } - public static bool IsAssignableFrom(Type type1, Type type2) - { - return GetTypeInfo(type1).IsAssignableFrom(GetTypeInfo(type2)); - } + public static bool IsAssignableFrom(Type type1, Type type2) + { + return GetTypeInfo(type1).IsAssignableFrom(GetTypeInfo(type2)); + } - public static bool IsTypeDictionary(Type type) - { + public static bool IsTypeDictionary(Type type) + { #if SIMPLE_JSON_TYPEINFO if (typeof(IDictionary<,>).GetTypeInfo().IsAssignableFrom(type.GetTypeInfo())) return true; #else - if (typeof(System.Collections.IDictionary).IsAssignableFrom(type)) - return true; + if (typeof(System.Collections.IDictionary).IsAssignableFrom(type)) + return true; #endif - if (!GetTypeInfo(type).IsGenericType) - return false; - - Type genericDefinition = type.GetGenericTypeDefinition(); - return genericDefinition == typeof(IDictionary<,>); - } - - public static bool IsNullableType(Type type) - { - return GetTypeInfo(type).IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>); - } - - public static object ToNullableType(object obj, Type nullableType) - { - return obj == null ? null : Convert.ChangeType(obj, Nullable.GetUnderlyingType(nullableType), CultureInfo.InvariantCulture); - } - - public static bool IsValueType(Type type) - { - return GetTypeInfo(type).IsValueType; - } - - public static IEnumerable GetConstructors(Type type) - { + if (!GetTypeInfo(type).IsGenericType) + return false; + + Type genericDefinition = type.GetGenericTypeDefinition(); + return genericDefinition == typeof(IDictionary<,>); + } + + public static bool IsNullableType(Type type) + { + return GetTypeInfo(type).IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>); + } + + public static object ToNullableType(object obj, Type nullableType) + { + return obj == null ? null : Convert.ChangeType(obj, Nullable.GetUnderlyingType(nullableType), CultureInfo.InvariantCulture); + } + + public static bool IsValueType(Type type) + { + return GetTypeInfo(type).IsValueType; + } + + public static IEnumerable GetConstructors(Type type) + { #if SIMPLE_JSON_TYPEINFO return type.GetTypeInfo().DeclaredConstructors; #else - return type.GetConstructors(); + return type.GetConstructors(); #endif - } - - public static ConstructorInfo GetConstructorInfo(Type type, params Type[] argsType) - { - IEnumerable constructorInfos = GetConstructors(type); - int i; - bool matches; - foreach (ConstructorInfo constructorInfo in constructorInfos) - { - ParameterInfo[] parameters = constructorInfo.GetParameters(); - if (argsType.Length != parameters.Length) - continue; - - i = 0; - matches = true; - foreach (ParameterInfo parameterInfo in constructorInfo.GetParameters()) - { - if (parameterInfo.ParameterType != argsType[i]) - { - matches = false; - break; - } - } - - if (matches) - return constructorInfo; - } - - return null; - } - - public static IEnumerable GetProperties(Type type) - { + } + + public static ConstructorInfo GetConstructorInfo(Type type, params Type[] argsType) + { + IEnumerable constructorInfos = GetConstructors(type); + int i; + bool matches; + foreach (ConstructorInfo constructorInfo in constructorInfos) + { + ParameterInfo[] parameters = constructorInfo.GetParameters(); + if (argsType.Length != parameters.Length) + continue; + + i = 0; + matches = true; + foreach (ParameterInfo parameterInfo in constructorInfo.GetParameters()) + { + if (parameterInfo.ParameterType != argsType[i]) + { + matches = false; + break; + } + } + + if (matches) + return constructorInfo; + } + + return null; + } + + public static IEnumerable GetProperties(Type type) + { #if SIMPLE_JSON_TYPEINFO return type.GetTypeInfo().DeclaredProperties; #else - return type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); + return type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); #endif - } + } - public static IEnumerable GetFields(Type type) - { + public static IEnumerable GetFields(Type type) + { #if SIMPLE_JSON_TYPEINFO return type.GetTypeInfo().DeclaredFields; #else - return type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); + return type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); #endif - } + } - public static MethodInfo GetGetterMethodInfo(PropertyInfo propertyInfo) - { + public static MethodInfo GetGetterMethodInfo(PropertyInfo propertyInfo) + { #if SIMPLE_JSON_TYPEINFO return propertyInfo.GetMethod; #else - return propertyInfo.GetGetMethod(true); + return propertyInfo.GetGetMethod(true); #endif - } + } - public static MethodInfo GetSetterMethodInfo(PropertyInfo propertyInfo) - { + public static MethodInfo GetSetterMethodInfo(PropertyInfo propertyInfo) + { #if SIMPLE_JSON_TYPEINFO return propertyInfo.SetMethod; #else - return propertyInfo.GetSetMethod(true); + return propertyInfo.GetSetMethod(true); #endif - } + } - public static ConstructorDelegate GetContructor(ConstructorInfo constructorInfo) - { + public static ConstructorDelegate GetContructor(ConstructorInfo constructorInfo) + { #if SIMPLE_JSON_NO_LINQ_EXPRESSION return GetConstructorByReflection(constructorInfo); #else - return GetConstructorByExpression(constructorInfo); + return GetConstructorByExpression(constructorInfo); #endif - } + } - public static ConstructorDelegate GetContructor(Type type, params Type[] argsType) - { + public static ConstructorDelegate GetContructor(Type type, params Type[] argsType) + { #if SIMPLE_JSON_NO_LINQ_EXPRESSION return GetConstructorByReflection(type, argsType); #else - return GetConstructorByExpression(type, argsType); + return GetConstructorByExpression(type, argsType); #endif - } + } - public static ConstructorDelegate GetConstructorByReflection(ConstructorInfo constructorInfo) - { - return delegate(object[] args) { return constructorInfo.Invoke(args); }; - } + public static ConstructorDelegate GetConstructorByReflection(ConstructorInfo constructorInfo) + { + return delegate(object[] args) { return constructorInfo.Invoke(args); }; + } - public static ConstructorDelegate GetConstructorByReflection(Type type, params Type[] argsType) - { - ConstructorInfo constructorInfo = GetConstructorInfo(type, argsType); - return constructorInfo == null ? null : GetConstructorByReflection(constructorInfo); - } + public static ConstructorDelegate GetConstructorByReflection(Type type, params Type[] argsType) + { + ConstructorInfo constructorInfo = GetConstructorInfo(type, argsType); + return constructorInfo == null ? null : GetConstructorByReflection(constructorInfo); + } #if !SIMPLE_JSON_NO_LINQ_EXPRESSION - public static ConstructorDelegate GetConstructorByExpression(ConstructorInfo constructorInfo) - { - ParameterInfo[] paramsInfo = constructorInfo.GetParameters(); - ParameterExpression param = Expression.Parameter(typeof(object[]), "args"); - Expression[] argsExp = new Expression[paramsInfo.Length]; - for (int i = 0; i < paramsInfo.Length; i++) - { - Expression index = Expression.Constant(i); - Type paramType = paramsInfo[i].ParameterType; - Expression paramAccessorExp = Expression.ArrayIndex(param, index); - Expression paramCastExp = Expression.Convert(paramAccessorExp, paramType); - argsExp[i] = paramCastExp; - } - NewExpression newExp = Expression.New(constructorInfo, argsExp); - Expression> lambda = Expression.Lambda>(newExp, param); - Func compiledLambda = lambda.Compile(); - return delegate(object[] args) { return compiledLambda(args); }; - } - - public static ConstructorDelegate GetConstructorByExpression(Type type, params Type[] argsType) - { - ConstructorInfo constructorInfo = GetConstructorInfo(type, argsType); - return constructorInfo == null ? null : GetConstructorByExpression(constructorInfo); - } + public static ConstructorDelegate GetConstructorByExpression(ConstructorInfo constructorInfo) + { + ParameterInfo[] paramsInfo = constructorInfo.GetParameters(); + ParameterExpression param = Expression.Parameter(typeof(object[]), "args"); + Expression[] argsExp = new Expression[paramsInfo.Length]; + for (int i = 0; i < paramsInfo.Length; i++) + { + Expression index = Expression.Constant(i); + Type paramType = paramsInfo[i].ParameterType; + Expression paramAccessorExp = Expression.ArrayIndex(param, index); + Expression paramCastExp = Expression.Convert(paramAccessorExp, paramType); + argsExp[i] = paramCastExp; + } + NewExpression newExp = Expression.New(constructorInfo, argsExp); + Expression> lambda = Expression.Lambda>(newExp, param); + Func compiledLambda = lambda.Compile(); + return delegate(object[] args) { return compiledLambda(args); }; + } + + public static ConstructorDelegate GetConstructorByExpression(Type type, params Type[] argsType) + { + ConstructorInfo constructorInfo = GetConstructorInfo(type, argsType); + return constructorInfo == null ? null : GetConstructorByExpression(constructorInfo); + } #endif - public static GetDelegate GetGetMethod(PropertyInfo propertyInfo) - { + public static GetDelegate GetGetMethod(PropertyInfo propertyInfo) + { #if SIMPLE_JSON_NO_LINQ_EXPRESSION return GetGetMethodByReflection(propertyInfo); #else - return GetGetMethodByExpression(propertyInfo); + return GetGetMethodByExpression(propertyInfo); #endif - } + } - public static GetDelegate GetGetMethod(FieldInfo fieldInfo) - { + public static GetDelegate GetGetMethod(FieldInfo fieldInfo) + { #if SIMPLE_JSON_NO_LINQ_EXPRESSION return GetGetMethodByReflection(fieldInfo); #else - return GetGetMethodByExpression(fieldInfo); + return GetGetMethodByExpression(fieldInfo); #endif - } + } - public static GetDelegate GetGetMethodByReflection(PropertyInfo propertyInfo) - { - MethodInfo methodInfo = GetGetterMethodInfo(propertyInfo); - return delegate(object source) { return methodInfo.Invoke(source, EmptyObjects); }; - } + public static GetDelegate GetGetMethodByReflection(PropertyInfo propertyInfo) + { + MethodInfo methodInfo = GetGetterMethodInfo(propertyInfo); + return delegate(object source) { return methodInfo.Invoke(source, EmptyObjects); }; + } - public static GetDelegate GetGetMethodByReflection(FieldInfo fieldInfo) - { - return delegate(object source) { return fieldInfo.GetValue(source); }; - } + public static GetDelegate GetGetMethodByReflection(FieldInfo fieldInfo) + { + return delegate(object source) { return fieldInfo.GetValue(source); }; + } #if !SIMPLE_JSON_NO_LINQ_EXPRESSION - public static GetDelegate GetGetMethodByExpression(PropertyInfo propertyInfo) - { - MethodInfo getMethodInfo = GetGetterMethodInfo(propertyInfo); - ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); - UnaryExpression instanceCast = (!IsValueType(propertyInfo.DeclaringType)) ? Expression.TypeAs(instance, propertyInfo.DeclaringType) : Expression.Convert(instance, propertyInfo.DeclaringType); - Func compiled = Expression.Lambda>(Expression.TypeAs(Expression.Call(instanceCast, getMethodInfo), typeof(object)), instance).Compile(); - return delegate(object source) { return compiled(source); }; - } - - public static GetDelegate GetGetMethodByExpression(FieldInfo fieldInfo) - { - ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); - MemberExpression member = Expression.Field(Expression.Convert(instance, fieldInfo.DeclaringType), fieldInfo); - GetDelegate compiled = Expression.Lambda(Expression.Convert(member, typeof(object)), instance).Compile(); - return delegate(object source) { return compiled(source); }; - } + public static GetDelegate GetGetMethodByExpression(PropertyInfo propertyInfo) + { + MethodInfo getMethodInfo = GetGetterMethodInfo(propertyInfo); + ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); + UnaryExpression instanceCast = (!IsValueType(propertyInfo.DeclaringType)) ? Expression.TypeAs(instance, propertyInfo.DeclaringType) : Expression.Convert(instance, propertyInfo.DeclaringType); + Func compiled = Expression.Lambda>(Expression.TypeAs(Expression.Call(instanceCast, getMethodInfo), typeof(object)), instance).Compile(); + return delegate(object source) { return compiled(source); }; + } + + public static GetDelegate GetGetMethodByExpression(FieldInfo fieldInfo) + { + ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); + MemberExpression member = Expression.Field(Expression.Convert(instance, fieldInfo.DeclaringType), fieldInfo); + GetDelegate compiled = Expression.Lambda(Expression.Convert(member, typeof(object)), instance).Compile(); + return delegate(object source) { return compiled(source); }; + } #endif - public static SetDelegate GetSetMethod(PropertyInfo propertyInfo) - { + public static SetDelegate GetSetMethod(PropertyInfo propertyInfo) + { #if SIMPLE_JSON_NO_LINQ_EXPRESSION return GetSetMethodByReflection(propertyInfo); #else - return GetSetMethodByExpression(propertyInfo); + return GetSetMethodByExpression(propertyInfo); #endif - } + } - public static SetDelegate GetSetMethod(FieldInfo fieldInfo) - { + public static SetDelegate GetSetMethod(FieldInfo fieldInfo) + { #if SIMPLE_JSON_NO_LINQ_EXPRESSION return GetSetMethodByReflection(fieldInfo); #else - return GetSetMethodByExpression(fieldInfo); + return GetSetMethodByExpression(fieldInfo); #endif - } + } - public static SetDelegate GetSetMethodByReflection(PropertyInfo propertyInfo) - { - MethodInfo methodInfo = GetSetterMethodInfo(propertyInfo); - return delegate(object source, object value) { methodInfo.Invoke(source, new object[] { value }); }; - } + public static SetDelegate GetSetMethodByReflection(PropertyInfo propertyInfo) + { + MethodInfo methodInfo = GetSetterMethodInfo(propertyInfo); + return delegate(object source, object value) { methodInfo.Invoke(source, new object[] { value }); }; + } - public static SetDelegate GetSetMethodByReflection(FieldInfo fieldInfo) - { - return delegate(object source, object value) { fieldInfo.SetValue(source, value); }; - } + public static SetDelegate GetSetMethodByReflection(FieldInfo fieldInfo) + { + return delegate(object source, object value) { fieldInfo.SetValue(source, value); }; + } #if !SIMPLE_JSON_NO_LINQ_EXPRESSION - public static SetDelegate GetSetMethodByExpression(PropertyInfo propertyInfo) - { - MethodInfo setMethodInfo = GetSetterMethodInfo(propertyInfo); - ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); - ParameterExpression value = Expression.Parameter(typeof(object), "value"); - UnaryExpression instanceCast = (!IsValueType(propertyInfo.DeclaringType)) ? Expression.TypeAs(instance, propertyInfo.DeclaringType) : Expression.Convert(instance, propertyInfo.DeclaringType); - UnaryExpression valueCast = (!IsValueType(propertyInfo.PropertyType)) ? Expression.TypeAs(value, propertyInfo.PropertyType) : Expression.Convert(value, propertyInfo.PropertyType); - Action compiled = Expression.Lambda>(Expression.Call(instanceCast, setMethodInfo, valueCast), new ParameterExpression[] { instance, value }).Compile(); - return delegate(object source, object val) { compiled(source, val); }; - } - - public static SetDelegate GetSetMethodByExpression(FieldInfo fieldInfo) - { - ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); - ParameterExpression value = Expression.Parameter(typeof(object), "value"); - Action compiled = Expression.Lambda>( - Assign(Expression.Field(Expression.Convert(instance, fieldInfo.DeclaringType), fieldInfo), Expression.Convert(value, fieldInfo.FieldType)), instance, value).Compile(); - return delegate(object source, object val) { compiled(source, val); }; - } - - public static BinaryExpression Assign(Expression left, Expression right) - { + public static SetDelegate GetSetMethodByExpression(PropertyInfo propertyInfo) + { + MethodInfo setMethodInfo = GetSetterMethodInfo(propertyInfo); + ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); + ParameterExpression value = Expression.Parameter(typeof(object), "value"); + UnaryExpression instanceCast = (!IsValueType(propertyInfo.DeclaringType)) ? Expression.TypeAs(instance, propertyInfo.DeclaringType) : Expression.Convert(instance, propertyInfo.DeclaringType); + UnaryExpression valueCast = (!IsValueType(propertyInfo.PropertyType)) ? Expression.TypeAs(value, propertyInfo.PropertyType) : Expression.Convert(value, propertyInfo.PropertyType); + Action compiled = Expression.Lambda>(Expression.Call(instanceCast, setMethodInfo, valueCast), new ParameterExpression[] { instance, value }).Compile(); + return delegate(object source, object val) { compiled(source, val); }; + } + + public static SetDelegate GetSetMethodByExpression(FieldInfo fieldInfo) + { + ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); + ParameterExpression value = Expression.Parameter(typeof(object), "value"); + Action compiled = Expression.Lambda>( + Assign(Expression.Field(Expression.Convert(instance, fieldInfo.DeclaringType), fieldInfo), Expression.Convert(value, fieldInfo.FieldType)), instance, value).Compile(); + return delegate(object source, object val) { compiled(source, val); }; + } + + public static BinaryExpression Assign(Expression left, Expression right) + { #if SIMPLE_JSON_TYPEINFO return Expression.Assign(left, right); #else - MethodInfo assign = typeof(Assigner<>).MakeGenericType(left.Type).GetMethod("Assign"); - BinaryExpression assignExpr = Expression.Add(left, right, assign); - return assignExpr; + MethodInfo assign = typeof(Assigner<>).MakeGenericType(left.Type).GetMethod("Assign"); + BinaryExpression assignExpr = Expression.Add(left, right, assign); + return assignExpr; #endif - } + } - private static class Assigner - { - public static T Assign(ref T left, T right) - { - return (left = right); - } - } + private static class Assigner + { + public static T Assign(ref T left, T right) + { + return (left = right); + } + } #endif - public sealed class ThreadSafeDictionary : IDictionary - { - private readonly object _lock = new object(); - private readonly ThreadSafeDictionaryValueFactory _valueFactory; - private Dictionary _dictionary; - - public ThreadSafeDictionary(ThreadSafeDictionaryValueFactory valueFactory) - { - _valueFactory = valueFactory; - } - - private TValue Get(TKey key) - { - if (_dictionary == null) - return AddValue(key); - TValue value; - if (!_dictionary.TryGetValue(key, out value)) - return AddValue(key); - return value; - } - - private TValue AddValue(TKey key) - { - TValue value = _valueFactory(key); - lock (_lock) - { - if (_dictionary == null) - { - _dictionary = new Dictionary(); - _dictionary[key] = value; - } - else - { - TValue val; - if (_dictionary.TryGetValue(key, out val)) - return val; - Dictionary dict = new Dictionary(_dictionary); - dict[key] = value; - _dictionary = dict; - } - } - return value; - } - - public void Add(TKey key, TValue value) - { - throw new NotImplementedException(); - } - - public bool ContainsKey(TKey key) - { - return _dictionary.ContainsKey(key); - } - - public ICollection Keys - { - get { return _dictionary.Keys; } - } - - public bool Remove(TKey key) - { - throw new NotImplementedException(); - } - - public bool TryGetValue(TKey key, out TValue value) - { - value = this[key]; - return true; - } - - public ICollection Values - { - get { return _dictionary.Values; } - } - - public TValue this[TKey key] - { - get { return Get(key); } - set { throw new NotImplementedException(); } - } - - public void Add(KeyValuePair item) - { - throw new NotImplementedException(); - } - - public void Clear() - { - throw new NotImplementedException(); - } - - public bool Contains(KeyValuePair item) - { - throw new NotImplementedException(); - } - - public void CopyTo(KeyValuePair[] array, int arrayIndex) - { - throw new NotImplementedException(); - } - - public int Count - { - get { return _dictionary.Count; } - } - - public bool IsReadOnly - { - get { throw new NotImplementedException(); } - } - - public bool Remove(KeyValuePair item) - { - throw new NotImplementedException(); - } - - public IEnumerator> GetEnumerator() - { - return _dictionary.GetEnumerator(); - } - - System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() - { - return _dictionary.GetEnumerator(); - } - } + public sealed class ThreadSafeDictionary : IDictionary + { + private readonly object _lock = new object(); + private readonly ThreadSafeDictionaryValueFactory _valueFactory; + private Dictionary _dictionary; + + public ThreadSafeDictionary(ThreadSafeDictionaryValueFactory valueFactory) + { + _valueFactory = valueFactory; + } + + private TValue Get(TKey key) + { + if (_dictionary == null) + return AddValue(key); + TValue value; + if (!_dictionary.TryGetValue(key, out value)) + return AddValue(key); + return value; + } + + private TValue AddValue(TKey key) + { + TValue value = _valueFactory(key); + lock (_lock) + { + if (_dictionary == null) + { + _dictionary = new Dictionary(); + _dictionary[key] = value; + } + else + { + TValue val; + if (_dictionary.TryGetValue(key, out val)) + return val; + Dictionary dict = new Dictionary(_dictionary); + dict[key] = value; + _dictionary = dict; + } + } + return value; + } + + public void Add(TKey key, TValue value) + { + throw new NotImplementedException(); + } + + public bool ContainsKey(TKey key) + { + return _dictionary.ContainsKey(key); + } + + public ICollection Keys + { + get { return _dictionary.Keys; } + } + + public bool Remove(TKey key) + { + throw new NotImplementedException(); + } + + public bool TryGetValue(TKey key, out TValue value) + { + value = this[key]; + return true; + } + + public ICollection Values + { + get { return _dictionary.Values; } + } + + public TValue this[TKey key] + { + get { return Get(key); } + set { throw new NotImplementedException(); } + } + + public void Add(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public void Clear() + { + throw new NotImplementedException(); + } + + public bool Contains(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + throw new NotImplementedException(); + } + + public int Count + { + get { return _dictionary.Count; } + } + + public bool IsReadOnly + { + get { throw new NotImplementedException(); } + } + + public bool Remove(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public IEnumerator> GetEnumerator() + { + return _dictionary.GetEnumerator(); + } + + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() + { + return _dictionary.GetEnumerator(); + } + } + + } - } - } -} // ReSharper restore LoopCanBeConvertedToQuery // ReSharper restore RedundantExplicitArrayCreation // ReSharper restore SuggestUseVarKeywordEvident +} \ No newline at end of file diff --git a/src/Elasticsearch.Net/Serialization/Stringifier.cs b/src/Elasticsearch.Net/Serialization/Stringifier.cs index 804721b7976..5889665b464 100644 --- a/src/Elasticsearch.Net/Serialization/Stringifier.cs +++ b/src/Elasticsearch.Net/Serialization/Stringifier.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace Elasticsearch.Net +namespace Elasticsearch.Net.Serialization { public class Stringifier : IStringifier { diff --git a/src/Nest/Domain/Connection/IConnectionSettings.cs b/src/Nest/Domain/Connection/IConnectionSettings.cs index ab07167a4dc..cde8b6a0247 100644 --- a/src/Nest/Domain/Connection/IConnectionSettings.cs +++ b/src/Nest/Domain/Connection/IConnectionSettings.cs @@ -4,6 +4,7 @@ using System.Linq; using Elasticsearch.Net; using Elasticsearch.Net.Connection; +using Elasticsearch.Net.ConnectionPool; using Nest.Resolvers; using Newtonsoft.Json; diff --git a/src/Nest/ExposedInternals/INestSerializer.cs b/src/Nest/ExposedInternals/INestSerializer.cs index 0dc0b6a3262..cb0af864e2f 100644 --- a/src/Nest/ExposedInternals/INestSerializer.cs +++ b/src/Nest/ExposedInternals/INestSerializer.cs @@ -8,6 +8,7 @@ using System.Text.RegularExpressions; using System.Threading; using Elasticsearch.Net; +using Elasticsearch.Net.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; diff --git a/src/Nest/ExposedInternals/NestSerializer.cs b/src/Nest/ExposedInternals/NestSerializer.cs index 97d8498d92d..1e7b9f8e701 100644 --- a/src/Nest/ExposedInternals/NestSerializer.cs +++ b/src/Nest/ExposedInternals/NestSerializer.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using Elasticsearch.Net; +using Elasticsearch.Net.Serialization; using Nest.Resolvers; using Nest.Resolvers.Converters; using Newtonsoft.Json; diff --git a/src/Nest/ExposedInternals/Stringifier.cs b/src/Nest/ExposedInternals/Stringifier.cs index 3e42b53c271..8669fc5a585 100644 --- a/src/Nest/ExposedInternals/Stringifier.cs +++ b/src/Nest/ExposedInternals/Stringifier.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Elasticsearch.Net.Serialization; using Nest; using Nest.Resolvers; diff --git a/src/Profiling/Profiling.Indexing/Serializer/SsTextNestSerializer.cs b/src/Profiling/Profiling.Indexing/Serializer/SsTextNestSerializer.cs index bc982a684b2..6ef064f2cd9 100644 --- a/src/Profiling/Profiling.Indexing/Serializer/SsTextNestSerializer.cs +++ b/src/Profiling/Profiling.Indexing/Serializer/SsTextNestSerializer.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using Elasticsearch.Net; +using Elasticsearch.Net.Serialization; using Nest; using ServiceStack.Text; diff --git a/src/Serialization/Elasticsearch.Net.JsonNET/ElasticsearchJsonNetSerializer.cs b/src/Serialization/Elasticsearch.Net.JsonNET/ElasticsearchJsonNetSerializer.cs index 2aee036956e..8d63357cd53 100644 --- a/src/Serialization/Elasticsearch.Net.JsonNET/ElasticsearchJsonNetSerializer.cs +++ b/src/Serialization/Elasticsearch.Net.JsonNET/ElasticsearchJsonNetSerializer.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Text; +using Elasticsearch.Net.Serialization; using Newtonsoft.Json; namespace Elasticsearch.Net.JsonNet diff --git a/src/Serialization/Elasticsearch.Net.ServiceStackText/ElasticsearchServiceStackSerializer.cs b/src/Serialization/Elasticsearch.Net.ServiceStackText/ElasticsearchServiceStackSerializer.cs index 322b5167112..9ff0589f7b7 100644 --- a/src/Serialization/Elasticsearch.Net.ServiceStackText/ElasticsearchServiceStackSerializer.cs +++ b/src/Serialization/Elasticsearch.Net.ServiceStackText/ElasticsearchServiceStackSerializer.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Elasticsearch.Net.Serialization; using ServiceStack.Text; namespace Elasticsearch.Net.ServiceStackText diff --git a/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs b/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs index 976d7d28091..acd8f820bbd 100644 --- a/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs +++ b/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs @@ -7,6 +7,7 @@ using System.Runtime.Remoting.Channels; using System.Text; using System.Text.RegularExpressions; +using Elasticsearch.Net.Connection; using Elasticsearch.Net.Connection.HttpClient; using Elasticsearch.Net.JsonNet; using Elasticsearch.Net.ServiceStackText; diff --git a/src/Tests/Nest.Tests.Integration/Connection/Failover/SniffTests.cs b/src/Tests/Nest.Tests.Integration/Connection/Failover/SniffTests.cs index a97b757a0d8..b074bd5fd92 100644 --- a/src/Tests/Nest.Tests.Integration/Connection/Failover/SniffTests.cs +++ b/src/Tests/Nest.Tests.Integration/Connection/Failover/SniffTests.cs @@ -3,6 +3,7 @@ using System.Linq; using Elasticsearch.Net; using Elasticsearch.Net.Connection; +using Elasticsearch.Net.ConnectionPool; using FluentAssertions; using NUnit.Framework; using Nest.Tests.MockData.Domain; From 16f79049b4640d76d5399b948fe16c9d6606204e Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Tue, 11 Mar 2014 11:10:19 +0100 Subject: [PATCH 07/15] caught threading bug in a unit test and fixed it by exposing the initial seed for the round robin on the GetNext() call. This allows callee's to reseed themselves and will ensure all the indivual nodes are tried when max retries equals number of known hosts --- .../ThriftConnection.cs | 4 +- .../Connection/ConcurrencyTests.cs | 128 ++++++++++++++++++ .../Connection/SniffingConnectionPoolTests.cs | 60 ++++++++ .../StaticConnectionPoolRetryTests.cs | 2 +- .../Elasticsearch.Net.Tests.Unit.csproj | 1 + .../Connection/HttpConnection.cs | 51 +++---- .../Connection/ITransport.cs | 2 +- src/Elasticsearch.Net/Connection/Transport.cs | 12 +- .../ConnectionPool/IConnectionPool.cs | 2 +- .../SingleNodeConnectionPool.cs | 3 +- .../ConnectionPool/SniffingConnectionPool.cs | 8 +- .../ConnectionPool/StaticConnectionPool.cs | 18 ++- 12 files changed, 250 insertions(+), 41 deletions(-) create mode 100644 src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs diff --git a/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs b/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs index b9e469b8488..dd3918d1d64 100644 --- a/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs +++ b/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs @@ -28,10 +28,10 @@ public ThriftConnection(IConnectionConfigurationValues connectionSettings) this._poolSize = Math.Max(1, connectionSettings.MaximumAsyncConnections); this._resourceLock = new Semaphore(_poolSize, _poolSize); - + int seed; for (var i = 0; i <= connectionSettings.MaximumAsyncConnections; i++) { - var uri = this._connectionSettings.ConnectionPool.GetNext(); + var uri = this._connectionSettings.ConnectionPool.GetNext(null, out seed); var host = uri.Host; var port = uri.Port; var tsocket = new TSocket(host, port); diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs new file mode 100644 index 00000000000..bd3ff5b7bbe --- /dev/null +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs @@ -0,0 +1,128 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Autofac; +using Autofac.Core.Activators.Reflection; +using Autofac.Extras.FakeItEasy; +using Elasticsearch.Net.Connection; +using Elasticsearch.Net.ConnectionPool; +using Elasticsearch.Net.Exceptions; +using Elasticsearch.Net.Providers; +using Elasticsearch.Net.Tests.Unit.Stubs; +using FakeItEasy; +using FluentAssertions; +using NUnit.Framework; + +namespace Elasticsearch.Net.Tests.Unit.Connection +{ + [TestFixture] + public class ConcurrencyTests + { + private static Uri[] _uris = new[] + { + new Uri("http://localhost:9200"), + new Uri("http://localhost:9201"), + new Uri("http://localhost:9202"), + new Uri("http://localhost:9203"), + }; + private static readonly int _retries = _uris.Count() - 1; + private readonly StaticConnectionPool _connectionPool; + private readonly ConnectionConfiguration _config; + + public ConcurrencyTests() + { + _connectionPool = new SniffingConnectionPool(_uris); + _config = new ConnectionConfiguration(_connectionPool) + .SnifsOnConnectionFault() + .SniffOnStartup(); + } + + private void ProvideTransport(AutoFake fake) + { + var param = new TypedParameter(typeof(IDateTimeProvider), null); + fake.Provide(param); + } + [Test] + public void CallInfo40000TimesOnMultipleThreads() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + //set up connection configuration that holds a connection pool + //with '_uris' (see the constructor) + fake.Provide(_config); + //prove a real HttpTransport with its unspecified dependencies + //as fakes + + //set up fake for a call on IConnection.GetSync so that it always throws + //an exception + var connection = fake.Provide(new ConcurrencyTestConnection(this._config)); + this.ProvideTransport(fake); + //create a real ElasticsearchClient with it unspecified dependencies + //as fakes + var client = fake.Resolve(); + int seen = 0; + Assert.DoesNotThrow(()=> + { + Action a = () => + { + for(var i=0;i<10000;i++) + { + client.Info(); + Interlocked.Increment(ref seen); + } + }; + var thread1 = new Thread(()=>a()); + var thread2 = new Thread(()=>a()); + var thread3 = new Thread(()=>a()); + var thread4 = new Thread(()=>a()); + thread1.Start(); + thread2.Start(); + thread3.Start(); + thread4.Start(); + thread1.Join(); + thread2.Join(); + thread3.Join(); + thread4.Join(); + + }); + seen.Should().Be(40000); + } + } + + public class ConcurrencyTestConnection : InMemoryConnection + { + private static Uri[] _uris = new[] + { + new Uri("http://localhost:9200"), + new Uri("http://localhost:9201"), + new Uri("http://localhost:9202"), + new Uri("http://localhost:9203"), + }; + private readonly Random _rnd = new Random(); + public ConcurrencyTestConnection(IConnectionConfigurationValues settings) : base(settings) + { + } + + public override IList Sniff(Uri uri, int connectTimeout) + { + return _uris; + } + + public override ElasticsearchResponse GetSync(Uri uri) + { + var statusCode = _rnd.Next(1, 11) % 7 == 0 ? 503 : 200; + if (uri.Port == 9202) + statusCode = 200; + + return ElasticsearchResponse.Create(this._ConnectionSettings, statusCode, "GET", "/", null, null); + + } + } + + } +} diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs index 7a8afd0f832..0201ab3e6f9 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs @@ -166,6 +166,66 @@ public void SniffOnConnectionFaultCausesSniffOn503() sniffCall.MustHaveHappened(Repeated.Exactly.Once); nowCall.MustHaveHappened(Repeated.Exactly.Times(7)); + //var nowCall = A.CallTo(() => fake.Resolve().Sniff(A._, A._)); + } + } + [Test] + public void HostsReturnedBySniffAreVisited() + { + using (var fake = new AutoFake()) + { + var dateTimeProvider = fake.Resolve(); + var nowCall = A.CallTo(()=>dateTimeProvider.Now()); + nowCall.Returns(DateTime.UtcNow); + + var connectionPool = new SniffingConnectionPool(new[] + { + new Uri("http://localhost:9200"), + new Uri("http://localhost:9201") + }, randomizeOnStartup: false); + var config = new ConnectionConfiguration(connectionPool) + .SnifsOnConnectionFault(); + fake.Provide(config); + fake.Provide(fake.Resolve()); + var connection = fake.Resolve(); + var sniffCall = A.CallTo(() => connection.Sniff(A._, A._)); + sniffCall.Returns(new List() + { + new Uri("http://localhost:9204"), + new Uri("http://localhost:9203"), + new Uri("http://localhost:9202"), + new Uri("http://localhost:9201") + }); + + var seenNodes = new List(); + var getCall = A.CallTo(() => connection.GetSync(A._)); + getCall.ReturnsNextFromSequence( + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 1 + ElasticsearchResponse.Create(config, 503, "GET", "/", null, null), //info 2 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 2 retry + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 3 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 4 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null) //info 5 + ); + getCall.Invokes((Uri u) => seenNodes.Add(u)); + + var client1 = fake.Resolve(); + client1.Info(); //info call 1 + client1.Info(); //info call 2 + client1.Info(); //info call 3 + client1.Info(); //info call 4 + client1.Info(); //info call 5 + + sniffCall.MustHaveHappened(Repeated.Exactly.Once); + seenNodes.Should().NotBeEmpty().And.HaveCount(6); + seenNodes[0].Port.Should().Be(9200); + seenNodes[1].Port.Should().Be(9201); + //after sniff + seenNodes[2].Port.Should().Be(9204); + seenNodes[3].Port.Should().Be(9203); + seenNodes[4].Port.Should().Be(9202); + seenNodes[5].Port.Should().Be(9201); + //var nowCall = A.CallTo(() => fake.Resolve().Sniff(A._, A._)); } } diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs index 57d6417994b..005b8b8908b 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs @@ -17,7 +17,7 @@ using FluentAssertions; using NUnit.Framework; -namespace Elasticsearch.Net.Tests.Unit.Connection +namespace Elasticsearch.Net.Tests.Unit.ConnectionA { [TestFixture] public class StaticConnectionPoolRetryTests diff --git a/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj b/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj index 6824207a07e..d369cd5c8b8 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj +++ b/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj @@ -61,6 +61,7 @@ + diff --git a/src/Elasticsearch.Net/Connection/HttpConnection.cs b/src/Elasticsearch.Net/Connection/HttpConnection.cs index ce2cc4bda11..69287724246 100644 --- a/src/Elasticsearch.Net/Connection/HttpConnection.cs +++ b/src/Elasticsearch.Net/Connection/HttpConnection.cs @@ -39,35 +39,35 @@ public HttpConnection(IConnectionConfigurationValues settings) this._enableTrace = settings.TraceEnabled; } - public ElasticsearchResponse GetSync(Uri uri) + public virtual ElasticsearchResponse GetSync(Uri uri) { return this.HeaderOnlyRequest(uri, "GET"); } - public ElasticsearchResponse HeadSync(Uri uri) + public virtual ElasticsearchResponse HeadSync(Uri uri) { return this.HeaderOnlyRequest(uri, "HEAD"); } - public ElasticsearchResponse PostSync(Uri uri, byte[] data) + public virtual ElasticsearchResponse PostSync(Uri uri, byte[] data) { return this.BodyRequest(uri, data, "POST"); } - public ElasticsearchResponse PutSync(Uri uri, byte[] data) + public virtual ElasticsearchResponse PutSync(Uri uri, byte[] data) { return this.BodyRequest(uri, data, "PUT"); } - public ElasticsearchResponse DeleteSync(Uri uri) + public virtual ElasticsearchResponse DeleteSync(Uri uri) { var connection = this.CreateHttpWebRequest(uri, "DELETE"); return this.DoSynchronousRequest(connection); } - public ElasticsearchResponse DeleteSync(Uri uri, byte[] data) + public virtual ElasticsearchResponse DeleteSync(Uri uri, byte[] data) { var connection = this.CreateHttpWebRequest(uri, "DELETE"); return this.DoSynchronousRequest(connection, data); } - public bool Ping(Uri uri, int connectTimeout) + public virtual bool Ping(Uri uri, int connectTimeout) { var request = this.CreateHttpWebRequest(uri, "HEAD"); request.Timeout = connectTimeout; @@ -78,7 +78,7 @@ public bool Ping(Uri uri, int connectTimeout) } } - public IList Sniff(Uri uri, int connectTimeout) + public virtual IList Sniff(Uri uri, int connectTimeout) { uri = new Uri(uri, "_nodes/_all/clear?timeout=" + connectTimeout); var request = this.CreateHttpWebRequest(uri, "GET"); @@ -93,34 +93,34 @@ public IList Sniff(Uri uri, int connectTimeout) } } - public Task Get(Uri uri) + public virtual Task Get(Uri uri) { var r = this.CreateHttpWebRequest(uri, "GET"); return this.DoAsyncRequest(r); } - public Task Head(Uri uri) + public virtual Task Head(Uri uri) { var r = this.CreateHttpWebRequest(uri, "HEAD"); return this.DoAsyncRequest(r); } - public Task Post(Uri uri, byte[] data) + public virtual Task Post(Uri uri, byte[] data) { var r = this.CreateHttpWebRequest(uri, "POST"); return this.DoAsyncRequest(r, data); } - public Task Put(Uri uri, byte[] data) + public virtual Task Put(Uri uri, byte[] data) { var r = this.CreateHttpWebRequest(uri, "PUT"); return this.DoAsyncRequest(r, data); } - public Task Delete(Uri uri, byte[] data) + public virtual Task Delete(Uri uri, byte[] data) { var r = this.CreateHttpWebRequest(uri, "DELETE"); return this.DoAsyncRequest(r, data); } - public Task Delete(Uri uri) + public virtual Task Delete(Uri uri) { var r = this.CreateHttpWebRequest(uri, "DELETE"); return this.DoAsyncRequest(r); @@ -371,17 +371,20 @@ public void Iterate(HttpWebRequest request, byte[] data, IEnumerable async private Uri _CreateUriString(string path) { - var s = this._ConnectionSettings; - var uri = s.ConnectionPool.GetNext(); + //TODO reapply this + return null; - if (s.QueryStringParameters != null) - { - var tempUri = new Uri(uri, path); - var qs = s.QueryStringParameters.ToQueryString(tempUri.Query.IsNullOrEmpty() ? "?" : "&"); - path += qs; - } - uri = path.IsNullOrEmpty() ? uri : new Uri(uri, path); - return uri.Purify(); + //var s = this._ConnectionSettings; + ////var uri = s.ConnectionPool.GetNext(); + + //if (s.QueryStringParameters != null) + //{ + // var tempUri = new Uri(uri, path); + // var qs = s.QueryStringParameters.ToQueryString(tempUri.Query.IsNullOrEmpty() ? "?" : "&"); + // path += qs; + //} + //uri = path.IsNullOrEmpty() ? uri : new Uri(uri, path); + //return uri.Purify(); } } diff --git a/src/Elasticsearch.Net/Connection/ITransport.cs b/src/Elasticsearch.Net/Connection/ITransport.cs index 51faed26f1c..69e0d70c1bd 100644 --- a/src/Elasticsearch.Net/Connection/ITransport.cs +++ b/src/Elasticsearch.Net/Connection/ITransport.cs @@ -5,7 +5,7 @@ namespace Elasticsearch.Net.Connection { public interface ITransport { - ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0); + ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0, int? seed = null); Task DoRequestAsync( string method, diff --git a/src/Elasticsearch.Net/Connection/Transport.cs b/src/Elasticsearch.Net/Connection/Transport.cs index 9d74c0735e0..7ff2922bbb2 100644 --- a/src/Elasticsearch.Net/Connection/Transport.cs +++ b/src/Elasticsearch.Net/Connection/Transport.cs @@ -53,7 +53,7 @@ private int GetMaximumRetries() return this._configurationValues.MaxRetries.GetValueOrDefault(this._connectionPool.MaxRetries); } - public ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0) + public ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0, int? seed = null) { SniffIfInformationIsTooOld(retried); @@ -65,7 +65,8 @@ public ElasticsearchResponse DoRequest(string method, string path, object data = ElasticsearchResponse response = null; var exceptionMessage = "Unable to perform request: '{0} {1}' on any of the nodes after retrying {2} times." .F( method, path, retried); - var baseUri = this._connectionPool.GetNext(); + int initialSeed; + var baseUri = this._connectionPool.GetNext(seed, out initialSeed); bool seenError = false; try { @@ -82,7 +83,7 @@ public ElasticsearchResponse DoRequest(string method, string path, object data = this.Sniff(); if (retried < maxRetries) { - return this.DoRequest(method, path, data, null, ++retried); + return this.DoRequest(method, path, data, null, ++retried, initialSeed); } else throw new OutOfNodesException(exceptionMessage, e); @@ -99,7 +100,7 @@ public ElasticsearchResponse DoRequest(string method, string path, object data = if (retried < maxRetries) { - return this.DoRequest(method, path, data, null, ++retried); + return this.DoRequest(method, path, data, null, ++retried, initialSeed); } throw new OutOfNodesException(exceptionMessage); } @@ -120,7 +121,8 @@ public Task DoRequestAsync( path += queryString.ToQueryString(); var postData = PostData(data); - var baseUri = this._connectionPool.GetNext(); + int seed; + var baseUri = this._connectionPool.GetNext(null, out seed); var uri = new Uri(baseUri, path); switch (method.ToLowerInvariant()) diff --git a/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs index 68092a2b41d..32980117da0 100644 --- a/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs @@ -15,7 +15,7 @@ public interface IConnectionPool /// /// Get the next available Uri for a live node /// - Uri GetNext(); + Uri GetNext(int? initialSeed, out int seed); /// /// Mark the specified Uri as dead diff --git a/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs index 13b59518231..084715454ef 100644 --- a/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs @@ -18,8 +18,9 @@ public SingleNodeConnectionPool(Uri uri) _uri = uri; } - public Uri GetNext() + public Uri GetNext(int? initialSeed, out int seed) { + seed = 0; return _uri; } diff --git a/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs index dc2a152466f..d92e0837a1d 100644 --- a/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs @@ -28,7 +28,8 @@ public override void Sniff(IConnection connection, bool fromStartupHint = false) try { - var uri = this.GetNext(); + int seed; + var uri = this.GetNext(null, out seed); this._readerWriter.EnterWriteLock(); var nodes = connection.Sniff(uri, 50); @@ -39,6 +40,7 @@ public override void Sniff(IConnection connection, bool fromStartupHint = false) this._uriLookup = nodes.ToDictionary(k => k, v => new EndpointState()); if (fromStartupHint) this._seenStartup = true; + this._current = -1; } finally @@ -47,12 +49,12 @@ public override void Sniff(IConnection connection, bool fromStartupHint = false) } } - public override Uri GetNext() + public override Uri GetNext(int? initialSeed, out int seed) { try { this._readerWriter.EnterReadLock(); - return base.GetNext(); + return base.GetNext(initialSeed, out seed); } finally { diff --git a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs index 43d0636cfe0..c8d930bdf8f 100644 --- a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs @@ -14,7 +14,7 @@ public class StaticConnectionPool : IConnectionPool public int MaxRetries { get { return _nodeUris.Count - 1; } } - private int _current = -1; + protected int _current = -1; private readonly IDateTimeProvider _dateTimeProvider; public StaticConnectionPool( @@ -31,9 +31,20 @@ public StaticConnectionPool( _uriLookup = _nodeUris.ToDictionary(k=>k, v=> new EndpointState()); } - public virtual Uri GetNext() + public virtual Uri GetNext(int? initialSeed, out int seed) { - var initialOffset = Interlocked.Increment(ref _current); + //if _current has been reset make sure we ignore any seed + //that was given out before the reset + if (_current == -1 && initialSeed.HasValue) + initialSeed = 0; + //always increment the initialSeed so we advance further + else if (initialSeed.HasValue) + initialSeed += 1; + + //always increment our round robin counter + int increment = Interlocked.Increment(ref _current); + var initialOffset = initialSeed ?? increment; + seed = initialOffset; var count = _nodeUris.Count; int i = initialOffset % count, attempts = 0; Uri uri = null; @@ -83,6 +94,7 @@ public virtual void MarkAlive(Uri uri) public virtual void Sniff(IConnection connection, bool fromStartupHint = false) { + this._current = -1; //NOOP on static connection class } } From 5db1ce44a891d64a957a5256151f587010d74af2 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Tue, 11 Mar 2014 11:46:25 +0100 Subject: [PATCH 08/15] instead of reseting round robin after a sniff let it count onwards --- .../Connection/ConcurrencyTests.cs | 29 ++++++++++++++----- .../Connection/SniffingConnectionPoolTests.cs | 21 ++++++++++---- .../ConnectionPool/SniffingConnectionPool.cs | 1 - .../ConnectionPool/StaticConnectionPool.cs | 12 ++------ 4 files changed, 39 insertions(+), 24 deletions(-) diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs index bd3ff5b7bbe..d7eccd7c86a 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs @@ -39,7 +39,8 @@ public ConcurrencyTests() _connectionPool = new SniffingConnectionPool(_uris); _config = new ConnectionConfiguration(_connectionPool) .SnifsOnConnectionFault() - .SniffOnStartup(); + .SniffOnStartup() + .SetMaxRetries(5); } private void ProvideTransport(AutoFake fake) @@ -58,12 +59,9 @@ public void CallInfo40000TimesOnMultipleThreads() //prove a real HttpTransport with its unspecified dependencies //as fakes - //set up fake for a call on IConnection.GetSync so that it always throws - //an exception var connection = fake.Provide(new ConcurrencyTestConnection(this._config)); this.ProvideTransport(fake); - //create a real ElasticsearchClient with it unspecified dependencies - //as fakes + //create a real ElasticsearchClient with it unspecified dependencies as fakes var client = fake.Resolve(); int seen = 0; Assert.DoesNotThrow(()=> @@ -93,7 +91,14 @@ public void CallInfo40000TimesOnMultipleThreads() seen.Should().Be(40000); } } - + /// + /// This simulates a super flakey elasticsearch cluster. + /// - if random 1-9 is a muliple of 3 throw a 503 + /// - never throws on node 9202 though so that all calls can be expected to always succeed. + /// - Sniff can either get back the full cluster or a sufficient subset of it. + /// - Our cluster have 5 nodes the recommendation is to have N/2+1 masters so we should atleast see 3 nodes + /// - anything less would cause a node to be unavailable which is covered in other tests + /// public class ConcurrencyTestConnection : InMemoryConnection { private static Uri[] _uris = new[] @@ -102,6 +107,14 @@ public class ConcurrencyTestConnection : InMemoryConnection new Uri("http://localhost:9201"), new Uri("http://localhost:9202"), new Uri("http://localhost:9203"), + new Uri("http://localhost:9206"), + }; + + private static Uri[] _uris2 = new[] + { + new Uri("http://localhost:9202"), + new Uri("http://localhost:9201"), + new Uri("http://localhost:9206"), }; private readonly Random _rnd = new Random(); public ConcurrencyTestConnection(IConnectionConfigurationValues settings) : base(settings) @@ -110,12 +123,12 @@ public ConcurrencyTestConnection(IConnectionConfigurationValues settings) : base public override IList Sniff(Uri uri, int connectTimeout) { - return _uris; + return _rnd.Next(1, 11) % 3 == 0 ? _uris : _uris2; } public override ElasticsearchResponse GetSync(Uri uri) { - var statusCode = _rnd.Next(1, 11) % 7 == 0 ? 503 : 200; + var statusCode = _rnd.Next(1, 9) % 3 == 0 ? 503 : 200; if (uri.Port == 9202) statusCode = 200; diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs index 0201ab3e6f9..c65b083f558 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs @@ -205,7 +205,11 @@ public void HostsReturnedBySniffAreVisited() ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 2 retry ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 3 ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 4 - ElasticsearchResponse.Create(config, 200, "GET", "/", null, null) //info 5 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 5 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 6 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 7 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 8 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null) //info 9 ); getCall.Invokes((Uri u) => seenNodes.Add(u)); @@ -215,16 +219,21 @@ public void HostsReturnedBySniffAreVisited() client1.Info(); //info call 3 client1.Info(); //info call 4 client1.Info(); //info call 5 + client1.Info(); //info call 6 + client1.Info(); //info call 7 + client1.Info(); //info call 8 + client1.Info(); //info call 9 sniffCall.MustHaveHappened(Repeated.Exactly.Once); - seenNodes.Should().NotBeEmpty().And.HaveCount(6); + seenNodes.Should().NotBeEmpty().And.HaveCount(10); seenNodes[0].Port.Should().Be(9200); seenNodes[1].Port.Should().Be(9201); //after sniff - seenNodes[2].Port.Should().Be(9204); - seenNodes[3].Port.Should().Be(9203); - seenNodes[4].Port.Should().Be(9202); - seenNodes[5].Port.Should().Be(9201); + seenNodes[2].Port.Should().Be(9202); + seenNodes[3].Port.Should().Be(9204, string.Join(",", seenNodes.Select(n=>n.Port))); + seenNodes[4].Port.Should().Be(9203); + seenNodes[5].Port.Should().Be(9202); + seenNodes[6].Port.Should().Be(9201); //var nowCall = A.CallTo(() => fake.Resolve().Sniff(A._, A._)); } diff --git a/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs index d92e0837a1d..c55d060f3c5 100644 --- a/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs @@ -40,7 +40,6 @@ public override void Sniff(IConnection connection, bool fromStartupHint = false) this._uriLookup = nodes.ToDictionary(k => k, v => new EndpointState()); if (fromStartupHint) this._seenStartup = true; - this._current = -1; } finally diff --git a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs index c8d930bdf8f..cb0e4e4e635 100644 --- a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs @@ -33,20 +33,15 @@ public StaticConnectionPool( public virtual Uri GetNext(int? initialSeed, out int seed) { - //if _current has been reset make sure we ignore any seed - //that was given out before the reset - if (_current == -1 && initialSeed.HasValue) - initialSeed = 0; - //always increment the initialSeed so we advance further - else if (initialSeed.HasValue) + var count = _nodeUris.Count; + if (initialSeed.HasValue) initialSeed += 1; //always increment our round robin counter int increment = Interlocked.Increment(ref _current); var initialOffset = initialSeed ?? increment; - seed = initialOffset; - var count = _nodeUris.Count; int i = initialOffset % count, attempts = 0; + seed = i; Uri uri = null; do { @@ -94,7 +89,6 @@ public virtual void MarkAlive(Uri uri) public virtual void Sniff(IConnection connection, bool fromStartupHint = false) { - this._current = -1; //NOOP on static connection class } } From 0718f0fb5480d3ed64b6e9cae00ee43e7251c7c4 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Tue, 11 Mar 2014 13:23:41 +0100 Subject: [PATCH 09/15] started on skip nodes tests --- .../Connection/SkipDeadNodesTests.cs | 108 ++++++++++++++++++ .../Elasticsearch.Net.Tests.Unit.csproj | 1 + .../ConnectionPool/StaticConnectionPool.cs | 9 +- 3 files changed, 115 insertions(+), 3 deletions(-) create mode 100644 src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs new file mode 100644 index 00000000000..7cdba7b481e --- /dev/null +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Autofac; +using Autofac.Core.Activators.Reflection; +using Autofac.Extras.FakeItEasy; +using Elasticsearch.Net.Connection; +using Elasticsearch.Net.ConnectionPool; +using Elasticsearch.Net.Exceptions; +using Elasticsearch.Net.Providers; +using Elasticsearch.Net.Tests.Unit.Stubs; +using FakeItEasy; +using FluentAssertions; +using NUnit.Framework; + +namespace Elasticsearch.Net.Tests.Unit.Connection +{ + [TestFixture] + public class SkipDeadNodesTests + { + [Test] + public void DeadNodesAreNotVisited() + { + using (var fake = new AutoFake()) + { + var now = DateTime.UtcNow; + var dateTimeProvider = fake.Resolve(); + var nowCall = A.CallTo(()=>dateTimeProvider.Now()); + nowCall.ReturnsNextFromSequence( + DateTime.UtcNow, //info 1 + DateTime.UtcNow, //info 2 + DateTime.UtcNow, //info 2 retry + DateTime.UtcNow, //info 3 + DateTime.UtcNow, //info 4 + DateTime.UtcNow, //info 5 pass over node 3 + DateTime.UtcNow, //info 5 + DateTime.UtcNow, //info 6 + DateTime.UtcNow.AddMinutes(2), //info 7 + DateTime.UtcNow.AddMinutes(2), //info 8 + DateTime.UtcNow.AddMinutes(2) //info 9 + ); + A.CallTo(()=>dateTimeProvider.AliveTime(A._, A._)) + .Returns(new DateTime()); + A.CallTo(() => dateTimeProvider.DeadTime(A._, A._)) + .Returns(DateTime.UtcNow.AddMinutes(1)); + //make sure the transport layer uses a different datetimeprovider + fake.Provide(new DateTimeProvider()); + var connectionPool = new StaticConnectionPool(new[] + { + new Uri("http://localhost:9204"), + new Uri("http://localhost:9203"), + new Uri("http://localhost:9202"), + new Uri("http://localhost:9201") + }, randomizeOnStartup: false, dateTimeProvider: dateTimeProvider); + var config = new ConnectionConfiguration(connectionPool); + fake.Provide(config); + fake.Provide(fake.Resolve()); + var connection = fake.Resolve(); + + var seenNodes = new List(); + var getCall = A.CallTo(() => connection.GetSync(A._)); + getCall.ReturnsNextFromSequence( + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 1 - 9204 + ElasticsearchResponse.Create(config, 503, "GET", "/", null, null), //info 2 - 9203 DEAD + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 2 retry - 9202 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 3 - 9201 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 4 - 9204 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 5 - 9202 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 6 - 9201 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 7 - 9204 + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 8 - 9203 (Now > Timeout) + ElasticsearchResponse.Create(config, 200, "GET", "/", null, null) //info 9 - 9202 + ); + getCall.Invokes((Uri u) => seenNodes.Add(u)); + + var client1 = fake.Resolve(); + client1.Info(); //info call 1 + client1.Info(); //info call 2 + client1.Info(); //info call 3 + client1.Info(); //info call 4 + client1.Info(); //info call 5 + client1.Info(); //info call 6 + client1.Info(); //info call 7 + client1.Info(); //info call 8 + client1.Info(); //info call 9 + + seenNodes.Should().NotBeEmpty().And.HaveCount(10); + seenNodes[0].Port.Should().Be(9204); + seenNodes[1].Port.Should().Be(9203); + //after sniff + seenNodes[2].Port.Should().Be(9202); + seenNodes[3].Port.Should().Be(9201); + seenNodes[4].Port.Should().Be(9204); + seenNodes[5].Port.Should().Be(9202); + seenNodes[6].Port.Should().Be(9201); + seenNodes[7].Port.Should().Be(9204); + seenNodes[8].Port.Should().Be(9203); + + //var nowCall = A.CallTo(() => fake.Resolve().Sniff(A._, A._)); + } + } + } +} diff --git a/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj b/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj index d369cd5c8b8..738ec2a3180 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj +++ b/src/Elasticsearch.Net.Tests.Unit/Elasticsearch.Net.Tests.Unit.csproj @@ -60,6 +60,7 @@ + diff --git a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs index cb0e4e4e635..a1aa6b7c252 100644 --- a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs @@ -49,7 +49,8 @@ public virtual Uri GetNext(int? initialSeed, out int seed) var state = this._uriLookup[uri]; lock (state) { - if (state.date <= _dateTimeProvider.Now()) + var now = _dateTimeProvider.Now(); + if (state.date <= now) { state._attempts = 0; return uri; @@ -58,10 +59,11 @@ public virtual Uri GetNext(int? initialSeed, out int seed) Interlocked.Increment(ref state._attempts); ++attempts; i = (++initialOffset) % count; + seed = i; } while (attempts < count); //could not find a suitable node retrying on node that has been dead longest. - return this._nodeUris[0]; //todo random; + return this._nodeUris[i]; //todo random; } public virtual void MarkDead(Uri uri) @@ -82,7 +84,8 @@ public virtual void MarkAlive(Uri uri) return; lock (state) { - state.date = this._dateTimeProvider.AliveTime(uri, state._attempts); + var aliveTime =this._dateTimeProvider.AliveTime(uri, state._attempts); + state.date = aliveTime; state._attempts = 0; } } From 272692b2e181185659c98979a9e10e1740d7693b Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Tue, 11 Mar 2014 13:27:44 +0100 Subject: [PATCH 10/15] Made sure that dead nodes are skipped in a coherent fashion, and come back alive when their timeout has expired --- src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs index a1aa6b7c252..b4daeee2272 100644 --- a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs @@ -55,6 +55,7 @@ public virtual Uri GetNext(int? initialSeed, out int seed) state._attempts = 0; return uri; } + Interlocked.Increment(ref _current); } Interlocked.Increment(ref state._attempts); ++attempts; From 96be58b74276d2c450eba2bc00e79720d15be7fa Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Tue, 11 Mar 2014 15:56:04 +0100 Subject: [PATCH 11/15] made sure async codepath retries properly too --- .../Connection/RetryTests.cs | 73 ++++++++- .../Connection/SkipDeadNodesTests.cs | 85 ++++++++++ .../Connection/ITransport.cs | 2 +- src/Elasticsearch.Net/Connection/Transport.cs | 145 ++++++++++++------ .../Providers/DateTimeProvider.cs | 9 +- 5 files changed, 258 insertions(+), 56 deletions(-) diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs index ad33949b462..9c275e4bf02 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/RetryTests.cs @@ -51,6 +51,35 @@ public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() } } + [Test] + public async void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes_Async() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + fake.Provide(_connectionConfig); + this.ProvideTransport(fake); + var getCall = A.CallTo(() => fake.Resolve().Get(A._)); + Func badTask = () => { throw new Exception(); }; + var t = new Task(badTask); + t.Start(); + getCall.Returns(t); + + var client = fake.Resolve(); + + client.Settings.MaxRetries.Should().Be(_retries); + try + { + var result = await client.InfoAsync(); + } + catch (Exception e) + { + Assert.AreEqual(e.GetType(), typeof(OutOfNodesException)); + } + getCall.MustHaveHappened(Repeated.Exactly.Times(_retries + 1)); + + } + } + [Test] public void ShouldNotRetryOn400() { @@ -69,7 +98,24 @@ public void ShouldNotRetryOn400() } } - + [Test] + public async void ShouldNotRetryOn400_Async() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + var settings = fake.Provide(_connectionConfig); + this.ProvideTransport(fake); + + var getCall = A.CallTo(() => fake.Resolve().Get(A._)); + getCall.Returns(Task.FromResult(ElasticsearchResponse.Create(settings, 400, "GET", "/", null, null))); + + var client = fake.Resolve(); + + var result = await client.InfoAsync(); + getCall.MustHaveHappened(Repeated.Exactly.Once); + + } + } [Test] public void ShouldNotRetryOn500() { @@ -126,5 +172,30 @@ public void ShouldRetryOn503() } } + + [Test] + public async void ShouldRetryOn503_Async() + { + using (var fake = new AutoFake(callsDoNothing: true)) + { + var settings = fake.Provide(_connectionConfig); + this.ProvideTransport(fake); + + var getCall = A.CallTo(() => fake.Resolve().Get(A._)); + getCall.Returns(Task.FromResult(ElasticsearchResponse.Create(settings, 503, "GET", "/", null, null))); + + var client = fake.Resolve(); + try + { + var result = await client.InfoAsync(); + } + catch (Exception e) + { + Assert.AreEqual(e.GetType(), typeof(OutOfNodesException)); + } + getCall.MustHaveHappened(Repeated.Exactly.Times(_retries + 1)); + + } + } } } diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs index 7cdba7b481e..1b2312c3d75 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs @@ -104,5 +104,90 @@ public void DeadNodesAreNotVisited() //var nowCall = A.CallTo(() => fake.Resolve().Sniff(A._, A._)); } } + + [Test] + public async void DeadNodesAreNotVisited_Async() + { + using (var fake = new AutoFake()) + { + var now = DateTime.UtcNow; + var dateTimeProvider = fake.Resolve(); + var nowCall = A.CallTo(()=>dateTimeProvider.Now()); + nowCall.ReturnsNextFromSequence( + DateTime.UtcNow, //info 1 + DateTime.UtcNow, //info 2 + DateTime.UtcNow, //info 2 retry + DateTime.UtcNow, //info 3 + DateTime.UtcNow, //info 4 + DateTime.UtcNow, //info 5 pass over node 3 + DateTime.UtcNow, //info 5 + DateTime.UtcNow, //info 6 + DateTime.UtcNow.AddMinutes(2), //info 7 + DateTime.UtcNow.AddMinutes(2), //info 8 + DateTime.UtcNow.AddMinutes(2) //info 9 + ); + A.CallTo(()=>dateTimeProvider.AliveTime(A._, A._)) + .Returns(new DateTime()); + A.CallTo(() => dateTimeProvider.DeadTime(A._, A._)) + .Returns(DateTime.UtcNow.AddMinutes(1)); + //make sure the transport layer uses a different datetimeprovider + fake.Provide(new DateTimeProvider()); + var connectionPool = new StaticConnectionPool(new[] + { + new Uri("http://localhost:9204"), + new Uri("http://localhost:9203"), + new Uri("http://localhost:9202"), + new Uri("http://localhost:9201") + }, randomizeOnStartup: false, dateTimeProvider: dateTimeProvider); + var config = new ConnectionConfiguration(connectionPool); + fake.Provide(config); + fake.Provide(fake.Resolve()); + var connection = fake.Resolve(); + + var ok = Task.FromResult(ElasticsearchResponse.Create(config, 200, "GET", "/", null, null)); + var bad = Task.FromResult(ElasticsearchResponse.Create(config, 503, "GET", "/", null, null)); + + var seenNodes = new List(); + var getCall = A.CallTo(() => connection.Get(A._)); + getCall.ReturnsNextFromSequence( + ok, //info 1 - 9204 + bad, //info 2 - 9203 DEAD + ok, //info 2 retry - 9202 + ok, //info 3 - 9201 + ok, //info 4 - 9204 + ok, //info 5 - 9202 + ok, //info 6 - 9201 + ok, //info 7 - 9204 + ok, //info 8 - 9203 (Now > Timeout) + ok //info 9 - 9202 + ); + getCall.Invokes((Uri u) => seenNodes.Add(u)); + + var client1 = fake.Resolve(); + await client1.InfoAsync(); //info call 1 + await client1.InfoAsync(); //info call 2 + await client1.InfoAsync(); //info call 3 + await client1.InfoAsync(); //info call 4 + await client1.InfoAsync(); //info call 5 + await client1.InfoAsync(); //info call 6 + await client1.InfoAsync(); //info call 7 + await client1.InfoAsync(); //info call 8 + await client1.InfoAsync(); //info call 9 + + seenNodes.Should().NotBeEmpty().And.HaveCount(10); + seenNodes[0].Port.Should().Be(9204); + seenNodes[1].Port.Should().Be(9203); + //after sniff + seenNodes[2].Port.Should().Be(9202); + seenNodes[3].Port.Should().Be(9201); + seenNodes[4].Port.Should().Be(9204); + seenNodes[5].Port.Should().Be(9202); + seenNodes[6].Port.Should().Be(9201); + seenNodes[7].Port.Should().Be(9204); + seenNodes[8].Port.Should().Be(9203); + + //var nowCall = A.CallTo(() => fake.Resolve().Sniff(A._, A._)); + } + } } } diff --git a/src/Elasticsearch.Net/Connection/ITransport.cs b/src/Elasticsearch.Net/Connection/ITransport.cs index 69e0d70c1bd..0a81bf6fa37 100644 --- a/src/Elasticsearch.Net/Connection/ITransport.cs +++ b/src/Elasticsearch.Net/Connection/ITransport.cs @@ -10,6 +10,6 @@ public interface ITransport Task DoRequestAsync( string method, string path, - object data = null, NameValueCollection queryString = null, int retried = 0); + object data = null, NameValueCollection queryString = null, int retried = 0, int? seed = null); } } \ No newline at end of file diff --git a/src/Elasticsearch.Net/Connection/Transport.cs b/src/Elasticsearch.Net/Connection/Transport.cs index 7ff2922bbb2..d48df6ad8ac 100644 --- a/src/Elasticsearch.Net/Connection/Transport.cs +++ b/src/Elasticsearch.Net/Connection/Transport.cs @@ -45,6 +45,15 @@ private void Sniff(bool fromStartup = false) this._lastSniff = this._dateTimeProvider.Now(); } + private void SniffIfInformationIsTooOld(int retried) + { + var sniffLifeSpan = this._configurationValues.SniffInformationLifeSpan; + var now = this._dateTimeProvider.Now(); + if (retried == 0 && this._lastSniff.HasValue && + sniffLifeSpan.HasValue && sniffLifeSpan.Value < (now - this._lastSniff.Value)) + this.Sniff(); + } + /// /// Returns either the fixed maximum set on the connection configuration settings or the number of nodes /// @@ -53,40 +62,36 @@ private int GetMaximumRetries() return this._configurationValues.MaxRetries.GetValueOrDefault(this._connectionPool.MaxRetries); } - public ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0, int? seed = null) + public ElasticsearchResponse DoRequest( + string method, + string path, + object data = null, + NameValueCollection queryString = null, + int retried = 0, + int? seed = null) { SniffIfInformationIsTooOld(retried); - if (queryString != null) - path += queryString.ToQueryString(); + if (queryString != null) path += queryString.ToQueryString(); - var maxRetries = this.GetMaximumRetries(); var postData = PostData(data); ElasticsearchResponse response = null; - var exceptionMessage = "Unable to perform request: '{0} {1}' on any of the nodes after retrying {2} times." - .F( method, path, retried); + int initialSeed; var baseUri = this._connectionPool.GetNext(seed, out initialSeed); bool seenError = false; + try { var uri = new Uri(baseUri, path); - response = DoSyncRequest(method, uri, postData); + response = _doRequest(method, uri, postData); if (response != null && response.SuccessOrKnownError) return response; } catch (Exception e) { seenError = true; - this._connectionPool.MarkDead(baseUri); - if (this._configurationValues.SniffsOnConnectionFault && retried == 0) - this.Sniff(); - if (retried < maxRetries) - { - return this.DoRequest(method, path, data, null, ++retried, initialSeed); - } - else - throw new OutOfNodesException(exceptionMessage, e); + return RetryRequest(method, path, data, retried, baseUri, initialSeed, e); } finally { @@ -94,70 +99,110 @@ public ElasticsearchResponse DoRequest(string method, string path, object data = if (!seenError && response != null && response.SuccessOrKnownError) this._connectionPool.MarkAlive(baseUri); } + return RetryRequest(method, path, data, retried, baseUri, initialSeed, null); + } + + private ElasticsearchResponse RetryRequest( + string method, string path, object data, int retried, Uri baseUri, + int initialSeed, Exception e) + { + var maxRetries = this.GetMaximumRetries(); + var exceptionMessage = "Unable to perform request: '{0} {1}' on any of the nodes after retrying {2} times." + .F( method, path, retried); this._connectionPool.MarkDead(baseUri); if (this._configurationValues.SniffsOnConnectionFault && retried == 0) this.Sniff(); - if (retried < maxRetries) { return this.DoRequest(method, path, data, null, ++retried, initialSeed); - } - throw new OutOfNodesException(exceptionMessage); + } + throw new OutOfNodesException(exceptionMessage, e); } - private void SniffIfInformationIsTooOld(int retried) + private ElasticsearchResponse _doRequest(string method, Uri uri, byte[] postData) { - var sniffLifeSpan = this._configurationValues.SniffInformationLifeSpan; - var now = this._dateTimeProvider.Now(); - if (retried == 0 && this._lastSniff.HasValue && - sniffLifeSpan.HasValue && sniffLifeSpan.Value < (now - this._lastSniff.Value)) - this.Sniff(); + switch (method.ToLowerInvariant()) + { + case "post": + return this._connection.PostSync(uri, postData); + case "put": + return this._connection.PutSync(uri, postData); + case "delete": + return postData == null || postData.Length == 0 + ? this._connection.DeleteSync(uri) + : this._connection.DeleteSync(uri, postData); + case "head": + return this._connection.HeadSync(uri); + case "get": + return this._connection.GetSync(uri); + } + throw new Exception("Unknown HTTP method " + method); } public Task DoRequestAsync( - string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0) + string method, + string path, + object data = null, + NameValueCollection queryString = null, + int retried = 0, + int? seed = null) { - if (queryString != null) - path += queryString.ToQueryString(); + SniffIfInformationIsTooOld(retried); + + if (queryString != null) path += queryString.ToQueryString(); var postData = PostData(data); - int seed; - var baseUri = this._connectionPool.GetNext(null, out seed); + int initialSeed; + var baseUri = this._connectionPool.GetNext(seed, out initialSeed); var uri = new Uri(baseUri, path); - - switch (method.ToLowerInvariant()) + return _doRequestAsync(method, uri, postData).ContinueWith(t=> { - case "post": return this._connection.Post(uri, postData); - case "put": return this._connection.Put(uri, postData); - case "delete": - return postData == null || postData.Length == 0 - ? this._connection.Delete(uri) - : this._connection.Delete(uri, postData); - case "head": return this._connection.Head(uri); - case "get": return this._connection.Get(uri); + if (t.IsCanceled) + return null; + if (t.IsFaulted) + return this.RetryRequestAsync(method, path, data, retried, baseUri, initialSeed, t.Exception); + if (t.Result.SuccessOrKnownError) + return t; + return this.RetryRequestAsync(method, path, data, retried, baseUri, initialSeed, null); + + }).Unwrap(); + } + private Task RetryRequestAsync( + string method, string path, object data, int retried, Uri baseUri, + int initialSeed, Exception e) + { + var maxRetries = this.GetMaximumRetries(); + var exceptionMessage = "Unable to perform request: '{0} {1}' on any of the nodes after retrying {2} times." + .F( method, path, retried); + this._connectionPool.MarkDead(baseUri); + if (this._configurationValues.SniffsOnConnectionFault && retried == 0) + this.Sniff(); + if (retried < maxRetries) + { + return this.DoRequestAsync(method, path, data, null, ++retried, initialSeed); } - throw new Exception("Unknown HTTP method " + method); + throw new OutOfNodesException(exceptionMessage, e); } - - private ElasticsearchResponse DoSyncRequest(string method, Uri uri, byte[] postData) + private Task _doRequestAsync(string method, Uri uri, byte[] postData) { switch (method.ToLowerInvariant()) { case "post": - return this._connection.PostSync(uri, postData); + return this._connection.Post(uri, postData); case "put": - return this._connection.PutSync(uri, postData); + return this._connection.Put(uri, postData); case "delete": return postData == null || postData.Length == 0 - ? this._connection.DeleteSync(uri) - : this._connection.DeleteSync(uri, postData); + ? this._connection.Delete(uri) + : this._connection.Delete(uri, postData); case "head": - return this._connection.HeadSync(uri); + return this._connection.Head(uri); case "get": - return this._connection.GetSync(uri); + return this._connection.Get(uri); } - return null; + throw new Exception("Unknown HTTP method " + method); } + private byte[] PostData(object data) { diff --git a/src/Elasticsearch.Net/Providers/DateTimeProvider.cs b/src/Elasticsearch.Net/Providers/DateTimeProvider.cs index 0716ce2a7d7..d8066296123 100644 --- a/src/Elasticsearch.Net/Providers/DateTimeProvider.cs +++ b/src/Elasticsearch.Net/Providers/DateTimeProvider.cs @@ -4,17 +4,18 @@ namespace Elasticsearch.Net.Providers { public class DateTimeProvider : IDateTimeProvider { - public DateTime Now() + public virtual DateTime Now() { return DateTime.UtcNow; } - public DateTime DeadTime(Uri uri, int attempts) + public virtual DateTime DeadTime(Uri uri, int attempts) { - return DateTime.UtcNow.AddSeconds(60); + var seconds = Math.Min(60 * 2 * Math.Pow(2, (attempts * 0.5 - 1)), 60 * 30); + return DateTime.UtcNow.AddSeconds(seconds); } - public DateTime AliveTime(Uri uri, int attempts) + public virtual DateTime AliveTime(Uri uri, int attempts) { return new DateTime(); } From 0c92d3b41d0d3abcf6b73cdf0ead6098de0920e4 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Tue, 11 Mar 2014 16:25:15 +0100 Subject: [PATCH 12/15] removed double initialization of moving parts in client and transport, transport is in charge. --- src/Elasticsearch.Net/Connection/ITransport.cs | 9 +++++++++ src/Elasticsearch.Net/Connection/Transport.cs | 16 +++++++++++----- src/Elasticsearch.Net/ElasticsearchClient.cs | 15 +++++++-------- .../IElasticsearchClient.Generated.cs | 1 - 4 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/Elasticsearch.Net/Connection/ITransport.cs b/src/Elasticsearch.Net/Connection/ITransport.cs index 0a81bf6fa37..2b66a0d79e7 100644 --- a/src/Elasticsearch.Net/Connection/ITransport.cs +++ b/src/Elasticsearch.Net/Connection/ITransport.cs @@ -1,10 +1,14 @@ using System.Collections.Specialized; using System.Threading.Tasks; +using Elasticsearch.Net.Serialization; namespace Elasticsearch.Net.Connection { public interface ITransport { + IConnectionConfigurationValues Settings { get; } + IElasticsearchSerializer Serializer { get; } + ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0, int? seed = null); Task DoRequestAsync( @@ -12,4 +16,9 @@ Task DoRequestAsync( string path, object data = null, NameValueCollection queryString = null, int retried = 0, int? seed = null); } + + public interface ITransportValues + { + IElasticsearchSerializer Serializer { get; } + } } \ No newline at end of file diff --git a/src/Elasticsearch.Net/Connection/Transport.cs b/src/Elasticsearch.Net/Connection/Transport.cs index d48df6ad8ac..c21f86f9c41 100644 --- a/src/Elasticsearch.Net/Connection/Transport.cs +++ b/src/Elasticsearch.Net/Connection/Transport.cs @@ -12,13 +12,17 @@ namespace Elasticsearch.Net.Connection { public class Transport : ITransport { - private readonly IConnectionConfigurationValues _configurationValues; - private readonly IConnection _connection; - private readonly IElasticsearchSerializer _serializer; + protected internal readonly IConnectionConfigurationValues _configurationValues; + protected internal readonly IConnection _connection; + protected internal readonly IElasticsearchSerializer _serializer; + private readonly IConnectionPool _connectionPool; private IDateTimeProvider _dateTimeProvider; private DateTime? _lastSniff = null; + public IConnectionConfigurationValues Settings { get { return _configurationValues; } } + public IElasticsearchSerializer Serializer { get { return _serializer; } } + public Transport( IConnectionConfigurationValues configurationValues, IConnection connection, @@ -26,11 +30,12 @@ public Transport( IDateTimeProvider dateTimeProvider = null ) { - _dateTimeProvider = dateTimeProvider; - this._connection = connection; this._configurationValues = configurationValues; + this._connection = connection?? new HttpConnection(configurationValues); this._serializer = serializer ?? new ElasticsearchDefaultSerializer(); this._connectionPool = this._configurationValues.ConnectionPool; + + //TODO: take the datetimeprovider from the connection pool? this._dateTimeProvider = dateTimeProvider ?? new DateTimeProvider(); if (this._configurationValues.SniffsOnStartup) @@ -62,6 +67,7 @@ private int GetMaximumRetries() return this._configurationValues.MaxRetries.GetValueOrDefault(this._connectionPool.MaxRetries); } + public ElasticsearchResponse DoRequest( string method, string path, diff --git a/src/Elasticsearch.Net/ElasticsearchClient.cs b/src/Elasticsearch.Net/ElasticsearchClient.cs index 4fa3ac59350..9003c4908bf 100644 --- a/src/Elasticsearch.Net/ElasticsearchClient.cs +++ b/src/Elasticsearch.Net/ElasticsearchClient.cs @@ -12,9 +12,9 @@ namespace Elasticsearch.Net { public partial class ElasticsearchClient : IElasticsearchClient { - public IConnection Connection { get; protected set; } - public IConnectionConfigurationValues Settings { get; protected set; } - public IElasticsearchSerializer Serializer { get; protected set; } + public IConnectionConfigurationValues Settings { get { return this.Transport.Settings; } } + public IElasticsearchSerializer Serializer { get { return this.Transport.Serializer; } } + protected IStringifier Stringifier { get; set; } protected ITransport Transport { get; set; } @@ -29,12 +29,11 @@ public ElasticsearchClient( if (settings == null) throw new ArgumentNullException("settings"); - this.Settings = settings; - this.Connection = connection ?? new HttpConnection(settings); - this.Serializer = serializer ?? new ElasticsearchDefaultSerializer(); - ((IConnectionConfigurationValues) this.Settings).Serializer = this.Serializer; - this.Transport = transport ?? new Transport(settings, this.Connection, this.Serializer); + this.Transport = transport ?? new Transport(settings, connection, serializer); this.Stringifier = stringifier ?? new Stringifier(); + + //neccessary to pass the serializer to ElasticsearchResponse + this.Settings.Serializer = this.Transport.Serializer; } protected NameValueCollection ToNameValueCollection(FluentQueryString qs) diff --git a/src/Elasticsearch.Net/IElasticsearchClient.Generated.cs b/src/Elasticsearch.Net/IElasticsearchClient.Generated.cs index d432983d243..978390cafae 100644 --- a/src/Elasticsearch.Net/IElasticsearchClient.Generated.cs +++ b/src/Elasticsearch.Net/IElasticsearchClient.Generated.cs @@ -21,7 +21,6 @@ namespace Elasticsearch.Net /// public interface IElasticsearchClient { - IConnection Connection { get; } IConnectionConfigurationValues Settings { get; } IElasticsearchSerializer Serializer { get; } From dc3da33b1cf885b24d6caff7955b36c76f3d2ebb Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Tue, 11 Mar 2014 16:51:38 +0100 Subject: [PATCH 13/15] fixed failing unit tests due to reworked internals --- .../Connection/ConcurrencyTests.cs | 3 ++- .../Connection/HttpConnection.cs | 18 +--------------- src/Elasticsearch.Net/Connection/Transport.cs | 19 ++++++++++++++--- .../ConnectionPool/StaticConnectionPool.cs | 2 +- .../Domain/ElasticsearchResponse.cs | 4 +--- src/Elasticsearch.Net/Providers/Sniffer.cs | 1 - src/Nest/Exception/ReindexException.cs | 1 - .../Converters/AggregationConverter.cs | 2 +- .../Converters/CustomJsonConverter.cs | 1 - .../YamlTestsBase.cs | 1 - .../Core/Domain/Connection/ConnectionTests.cs | 21 ++++++++----------- 11 files changed, 31 insertions(+), 42 deletions(-) diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs index d7eccd7c86a..19ba9983632 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs @@ -117,7 +117,8 @@ public class ConcurrencyTestConnection : InMemoryConnection new Uri("http://localhost:9206"), }; private readonly Random _rnd = new Random(); - public ConcurrencyTestConnection(IConnectionConfigurationValues settings) : base(settings) + public ConcurrencyTestConnection(IConnectionConfigurationValues settings) + : base(settings) { } diff --git a/src/Elasticsearch.Net/Connection/HttpConnection.cs b/src/Elasticsearch.Net/Connection/HttpConnection.cs index 69287724246..e273a4aa193 100644 --- a/src/Elasticsearch.Net/Connection/HttpConnection.cs +++ b/src/Elasticsearch.Net/Connection/HttpConnection.cs @@ -369,23 +369,7 @@ public void Iterate(HttpWebRequest request, byte[] data, IEnumerable async recursiveBody(null); } - private Uri _CreateUriString(string path) - { - //TODO reapply this - return null; - - //var s = this._ConnectionSettings; - ////var uri = s.ConnectionPool.GetNext(); - - //if (s.QueryStringParameters != null) - //{ - // var tempUri = new Uri(uri, path); - // var qs = s.QueryStringParameters.ToQueryString(tempUri.Query.IsNullOrEmpty() ? "?" : "&"); - // path += qs; - //} - //uri = path.IsNullOrEmpty() ? uri : new Uri(uri, path); - //return uri.Purify(); - } + } } diff --git a/src/Elasticsearch.Net/Connection/Transport.cs b/src/Elasticsearch.Net/Connection/Transport.cs index c21f86f9c41..e1a4e0a7099 100644 --- a/src/Elasticsearch.Net/Connection/Transport.cs +++ b/src/Elasticsearch.Net/Connection/Transport.cs @@ -7,6 +7,7 @@ using Elasticsearch.Net.Exceptions; using Elasticsearch.Net.Providers; using Elasticsearch.Net.Serialization; +using PUrify; namespace Elasticsearch.Net.Connection { @@ -89,7 +90,7 @@ public ElasticsearchResponse DoRequest( try { - var uri = new Uri(baseUri, path); + var uri = CreateUriToPath(baseUri, path); response = _doRequest(method, uri, postData); if (response != null && response.SuccessOrKnownError) return response; @@ -160,7 +161,7 @@ public Task DoRequestAsync( var postData = PostData(data); int initialSeed; var baseUri = this._connectionPool.GetNext(seed, out initialSeed); - var uri = new Uri(baseUri, path); + var uri = CreateUriToPath(baseUri, path); return _doRequestAsync(method, uri, postData).ContinueWith(t=> { if (t.IsCanceled) @@ -208,7 +209,19 @@ private Task _doRequestAsync(string method, Uri uri, byte } throw new Exception("Unknown HTTP method " + method); } - + + private Uri CreateUriToPath(Uri baseUri, string path) + { + var s = this.Settings; + if (s.QueryStringParameters != null) + { + var tempUri = new Uri(baseUri, path); + var qs = s.QueryStringParameters.ToQueryString(tempUri.Query.IsNullOrEmpty() ? "?" : "&"); + path += qs; + } + var uri = path.IsNullOrEmpty() ? baseUri : new Uri(baseUri, path); + return uri.Purify(); + } private byte[] PostData(object data) { diff --git a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs index b4daeee2272..446281390f4 100644 --- a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs @@ -64,7 +64,7 @@ public virtual Uri GetNext(int? initialSeed, out int seed) } while (attempts < count); //could not find a suitable node retrying on node that has been dead longest. - return this._nodeUris[i]; //todo random; + return this._nodeUris[i]; } public virtual void MarkDead(Uri uri) diff --git a/src/Elasticsearch.Net/Domain/ElasticsearchResponse.cs b/src/Elasticsearch.Net/Domain/ElasticsearchResponse.cs index 7c4ad6acbdd..49bedf8e282 100644 --- a/src/Elasticsearch.Net/Domain/ElasticsearchResponse.cs +++ b/src/Elasticsearch.Net/Domain/ElasticsearchResponse.cs @@ -72,12 +72,10 @@ public ElasticsearchDynamic Response - //TODO probably nicer if we make this factory ConnectionStatus.Error() and ConnectionStatus.Valid() - //and make these constructors private. protected ElasticsearchResponse(IConnectionConfigurationValues settings) { this.Settings = settings; - this.Serializer = settings.Serializer; //TODO or default + this.Serializer = settings.Serializer; } public static ElasticsearchResponse CreateError(IConnectionConfigurationValues settings, Exception e, string method, string path, byte[] request) diff --git a/src/Elasticsearch.Net/Providers/Sniffer.cs b/src/Elasticsearch.Net/Providers/Sniffer.cs index 76d7f0d6abb..61fdb34fe94 100644 --- a/src/Elasticsearch.Net/Providers/Sniffer.cs +++ b/src/Elasticsearch.Net/Providers/Sniffer.cs @@ -38,7 +38,6 @@ public static IList FromStream(Stream stream, IElasticsearchSerializer seri var l = new List(); foreach(var kv in response.nodes.Values) { - //TODO parse address since its in inet[] form if (!kv.http_address.IsNullOrEmpty()) l.Add(Parse("http", kv.http_address)); else if (!kv.https_address.IsNullOrEmpty()) diff --git a/src/Nest/Exception/ReindexException.cs b/src/Nest/Exception/ReindexException.cs index 62d633813ab..9482bab7540 100644 --- a/src/Nest/Exception/ReindexException.cs +++ b/src/Nest/Exception/ReindexException.cs @@ -5,7 +5,6 @@ namespace Nest { public class ReindexException: Exception { - //TODO NESTElasticsearchResponse? public ElasticsearchResponse Status { get; private set; } public ReindexException(ElasticsearchResponse status, string message = null) : base(message) diff --git a/src/Nest/Resolvers/Converters/AggregationConverter.cs b/src/Nest/Resolvers/Converters/AggregationConverter.cs index 184818e77d8..1baf05c0608 100644 --- a/src/Nest/Resolvers/Converters/AggregationConverter.cs +++ b/src/Nest/Resolvers/Converters/AggregationConverter.cs @@ -50,7 +50,7 @@ private IAggregation ReadAggregation(JsonReader reader, JsonSerializer serialize case "doc_count": return GetSingleBucketAggregation(reader, serializer); default: - return null; //TODO assume nested + return null; } } diff --git a/src/Nest/Resolvers/Converters/CustomJsonConverter.cs b/src/Nest/Resolvers/Converters/CustomJsonConverter.cs index 193f8868fb7..dd205546fd3 100644 --- a/src/Nest/Resolvers/Converters/CustomJsonConverter.cs +++ b/src/Nest/Resolvers/Converters/CustomJsonConverter.cs @@ -7,7 +7,6 @@ namespace Nest.Resolvers.Converters { - //TODO rename and remove I Prefix public class CustomJsonConverter : JsonConverter { public override bool CanConvert(Type objectType) diff --git a/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs b/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs index acd8f820bbd..ccbb7456a81 100644 --- a/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs +++ b/src/Tests/Elasticsearch.Net.Integration.Yaml/YamlTestsBase.cs @@ -39,7 +39,6 @@ static YamlTestsBase() } - public YamlTestsBase() { _client.IndicesDelete("*"); diff --git a/src/Tests/Nest.Tests.Unit/Core/Domain/Connection/ConnectionTests.cs b/src/Tests/Nest.Tests.Unit/Core/Domain/Connection/ConnectionTests.cs index 54d312fb71b..6dc920f284e 100644 --- a/src/Tests/Nest.Tests.Unit/Core/Domain/Connection/ConnectionTests.cs +++ b/src/Tests/Nest.Tests.Unit/Core/Domain/Connection/ConnectionTests.cs @@ -1,4 +1,5 @@ -using Elasticsearch.Net; +using System.Runtime.Remoting.Channels; +using Elasticsearch.Net; using Elasticsearch.Net.Connection; using NUnit.Framework; using System; @@ -8,7 +9,7 @@ namespace Nest.Tests.Unit.Domain.Connection { using System.Net; - public class TestConnection : HttpConnection + public class TestConnection : InMemoryConnection { public TestConnection(IConnectionSettingsValues settings) : base(settings) { } @@ -29,13 +30,11 @@ public void CanCreateConnectionWithCustomQueryStringParameters() var uri = new Uri("http://localhost"); var query = new NameValueCollection { { "authToken", "ABCDEFGHIJK" } }; var connectionSettings = new ConnectionSettings(uri, "index").SetGlobalQueryStringParameters(query); - var connection = new TestConnection(connectionSettings); - - // Act - var req = connection.GetConnection("", "GET"); + var client = new ElasticClient(connectionSettings, new TestConnection(connectionSettings)); + var result = client.RootNodeInfo(); // Assert - Assert.AreEqual(req.Address.ToString(), "http://localhost/?authToken=ABCDEFGHIJK"); + Assert.AreEqual(result.ConnectionStatus.RequestUrl, "http://localhost/?authToken=ABCDEFGHIJK"); } [Test] @@ -45,13 +44,11 @@ public void CanCreateConnectionWithPathAndCustomQueryStringParameters() var uri = new Uri("http://localhost:9000"); var query = new NameValueCollection { { "authToken", "ABCDEFGHIJK" } }; var connectionSettings = new ConnectionSettings(uri, "index").SetGlobalQueryStringParameters(query); - var connection = new TestConnection(connectionSettings); - - // Act - var req = connection.GetConnection("index/", "GET"); + var client = new ElasticClient(connectionSettings, new TestConnection(connectionSettings)); + var result = client.IndexExists(ie=>ie.Index("index")); // Assert - Assert.AreEqual(req.Address.ToString(), "http://localhost:9000/index/?authToken=ABCDEFGHIJK"); + Assert.AreEqual(result.ConnectionStatus.RequestUrl, "http://localhost:9000/index?authToken=ABCDEFGHIJK"); } From 1f74fde24baf87db2b63df16882f0a3fa934a9b2 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 12 Mar 2014 10:35:08 +0100 Subject: [PATCH 14/15] can now specify custom ping timeout, dead timeout, max dead timeout --- .../Connection/SkipDeadNodesTests.cs | 6 ++-- .../StaticConnectionPoolRetryTests.cs | 8 ++--- .../Connection/ConnectionConfiguration.cs | 34 +++++++++++++++++++ .../IConnectionConfigurationValues.cs | 4 +++ src/Elasticsearch.Net/Connection/Transport.cs | 5 +-- .../ConnectionPool/IConnectionPool.cs | 2 +- .../SingleNodeConnectionPool.cs | 2 +- .../ConnectionPool/SniffingConnectionPool.cs | 4 +-- .../ConnectionPool/StaticConnectionPool.cs | 4 +-- .../Providers/DateTimeProvider.cs | 10 ++++-- .../Providers/IDateTimeProvider.cs | 2 +- 11 files changed, 62 insertions(+), 19 deletions(-) diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs index 1b2312c3d75..1d25acbafe7 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs @@ -46,7 +46,7 @@ public void DeadNodesAreNotVisited() ); A.CallTo(()=>dateTimeProvider.AliveTime(A._, A._)) .Returns(new DateTime()); - A.CallTo(() => dateTimeProvider.DeadTime(A._, A._)) + A.CallTo(() => dateTimeProvider.DeadTime(A._, A._, A._, A._)) .Returns(DateTime.UtcNow.AddMinutes(1)); //make sure the transport layer uses a different datetimeprovider fake.Provide(new DateTimeProvider()); @@ -106,7 +106,7 @@ public void DeadNodesAreNotVisited() } [Test] - public async void DeadNodesAreNotVisited_Async() + public async void DeadNodesAreNotVisited_Async() { using (var fake = new AutoFake()) { @@ -128,7 +128,7 @@ public async void DeadNodesAreNotVisited_Async() ); A.CallTo(()=>dateTimeProvider.AliveTime(A._, A._)) .Returns(new DateTime()); - A.CallTo(() => dateTimeProvider.DeadTime(A._, A._)) + A.CallTo(() => dateTimeProvider.DeadTime(A._, A._, A._, A._)) .Returns(DateTime.UtcNow.AddMinutes(1)); //make sure the transport layer uses a different datetimeprovider fake.Provide(new DateTimeProvider()); diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs index 005b8b8908b..1f57e53e31c 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs @@ -197,7 +197,7 @@ public void AllNodesWillBeMarkedDead() var calls = _uris.Select(u => A.CallTo(()=> dateTimeProvider.DeadTime( A.That.Matches(uu=>uu.Port == u.Port), - A._ + A._, A._, A._ ))).ToList(); //all the fake mark dead calls return 60 seconds into the future @@ -234,7 +234,7 @@ public void IfAConnectionComesBackToLifeOnItsOwnItShouldBeMarked() //Setting up a datetime provider so that can track dead/alive marks var dateTimeProvider = fake.Resolve(); A.CallTo(() => dateTimeProvider.Now()).Returns(DateTime.UtcNow); - var markDeadCall = A.CallTo(() => dateTimeProvider.DeadTime(A._, A._)); + var markDeadCall = A.CallTo(() => dateTimeProvider.DeadTime(A._, A._, A._, A._)); var markAliveCall = A.CallTo(() => dateTimeProvider.AliveTime(A._, A._)); markDeadCall.Returns(DateTime.UtcNow.AddSeconds(60)); markAliveCall.Returns(new DateTime()); @@ -292,9 +292,9 @@ public void IfAllButOneConnectionDiesSubsequentRequestsMustUseTheOneAliveConnect var dateTimeProvider = fake.Resolve(); A.CallTo(() => dateTimeProvider.Now()).Returns(DateTime.UtcNow); var markOthersDeadCall = A.CallTo(() => dateTimeProvider - .DeadTime(A.That.Not.Matches(u=>u.Port == 9203), A._)); + .DeadTime(A.That.Not.Matches(u=>u.Port == 9203), A._, A._, A._)); var markLastDead = A.CallTo(() => dateTimeProvider - .DeadTime(A.That.Matches(u=>u.Port == 9203), A._)); + .DeadTime(A.That.Matches(u=>u.Port == 9203), A._, A._, A._)); var markOthersAliveCall = A.CallTo(() => dateTimeProvider .AliveTime(A.That.Not.Matches(u=>u.Port == 9203), A._)); var markLastAlive = A.CallTo(() => dateTimeProvider diff --git a/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs b/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs index 80a2189a83c..9ab7395ea82 100644 --- a/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs +++ b/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs @@ -32,6 +32,9 @@ public class ConnectionConfiguration : IConnectionConfigurationValues //public string Host { get; private set; } //public int Port { get; private set; } public int Timeout { get; private set; } + public int? PingTimeout { get; private set; } + public int? DeadTimeout { get; private set; } + public int? MaxDeadTimeout { get; private set; } public string ProxyUsername { get; private set; } public string ProxyPassword { get; private set; } public string ProxyAddress { get; private set; } @@ -119,6 +122,37 @@ public T SetTimeout(int timeout) return (T) this; } + /// + /// This is a separate timeout for Ping() requests. A ping should fail as fast as possible. + /// + /// The ping timeout in milliseconds defaults to 50 + public T SetPingTimeout(int timeout) + { + this.PingTimeout = timeout; + return (T) this; + } + + /// + /// Sets the default dead timeout factor when a node has been marked dead. + /// + /// Some connection pools may use a flat timeout whilst others take this factor and increase it exponentially + /// + public T SetDeadTimeout(int timeout) + { + this.DeadTimeout = timeout; + return (T) this; + } + + /// + /// Sets the maximum time a node can be marked dead. + /// Different implementations of IConnectionPool may choose a different default. + /// + /// The timeout in milliseconds + public T SetMaxDeadTimeout(int timeout) + { + this.MaxDeadTimeout = timeout; + return (T) this; + } /// /// Semaphore asynchronous connections automatically by giving /// it a maximum concurrent connections. diff --git a/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs b/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs index 1cd5e2faccf..7d7aa1ab58d 100644 --- a/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs +++ b/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs @@ -13,6 +13,9 @@ public interface IConnectionConfigurationValues //string Host { get; } //int Port { get; } int Timeout { get; } + int? PingTimeout { get; } + int? DeadTimeout { get; } + int? MaxDeadTimeout { get; } int? MaxRetries { get; } string ProxyAddress { get; } string ProxyUsername { get; } @@ -38,6 +41,7 @@ public interface IConnectionConfigurationValues /// TimeSpan? SniffInformationLifeSpan { get; } + /// /// Append these query string parameters automatically to every request /// diff --git a/src/Elasticsearch.Net/Connection/Transport.cs b/src/Elasticsearch.Net/Connection/Transport.cs index e1a4e0a7099..fa5e76a0c58 100644 --- a/src/Elasticsearch.Net/Connection/Transport.cs +++ b/src/Elasticsearch.Net/Connection/Transport.cs @@ -116,9 +116,10 @@ private ElasticsearchResponse RetryRequest( var maxRetries = this.GetMaximumRetries(); var exceptionMessage = "Unable to perform request: '{0} {1}' on any of the nodes after retrying {2} times." .F( method, path, retried); - this._connectionPool.MarkDead(baseUri); + this._connectionPool.MarkDead(baseUri, this._configurationValues.DeadTimeout, this._configurationValues.MaxDeadTimeout); if (this._configurationValues.SniffsOnConnectionFault && retried == 0) this.Sniff(); + if (retried < maxRetries) { return this.DoRequest(method, path, data, null, ++retried, initialSeed); @@ -181,7 +182,7 @@ private Task RetryRequestAsync( var maxRetries = this.GetMaximumRetries(); var exceptionMessage = "Unable to perform request: '{0} {1}' on any of the nodes after retrying {2} times." .F( method, path, retried); - this._connectionPool.MarkDead(baseUri); + this._connectionPool.MarkDead(baseUri, this._configurationValues.DeadTimeout, this._configurationValues.MaxDeadTimeout); if (this._configurationValues.SniffsOnConnectionFault && retried == 0) this.Sniff(); if (retried < maxRetries) diff --git a/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs index 32980117da0..d7d77c44d76 100644 --- a/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs @@ -20,7 +20,7 @@ public interface IConnectionPool /// /// Mark the specified Uri as dead /// - void MarkDead(Uri uri); + void MarkDead(Uri uri, int? deadTimeout = null, int? maxDeadtimeout = null); /// /// Bring the specified uri back to life. diff --git a/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs index 084715454ef..7e4a8fed31b 100644 --- a/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs @@ -24,7 +24,7 @@ public Uri GetNext(int? initialSeed, out int seed) return _uri; } - public void MarkDead(Uri uri) + public void MarkDead(Uri uri, int? deadTimeout = null, int? maxDeadTimeout = null) { } diff --git a/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs index c55d060f3c5..9fa29a6b294 100644 --- a/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs @@ -75,12 +75,12 @@ public override void MarkAlive(Uri uri) } } - public override void MarkDead(Uri uri) + public override void MarkDead(Uri uri, int? deadTimeout, int? maxDeadTimeout) { try { this._readerWriter.EnterReadLock(); - base.MarkDead(uri); + base.MarkDead(uri, deadTimeout, maxDeadTimeout); } finally { diff --git a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs index 446281390f4..34d02cd0c19 100644 --- a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs @@ -67,14 +67,14 @@ public virtual Uri GetNext(int? initialSeed, out int seed) return this._nodeUris[i]; } - public virtual void MarkDead(Uri uri) + public virtual void MarkDead(Uri uri, int? deadTimeout, int? maxDeadTimeout) { EndpointState state = null; if (!this._uriLookup.TryGetValue(uri, out state)) return; lock(state) { - state.date = this._dateTimeProvider.DeadTime(uri, state._attempts); + state.date = this._dateTimeProvider.DeadTime(uri, state._attempts, deadTimeout, maxDeadTimeout); } } diff --git a/src/Elasticsearch.Net/Providers/DateTimeProvider.cs b/src/Elasticsearch.Net/Providers/DateTimeProvider.cs index d8066296123..233f5a58c4f 100644 --- a/src/Elasticsearch.Net/Providers/DateTimeProvider.cs +++ b/src/Elasticsearch.Net/Providers/DateTimeProvider.cs @@ -1,18 +1,22 @@ using System; +using Elasticsearch.Net.Connection; namespace Elasticsearch.Net.Providers { public class DateTimeProvider : IDateTimeProvider { + public virtual DateTime Now() { return DateTime.UtcNow; } - public virtual DateTime DeadTime(Uri uri, int attempts) + public virtual DateTime DeadTime(Uri uri, int attempts, int? timeoutFactor = null, int? maxDeadTimeout = null) { - var seconds = Math.Min(60 * 2 * Math.Pow(2, (attempts * 0.5 - 1)), 60 * 30); - return DateTime.UtcNow.AddSeconds(seconds); + var timeout = timeoutFactor.GetValueOrDefault(60 * 1000); + var maxTimeout = maxDeadTimeout.GetValueOrDefault(60 * 1000 * 30); + var seconds = Math.Min(timeout * 2 * Math.Pow(2, (attempts * 0.5 - 1)), maxTimeout); + return DateTime.UtcNow.AddMilliseconds(seconds); } public virtual DateTime AliveTime(Uri uri, int attempts) diff --git a/src/Elasticsearch.Net/Providers/IDateTimeProvider.cs b/src/Elasticsearch.Net/Providers/IDateTimeProvider.cs index 13581522ef7..b1210020805 100644 --- a/src/Elasticsearch.Net/Providers/IDateTimeProvider.cs +++ b/src/Elasticsearch.Net/Providers/IDateTimeProvider.cs @@ -5,7 +5,7 @@ namespace Elasticsearch.Net.Providers public interface IDateTimeProvider { DateTime Now(); - DateTime DeadTime(Uri uri, int attempts); + DateTime DeadTime(Uri uri, int attempts, int? timeoutFactor = null, int? maxDeadTimeout = null); DateTime AliveTime(Uri uri, int attempts); } } \ No newline at end of file From cd53c8b2c770ad7092c01ac03eccdda39545310c Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 12 Mar 2014 11:34:21 +0100 Subject: [PATCH 15/15] implemented pings on first time usage and whenever a dead node is used for the first time, can be disabled in connectionconfiguration --- .../ElasticsearchHttpClient.cs | 4 ++-- .../ThriftConnection.cs | 10 ++++---- .../Connection/ConcurrencyTests.cs | 7 +++++- .../Connection/SkipDeadNodesTests.cs | 5 ++++ .../Connection/SniffingConnectionPoolTests.cs | 10 ++++---- .../StaticConnectionPoolRetryTests.cs | 16 +++++++++++-- .../Stubs/NoopConnection.cs | 6 ++--- .../Connection/ConnectionConfiguration.cs | 11 +++++++++ .../Connection/HttpConnection.cs | 14 +++++------ .../Connection/IConnection.cs | 4 ++-- .../IConnectionConfigurationValues.cs | 1 + src/Elasticsearch.Net/Connection/Transport.cs | 24 +++++++++++++++---- .../ConnectionPool/EndpointState.cs | 2 +- .../ConnectionPool/IConnectionPool.cs | 7 ++++-- .../SingleNodeConnectionPool.cs | 3 ++- .../ConnectionPool/SniffingConnectionPool.cs | 10 ++++---- .../ConnectionPool/StaticConnectionPool.cs | 6 ++++- 17 files changed, 98 insertions(+), 42 deletions(-) diff --git a/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs b/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs index 5e96edb7f2d..aa5c0953bc2 100644 --- a/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs +++ b/src/Connections/Elasticsearch.Net.Connection.HttpClient/ElasticsearchHttpClient.cs @@ -118,12 +118,12 @@ public ElasticsearchResponse DeleteSync(Uri uri, byte[] data) throw new NotImplementedException(); } - public bool Ping(Uri uri, int connectTimeout) + public bool Ping(Uri uri) { throw new NotImplementedException(); } - public IList Sniff(Uri uri, int connectTimeout) + public IList Sniff(Uri uri) { throw new NotImplementedException(); } diff --git a/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs b/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs index dd3918d1d64..22b30f0e088 100644 --- a/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs +++ b/src/Connections/Elasticsearch.Net.Connection.Thrift/ThriftConnection.cs @@ -28,10 +28,10 @@ public ThriftConnection(IConnectionConfigurationValues connectionSettings) this._poolSize = Math.Max(1, connectionSettings.MaximumAsyncConnections); this._resourceLock = new Semaphore(_poolSize, _poolSize); - int seed; + int seed; bool shouldPingHint; for (var i = 0; i <= connectionSettings.MaximumAsyncConnections; i++) { - var uri = this._connectionSettings.ConnectionPool.GetNext(null, out seed); + var uri = this._connectionSettings.ConnectionPool.GetNext(null, out seed, out shouldPingHint); var host = uri.Host; var port = uri.Port; var tsocket = new TSocket(host, port); @@ -195,7 +195,7 @@ public ElasticsearchResponse DeleteSync(Uri uri, byte[] data) return this.Execute(restRequest); } - public bool Ping(Uri uri, int connectTimeout) + public bool Ping(Uri uri) { var restRequest = new RestRequest(); restRequest.Method = Method.HEAD; @@ -207,11 +207,11 @@ public bool Ping(Uri uri, int connectTimeout) return r.Success; } - public IList Sniff(Uri uri, int connectTimeout) + public IList Sniff(Uri uri) { var restRequest = new RestRequest(); restRequest.Method = Method.GET; - restRequest.Uri = new Uri(uri,"/_nodes/_all/clear?timeout=" + connectTimeout); + restRequest.Uri = new Uri(uri,"/_nodes/_all/clear?timeout=" + this._connectionSettings.PingTimeout.GetValueOrDefault(50)); restRequest.Headers = new Dictionary(); restRequest.Headers.Add("Content-Type", "application/json"); diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs index 19ba9983632..8b5cf5cfacd 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/ConcurrencyTests.cs @@ -122,7 +122,12 @@ public ConcurrencyTestConnection(IConnectionConfigurationValues settings) { } - public override IList Sniff(Uri uri, int connectTimeout) + public override bool Ping(Uri uri) + { + return true; + } + + public override IList Sniff(Uri uri) { return _rnd.Next(1, 11) % 3 == 0 ? _uris : _uris2; } diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs index 1d25acbafe7..23b061287b7 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/SkipDeadNodesTests.cs @@ -77,6 +77,8 @@ public void DeadNodesAreNotVisited() ElasticsearchResponse.Create(config, 200, "GET", "/", null, null) //info 9 - 9202 ); getCall.Invokes((Uri u) => seenNodes.Add(u)); + var pingCall = A.CallTo(() => fake.Resolve().Ping(A._)); + pingCall.Returns(true); var client1 = fake.Resolve(); client1.Info(); //info call 1 @@ -101,6 +103,9 @@ public void DeadNodesAreNotVisited() seenNodes[7].Port.Should().Be(9204); seenNodes[8].Port.Should().Be(9203); + //4 nodes first time usage + 1 time after the first time 9203 came back to live + pingCall.MustHaveHappened(Repeated.Exactly.Times(5)); + //var nowCall = A.CallTo(() => fake.Resolve().Sniff(A._, A._)); } } diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs index c65b083f558..0084f524523 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/SniffingConnectionPoolTests.cs @@ -33,7 +33,7 @@ public void SniffOnStartupCallsSniffOnlyOnce() var param = new TypedParameter(typeof(IDateTimeProvider), null); fake.Provide(param); var connection = fake.Resolve(); - var sniffCall = A.CallTo(() => connection.Sniff(A._, A._)); + var sniffCall = A.CallTo(() => connection.Sniff(A._)); var client1 = fake.Resolve(); var client2 = fake.Resolve(); var client3 = fake.Resolve(); @@ -66,7 +66,7 @@ public void SniffIsCalledAfterItHasGoneOutOfDate() fake.Provide(config); fake.Provide(fake.Resolve()); var connection = fake.Resolve(); - var sniffCall = A.CallTo(() => connection.Sniff(A._, A._)); + var sniffCall = A.CallTo(() => connection.Sniff(A._)); var getCall = A.CallTo(() => connection.GetSync(A._)); getCall.Returns(ElasticsearchResponse.Create(config, 200, "GET", "/", null, null)); @@ -106,7 +106,7 @@ public void SniffIsCalledAfterItHasGoneOutOfDate_NotWhenItSeesA503() fake.Provide(config); fake.Provide(fake.Resolve()); var connection = fake.Resolve(); - var sniffCall = A.CallTo(() => connection.Sniff(A._, A._)); + var sniffCall = A.CallTo(() => connection.Sniff(A._)); var getCall = A.CallTo(() => connection.GetSync(A._)); getCall.ReturnsNextFromSequence( ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 1 @@ -146,7 +146,7 @@ public void SniffOnConnectionFaultCausesSniffOn503() fake.Provide(config); fake.Provide(fake.Resolve()); var connection = fake.Resolve(); - var sniffCall = A.CallTo(() => connection.Sniff(A._, A._)); + var sniffCall = A.CallTo(() => connection.Sniff(A._)); var getCall = A.CallTo(() => connection.GetSync(A._)); getCall.ReturnsNextFromSequence( ElasticsearchResponse.Create(config, 200, "GET", "/", null, null), //info 1 @@ -188,7 +188,7 @@ public void HostsReturnedBySniffAreVisited() fake.Provide(config); fake.Provide(fake.Resolve()); var connection = fake.Resolve(); - var sniffCall = A.CallTo(() => connection.Sniff(A._, A._)); + var sniffCall = A.CallTo(() => connection.Sniff(A._)); sniffCall.Returns(new List() { new Uri("http://localhost:9204"), diff --git a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs index 1f57e53e31c..28516ed7e37 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Connection/StaticConnectionPoolRetryTests.cs @@ -60,6 +60,8 @@ public void ThrowsOutOfNodesException_AndRetriesTheSpecifiedTimes() //an exception var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Throws(); + var pingCall = A.CallTo(() => fake.Resolve().Ping(A._)); + pingCall.Returns(true); //create a real ElasticsearchClient with it unspecified dependencies //as fakes @@ -124,6 +126,8 @@ public void HardRetryLimitTakesPrecedenceOverNumberOfNodes() ); var getCall = A.CallTo(() => fake.Resolve().GetSync(A._)); getCall.Throws(); + var pingCall = A.CallTo(() => fake.Resolve().Ping(A._)); + pingCall.Returns(true); this.ProvideTransport(fake); @@ -159,7 +163,8 @@ public void AConnectionMustBeMadeEvenIfAllNodesAreDead() ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), ElasticsearchResponse.Create(_config, 200, "GET", "/", null, null) ); - + var pingCall = A.CallTo(() => fake.Resolve().Ping(A._)); + pingCall.Returns(true); //setup client this.ProvideTransport(fake); var client = fake.Resolve(); @@ -170,6 +175,8 @@ public void AConnectionMustBeMadeEvenIfAllNodesAreDead() //original call + 4 retries == 5 getCall.MustHaveHappened(Repeated.Exactly.Times(5)); + //ping must have been send out 4 times to the 4 nodes being used for the first time + pingCall.MustHaveHappened(Repeated.Exactly.Times(4)); } } @@ -209,8 +216,9 @@ public void AllNodesWillBeMarkedDead() getCall.Returns( ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null) ); - + var pingCall = A.CallTo(() => fake.Resolve().Ping(A._)); + pingCall.Returns(true); this.ProvideTransport(fake); var client = fake.Resolve(); @@ -259,6 +267,8 @@ public void IfAConnectionComesBackToLifeOnItsOwnItShouldBeMarked() ElasticsearchResponse.Create(_config, 503, "GET", "/", null, null), ElasticsearchResponse.Create(_config, 200, "GET", "/", null, null) ); + var pingCall = A.CallTo(() => fake.Resolve().Ping(A._)); + pingCall.Returns(true); //provide a transport with all the dependencies resolved @@ -327,6 +337,8 @@ public void IfAllButOneConnectionDiesSubsequentRequestsMustUseTheOneAliveConnect ElasticsearchResponse.Create(_config, 200, "GET", "/", null, null), ElasticsearchResponse.Create(_config, 200, "GET", "/", null, null) ); + var pingCall = A.CallTo(() => fake.Resolve().Ping(A._)); + pingCall.Returns(true); //provide a transport with all the dependencies resolved this.ProvideTransport(fake); diff --git a/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs b/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs index cc3f8f503d0..1acfa0ee85e 100644 --- a/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs +++ b/src/Elasticsearch.Net.Tests.Unit/Stubs/NoopConnection.cs @@ -118,12 +118,12 @@ public virtual ElasticsearchResponse DeleteSync(Uri uri, byte[] data) return _responseGenerator.Create(); } - public bool Ping(Uri uri, int connectTimeout) + public bool Ping(Uri uri) { - throw new NotImplementedException(); + return true; } - public IList Sniff(Uri uri, int connectTimeout) + public IList Sniff(Uri uri) { throw new NotImplementedException(); } diff --git a/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs b/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs index 9ab7395ea82..ca6209ec543 100644 --- a/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs +++ b/src/Elasticsearch.Net/Connection/ConnectionConfiguration.cs @@ -37,6 +37,7 @@ public class ConnectionConfiguration : IConnectionConfigurationValues public int? MaxDeadTimeout { get; private set; } public string ProxyUsername { get; private set; } public string ProxyPassword { get; private set; } + public bool DisablePings { get; private set; } public string ProxyAddress { get; private set; } public int MaximumAsyncConnections { get; private set; } public int? MaxRetries { get; private set; } @@ -98,6 +99,16 @@ public T EnableTrace(bool enabled = true) return (T) this; } + /// + /// When a node is used for the very first time or when it's used for the first time after it has been marked dead + /// a ping with a very low timeout is send to the node to make sure that when it's still dead it reports it as fast as possible. + /// You can disable these pings globally here if you rather have it fail on the possible slower original request + /// + public T DisablePing(bool disable = true) + { + this.DisablePings = disable; + return (T) this; + } /// /// This NameValueCollection will be appended to every url NEST calls, great if you need to pass i.e an API key. /// diff --git a/src/Elasticsearch.Net/Connection/HttpConnection.cs b/src/Elasticsearch.Net/Connection/HttpConnection.cs index e273a4aa193..d1cd0b9bc68 100644 --- a/src/Elasticsearch.Net/Connection/HttpConnection.cs +++ b/src/Elasticsearch.Net/Connection/HttpConnection.cs @@ -67,23 +67,23 @@ public virtual ElasticsearchResponse DeleteSync(Uri uri, byte[] data) return this.DoSynchronousRequest(connection, data); } - public virtual bool Ping(Uri uri, int connectTimeout) + public virtual bool Ping(Uri uri) { var request = this.CreateHttpWebRequest(uri, "HEAD"); - request.Timeout = connectTimeout; - request.ReadWriteTimeout = connectTimeout; + request.Timeout = this._ConnectionSettings.PingTimeout.GetValueOrDefault(50); + request.ReadWriteTimeout = this._ConnectionSettings.PingTimeout.GetValueOrDefault(50); using (var response = (HttpWebResponse)request.GetResponse()) { return response.StatusCode == HttpStatusCode.OK; } } - public virtual IList Sniff(Uri uri, int connectTimeout) + public virtual IList Sniff(Uri uri) { - uri = new Uri(uri, "_nodes/_all/clear?timeout=" + connectTimeout); + uri = new Uri(uri, "_nodes/_all/clear?timeout=" + this._ConnectionSettings.PingTimeout.GetValueOrDefault(50)); var request = this.CreateHttpWebRequest(uri, "GET"); - request.Timeout = connectTimeout; - request.ReadWriteTimeout = connectTimeout; + request.Timeout = this._ConnectionSettings.Timeout; + request.ReadWriteTimeout = this._ConnectionSettings.Timeout; using (var response = (HttpWebResponse)request.GetResponse()) using (var responseStream = response.GetResponseStream()) { diff --git a/src/Elasticsearch.Net/Connection/IConnection.cs b/src/Elasticsearch.Net/Connection/IConnection.cs index e9774ff6a22..10f33112bba 100644 --- a/src/Elasticsearch.Net/Connection/IConnection.cs +++ b/src/Elasticsearch.Net/Connection/IConnection.cs @@ -26,8 +26,8 @@ public interface IConnection Task Delete(Uri uri, byte[] data); ElasticsearchResponse DeleteSync(Uri uri, byte[] data); - bool Ping(Uri uri, int connectTimeout); - IList Sniff(Uri uri, int connectTimeout); + bool Ping(Uri uri); + IList Sniff(Uri uri); } } diff --git a/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs b/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs index 7d7aa1ab58d..573cfa64df5 100644 --- a/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs +++ b/src/Elasticsearch.Net/Connection/IConnectionConfigurationValues.cs @@ -17,6 +17,7 @@ public interface IConnectionConfigurationValues int? DeadTimeout { get; } int? MaxDeadTimeout { get; } int? MaxRetries { get; } + bool DisablePings { get; } string ProxyAddress { get; } string ProxyUsername { get; } string ProxyPassword { get; } diff --git a/src/Elasticsearch.Net/Connection/Transport.cs b/src/Elasticsearch.Net/Connection/Transport.cs index fa5e76a0c58..a0bf409ec39 100644 --- a/src/Elasticsearch.Net/Connection/Transport.cs +++ b/src/Elasticsearch.Net/Connection/Transport.cs @@ -83,13 +83,16 @@ public ElasticsearchResponse DoRequest( var postData = PostData(data); ElasticsearchResponse response = null; - - int initialSeed; - var baseUri = this._connectionPool.GetNext(seed, out initialSeed); + + int initialSeed; bool shouldPingHint; + var baseUri = this._connectionPool.GetNext(seed, out initialSeed, out shouldPingHint); bool seenError = false; try { + if (shouldPingHint && !this._configurationValues.DisablePings) + this._connection.Ping(CreateUriToPath(baseUri, "")); + var uri = CreateUriToPath(baseUri, path); response = _doRequest(method, uri, postData); if (response != null && response.SuccessOrKnownError) @@ -160,8 +163,19 @@ public Task DoRequestAsync( if (queryString != null) path += queryString.ToQueryString(); var postData = PostData(data); - int initialSeed; - var baseUri = this._connectionPool.GetNext(seed, out initialSeed); + int initialSeed; bool shouldPingHint; + var baseUri = this._connectionPool.GetNext(seed, out initialSeed, out shouldPingHint); + if (shouldPingHint && !this._configurationValues.DisablePings) + { + try + { + this._connection.Ping(CreateUriToPath(baseUri, "")); + } + catch (Exception e) + { + return this.RetryRequestAsync(method, path, data, retried, baseUri, initialSeed, e); + } + } var uri = CreateUriToPath(baseUri, path); return _doRequestAsync(method, uri, postData).ContinueWith(t=> { diff --git a/src/Elasticsearch.Net/ConnectionPool/EndpointState.cs b/src/Elasticsearch.Net/ConnectionPool/EndpointState.cs index 528fe5a52f7..b84a3916b0e 100644 --- a/src/Elasticsearch.Net/ConnectionPool/EndpointState.cs +++ b/src/Elasticsearch.Net/ConnectionPool/EndpointState.cs @@ -7,7 +7,7 @@ namespace Elasticsearch.Net.ConnectionPool { public class EndpointState { - public int _attempts = 0; + public int _attempts = -1; public DateTime date = new DateTime(); } } diff --git a/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs index d7d77c44d76..e65fb06eda1 100644 --- a/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/IConnectionPool.cs @@ -13,9 +13,12 @@ public interface IConnectionPool int MaxRetries { get; } /// - /// Get the next available Uri for a live node + /// Gets the next live Uri to perform the request on /// - Uri GetNext(int? initialSeed, out int seed); + /// pass the original seed when retrying, this guarantees that the nodes are walked in a predictable manner when multithreading + /// The seed this call started on + /// + Uri GetNext(int? initialSeed, out int seed, out bool shouldPingHint); /// /// Mark the specified Uri as dead diff --git a/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs index 7e4a8fed31b..11933f8e6f5 100644 --- a/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/SingleNodeConnectionPool.cs @@ -18,9 +18,10 @@ public SingleNodeConnectionPool(Uri uri) _uri = uri; } - public Uri GetNext(int? initialSeed, out int seed) + public Uri GetNext(int? initialSeed, out int seed, out bool shouldPingHint) { seed = 0; + shouldPingHint = false; return _uri; } diff --git a/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs index 9fa29a6b294..080ffad2ef1 100644 --- a/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/SniffingConnectionPool.cs @@ -28,11 +28,11 @@ public override void Sniff(IConnection connection, bool fromStartupHint = false) try { - int seed; - var uri = this.GetNext(null, out seed); + int seed; bool shouldPingHint; + var uri = this.GetNext(null, out seed, out shouldPingHint); this._readerWriter.EnterWriteLock(); - var nodes = connection.Sniff(uri, 50); + var nodes = connection.Sniff(uri); if (!nodes.HasAny()) return; @@ -48,12 +48,12 @@ public override void Sniff(IConnection connection, bool fromStartupHint = false) } } - public override Uri GetNext(int? initialSeed, out int seed) + public override Uri GetNext(int? initialSeed, out int seed, out bool shouldPingHint) { try { this._readerWriter.EnterReadLock(); - return base.GetNext(initialSeed, out seed); + return base.GetNext(initialSeed, out seed, out shouldPingHint); } finally { diff --git a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs index 34d02cd0c19..580ecf0824d 100644 --- a/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs +++ b/src/Elasticsearch.Net/ConnectionPool/StaticConnectionPool.cs @@ -31,7 +31,7 @@ public StaticConnectionPool( _uriLookup = _nodeUris.ToDictionary(k=>k, v=> new EndpointState()); } - public virtual Uri GetNext(int? initialSeed, out int seed) + public virtual Uri GetNext(int? initialSeed, out int seed, out bool shouldPingHint) { var count = _nodeUris.Count; if (initialSeed.HasValue) @@ -42,6 +42,7 @@ public virtual Uri GetNext(int? initialSeed, out int seed) var initialOffset = initialSeed ?? increment; int i = initialOffset % count, attempts = 0; seed = i; + shouldPingHint = false; Uri uri = null; do { @@ -52,6 +53,9 @@ public virtual Uri GetNext(int? initialSeed, out int seed) var now = _dateTimeProvider.Now(); if (state.date <= now) { + if (state._attempts != 0) + shouldPingHint = true; + state._attempts = 0; return uri; }

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𝔷Xf~k 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 z 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 diff --git a/dep/FakeItEasy.1.17.0/lib/net40/FakeItEasy.dll b/dep/FakeItEasy.1.17.0/lib/net40/FakeItEasy.dll deleted file mode 100644 index 5bca0aec22bc9159a88a166d4dbc42a5cfe5891b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647680 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