mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Merge branch 'master' into vpc
This commit is contained in:
commit
95449da4be
17
.gitignore
vendored
17
.gitignore
vendored
@ -1,3 +1,20 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
build/replace.properties
|
||||
build/build.number
|
||||
bin/
|
||||
|
||||
142
KEYS
Normal file
142
KEYS
Normal file
@ -0,0 +1,142 @@
|
||||
This file contains the PGP keys of various developers.
|
||||
|
||||
Users: pgp < KEYS
|
||||
gpg --import KEYS
|
||||
Developers:
|
||||
pgp -kxa <your name> and append it to this file.
|
||||
(pgpk -ll <your name> && pgpk -xa <your name>)
|
||||
>> this file.
|
||||
(gpg --list-sigs <your name>
|
||||
&& gpg --armor --export <your name>) >>
|
||||
this file.
|
||||
Type Bits/KeyID Date User ID
|
||||
pub 4096R/CC56CEA8 2012-08-06 [expires: 2016-08-06]
|
||||
uid Chip Childers <chipchilders@apache.org>
|
||||
sig 3 CC56CEA8 2012-08-06 Chip Childers <chipchilders@apache.org>
|
||||
sub 4096R/A99A5D58 2012-08-06 [expires: 2016-08-06]
|
||||
sig CC56CEA8 2012-08-06 Chip Childers <chipchilders@apache.org>
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
|
||||
Comment: GPGTools - http://gpgtools.org
|
||||
|
||||
mQINBFAgC58BEADAGUUl5EP3pNsVbZMHejGbImIDvbNCkuGCmiVoC154k7FO7YjH
|
||||
PnbB7kyzfyfsj8eA+mgHHvbzOTk/7dDeaudL561FfsTSxyeVt1ctzBYh9z2V2EMa
|
||||
9mv48c226QXRf/GInzLS1iD1bOPq9H5RywW4h1u/JqT9KiuBuwowliDlHRornQRg
|
||||
dhxnjITO6xOhQajqfVXQ1Kz3DcbU9OydfPLKshbfRJC6U5dhGk4AGWKsAJHJDlzj
|
||||
SPswcJrkuDo0GB9o+nPYrKFRJZy5AyDtr7gmRz6EiGjlZWIf38KxfeNcE6oQPP+7
|
||||
9Exlx1ZnWT5Uv/8yU2lgtzhi7/zHw+uB6Ujh0+zCcVgS2Y9ldsA7T0b/Tvlp/Yz4
|
||||
hYUMVI6tPPSgehIzRMT4Ym4AcOG/0h5YtecSrOdHIl00htfr1Nj9vIAv8FurebVR
|
||||
fnfaYbJNKgN3MJLdMSvmlaxvZipIZ6EbWU2BUl7mtZR8zsIoMJedxx9w38UBwdhp
|
||||
jlxtH5ibZP/WKmIf2hqB4sYrwDioZailjRreNlC5drkljcOGoofXgu/Ahu6dZGHu
|
||||
4sVH/g+8YhQt7zVs6ytaGLTud33NAELSn15DRrfxQm2sEFhHFKW8Lg0LvjB1RtiM
|
||||
l2CmFCXk0MMi9IrU4/7q9E7teatztPBcF6Y+Afs16MqUfR81elyPF7YQlQARAQAB
|
||||
tCdDaGlwIENoaWxkZXJzIDxjaGlwY2hpbGRlcnNAYXBhY2hlLm9yZz6JAj0EEwEC
|
||||
ACcCGy8FCQeGH4ACHgECF4AFAlAgEF0FCwkIBwMFFQoJCAsFFgIDAQAACgkQw6OS
|
||||
dcxWzqg0eBAAoHiNFFPNR0zdOELqz0luaTaNNUEit+LBHB1eA63hwY4PplfkOCg+
|
||||
UT2lojkZtsiNYuPi++Sub11+HQpVf4uDAGy5VtyIUl/tO3qRmULcJJwoXrYqHxd9
|
||||
xrrWYRhasKGNqPEB873UxMPgWVZYcKPRgwZKXUgLl7Dub5iCSVN/lCto5D45R8jA
|
||||
RzeTjkNvyA+ZPUiblCuKZPSqd4WCN5MRG4muN3+5hwCL6xyrXIvsPkaZXQqhjw0Q
|
||||
89PUSHhruoHzAi41lscXPF1ap93qvJ4QO12YM9GCQxLRyUOJStLj2OugOjVN/d0q
|
||||
1ryuBo8ND/W/gYjzIPAQ2U5qkQEjQB/vfuIGl8Gn8s5XA9KtXHqVwz2hbGMpIoCM
|
||||
0+27JEikrQOitfw86f0aWT1kaceMti7N2ECDEwjsnFf0Uz8dEJ2eInKZrlwgmM0S
|
||||
/K2gf8/9pbhZ1X9LDYkATCqPzFRLyOuJeHNwcxSDPiWAALoPN57jLJ1702XjGcQt
|
||||
NBf1p+ylXmdzZjcUz9mKHIEEX7unwp74AVEOyIXuLlyScDR9qTSHhVzCpWQntl6u
|
||||
0WQmbaoLdAfhu5b80raMdnAbyGQIVtNV4RU0dP8IowkE7cHekHb3NE12K7n3Yx+d
|
||||
msIXAMsvWx5scfS0HAqIauaA/Sg26lXwj6w60KB+wE1xA2VAWGunSP25Ag0EUCAL
|
||||
nwEQAOQptLWHnr8uzTZlaRr1N6Aabvz3cLFXf4HCJdWMx9vShPuwWZqrJw4CAnVj
|
||||
hZA/7NgyBXfBVfcW4Yno0KkHkpKsYy1pYUXIeBDX1FTLZ5H4o7Yv79RaHNl3kgX8
|
||||
OodIMGvAee2z4twkniO/u9mnjy1i56hoeQLRVfZZ25Rnlr5PnRdFcqBjMC91i6nr
|
||||
XdS47Lb1Ttln0yPYtN9j5sD09HZiuCY/b685nB/UlxKhTsE2XfPjZFuBznnOl01/
|
||||
FLX8Nn/SeEySdI0gOlzLXU3EAnp0k1OLDXMXC8/EQ/bB4VIwuS4Vu3RmKA0kikgm
|
||||
nKeuPOTfCpBzzyo/NXCop1Ik/iKgVkp12wRwMp/K5fDg88ib+A8Naxdu25dQCUxH
|
||||
pJJJ+KwhNf/UKVGpUZOMDAYmUCfisNbulOeS0RMKNzwMXaZzQSvquO8GSlnQ0aal
|
||||
7Jjl/X/x1boS1dfMAlEeC7jQOm4O4HqSGPEIdoyNbUKupFjytYq3HZ/WMF79kyFh
|
||||
Xx7khOjiCtopc/sAasFCMa+55/OBN6FThQ4f97UdlyEVxnMADnqOH5uQH5oJ5Vck
|
||||
k35JOAXWY2fbZSkvKLj7hUZhIx5ja7l4uEnAkM2SxXS+mW9oRfX+pxRAEziUMSaZ
|
||||
VuGcHkiO/E8viWxtKWbkQw5Ii6OpNLy9wF7YiVSXr7b27lm5ABEBAAGJBEQEGAEC
|
||||
AA8FAlAgC58CGy4FCQeGH4ACKQkQw6OSdcxWzqjBXSAEGQECAAYFAlAgC58ACgkQ
|
||||
lD2YH6maXVgyUhAAhWGhG52edHVMELz4wWaqiMKKNPM6GKsI0ZvmaroF0EWt1n9U
|
||||
TGDyXK+VX/7WXIhqWPdsT390zmwV0bAdXdziPoeQ7DlEz74IRzMBsyEZwMtZ5Q83
|
||||
JGDmhjCr3NBVgckzZOl0JXtzyQovtLvCN88WCUIuNaZ2GI6VG8wS3prsKOL9hRNx
|
||||
y4NNPpCW/QB1/N4A3QlBdKSGyTKCg9VsMwvtZmBdupRipzj2X2DsTOr16TGU4OVW
|
||||
GNkZ8rUIC6vG7iQctLO8efml3heQU06HJoT+uTZMfXyd7wxHc6SOAENy4ezF62Fd
|
||||
O9+rtZkE3u0oiW5HUEO4DcE+ufA+Rz/pK6RV65AArb3j6yeX7/VefTGev4SyV+dU
|
||||
9gplLiXgNEgTfr70uBg+cGV5nxUp0O7ooHMn1g2CnVIkBdPts2rU0wwI5JipsJJ0
|
||||
DpK+1x51D7cpUcQ4u/oWtUGHPMVIxXjDWVfwzs9QGy4H0/lqD8LOStuWkeY2IC08
|
||||
1ErnY/1TWhmXX7pieh0Zjn1uxi49nxJ9qW0u70CTSzJzz+/17G+f1n9rauKJqVOy
|
||||
HIGU1TgJ7DjPiwvmMllfQFpRNf/5SV0/tjvsnjzN5YCjN4YaEbVajc9H/Wi8bVNg
|
||||
ANb5v5FLuhAi04DO0k3bWewd9KE3H7I2uQNaNck/iuYEL6ImAPMA0GUzIbbkxA/+
|
||||
Mp4fBbo/i4JpDXEvg8Umeg0wx+otI2ogYFREZjYBWH8txMfGXKVjIfBsFclCm47v
|
||||
H9wDJ7ISeOR1atWDjHYBE4J2JNqJJREIecztFPQBTo+YUgP6/zDO2RxeZRGYP1rO
|
||||
+Eld5++kbFEWgi1kWxTKwMlomcoP6hdabA8v8KNZLxRGrKYfE+JMU+PHrfBvO2Ql
|
||||
4BZ1kmmTaWmGXrgQgpJeWiirF8Ptg2Mq8rCfXnFbOp89ZRNyFDV2Fgyw3BPbPPXE
|
||||
aygCwpRgHgUrp32gBAGdsdghNn8kN0DFygZKE0kRc6hR7ALiQWoTbA/G/BJjpJQt
|
||||
RhR4k58e2kWh1uuyFaxcB+Vp/6HXYIe6o8fhX8jwVM47WbINFGbvaz1gGpGzJCY1
|
||||
HJBwTMu5IgQ8n69Gs7DCDTVqBOqiDKtdQyZBheWCsIJUkvBHtxkUb7K0kcIA3Fet
|
||||
46k2GFOEkHCxbKpjeFhcW4atmEShOViiGKVR+g689feVQB6+mI9O4fXmsGO4Zq/k
|
||||
mEku0Eg95q3+ugVpz8DLctnlvIHVdf6RPieojBKbqPu/34iJqenHmeQUy1TkRKIx
|
||||
ZEX2mjtW/Tz5VnUX/MUFA67sGIpGJMsvr2sk3Zyovl7GVfsq5K2UqK5pRc2rO8zt
|
||||
QHVJ58ybqkmx2NgDgmi1gvsoV51mn6TTVs1S/stCtW4=
|
||||
=eCNG
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
Type Bits/KeyID Date User ID
|
||||
pub 4096R/DB3ECA42 2012-08-07 [expires: 2017-08-06]
|
||||
uid Wido den Hollander <wido@widodh.nl>
|
||||
sig 3 DB3ECA42 2012-08-07 Wido den Hollander <wido@widodh.nl>
|
||||
sub 4096R/50E9D98F 2012-08-07
|
||||
sig DB3ECA42 2012-08-07 Wido den Hollander <wido@widodh.nl>
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.11 (GNU/Linux)
|
||||
|
||||
mQINBFAg4ogBEADPUAOmj/KdLjp5Wz8oW5+fnx3gnhVABh1Xg5Uf36tDCLogSMya
|
||||
Y9S8lZb8PgvtkK6fOqUCoViUvXAWM5/k7JbIv70cWGc+M4XgZTnI6GWlz08EkzNT
|
||||
/DX4Y+OAks602KYLXVepI4SdpCKaZJK14Az48cfzFEZDmzMuNtS/sQhXQZSXe7pu
|
||||
7pBPpQ2GP1aYqGRBYTkMD9fjQAM2U3qJ/5K0AzeIciOI6QxD+h2fIBMnu+XV0g0C
|
||||
2SG6UVy1RBVYzylWZ1p63brFtskjDnPoXrjXOx3iUxV/pEH7nKziHDolMShp+bni
|
||||
Cnw5QcrqkBQls84d+cdteJ40ZzoyiWg0isIsxLMA2L71WkziJZkigqqQ8O/HI4Dl
|
||||
3/mz1I5R2hphorkBPVc5ZAirhB38FqLgW1eH0rd/TJR428APYkbh6QnWRCLfGl7C
|
||||
UsdYmpUaNjFZFrHCBoyA9p8pNzsJuZBVIBa+xheJk71HT5zeAk+uDPuNJH0Tc5qc
|
||||
E7XRxaaj0QQxBlmkgdW0kMIO93jjrCTuzmgJMAEym1KSPiQTJmr0fUuxLEL7gTy3
|
||||
a0I9sEnhbyn+yl6KZp0Ey/pZ8UOLD4TBwx1r1kXWXD7evTs0CCoPeyP0GRyjlhqH
|
||||
WLlhEH2MtSWn+0SQIHiGh8XNh7ToySCquk1jslV89aX/sezRLJuly0k2hwARAQAB
|
||||
tCNXaWRvIGRlbiBIb2xsYW5kZXIgPHdpZG9Ad2lkb2RoLm5sPokCPgQTAQIAKAIb
|
||||
AwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAlAg6F4FCQlmrtgACgkQAZtYLds+
|
||||
ykLICxAAlSVW5i3yIuBhnjIpCPPkOtABJEz2zImyl3VNJ/JuRT1nOmcvsu39MALj
|
||||
m93qsVvZOulyiYHMKg61QWHRXHimqdJe7wUH64Fm/Gf85jqzf6Db0HFCyR4ADHKH
|
||||
8XFNNiGctutPAwDeUaUGFYE3RtDEU105z/SovfzFrLOSLQ9o1+48T0Dm5iCezHr1
|
||||
3AF7HJpbQ9D0ng5CTEK2YhYHAS6rPf48MJ949WQoSrLt1X3WEu62Bgcuwa8Ph9AM
|
||||
7Y4K+uVNWNft+xK+SJml0pkYBTwc+tIXhT6tirnFa731g5wKDLIpTc5OWYvirO3w
|
||||
EO+G0kuZsDRyQTqCo1DBax30xVazNKQ1/OTDZpVAkkejCqrh7UY4tc2C2FL+9V0b
|
||||
I6oeysYZpO23CC92Qe5NESavWOUGl9v3rzRCON2rkkDEi8jFCKGsJIoL8S6LjeDn
|
||||
b0JASbXhYhZMmZY1QwSKvlbnhQkxPb0Ww3jALQV31AWTwN9ACS0/gwh1+gCE+zvm
|
||||
paoD3yGyZZbTOUx4jQq0diMpDRsxboqsKzPpUMCL7w1YNQpPH4KHNiFGJzLsL1LF
|
||||
+kwXVLq0hJjblKr0H5hfbBLODG1ZgOC5GkkcMcM73PDq4zOKgGW8O+yrkPc2Rx0/
|
||||
ZAP117yP5RlgL2LLA1H0EgS2TKZanM9MxwBhS+YAV/e+hWEPpCa5Ag0EUCDiiAEQ
|
||||
AKnpED7QljHFLNrzftOF67EOcCeu/tew+gaok135taDgsKW7FMfjF+uQje0nloM8
|
||||
482TSFRJAp74fFiKjNUPXcGNaUU2XwDiSDsnuzqRStzJ58jxVcGbnV8nHCw4X+0w
|
||||
BQVo+PCaj5f8HAFdiZ4EHRC/P3BuH9QLNEY9zziPw0LG5vn+0Lr0DTsdWQl2vWWc
|
||||
SIUNd+QnQ0icnSY3FLdxyscqHkUCOtu7NxI5WzdjtaFvgxZbPYJQHfm7B3OAJmg7
|
||||
/Gn4YSbN2p78sYLKfKu7YoYG1+wP8cJMHgYM03b7WQgHqII/v6RCNRDtT1k1Hfw2
|
||||
Dxid3IWkd8JUlwJFvnAL2sBgHqAt4xtooRkHcAnbcH9cO88ULgqWIfIEYosd/3/v
|
||||
qvWTKZb/9B0p61gq6yOGOs1swAEWDdkkAAZJK6O0O5x/7J005uX3W9H8J2DqJQYK
|
||||
jvp8Fph1sv0HVb+AfxhEtS/wfw34iaebNANMy5e369kt9oBXISubksQwgKFqPcsE
|
||||
xteeyEhZ3qZUBmcTjl9PjrgFn2fMXoMRF9DB19dDFXISvg3tyJ+FCe+/Kppn6u+a
|
||||
X7e0AltGLMBmfs1rcTPkmAFJglL5zi994iIXDv7/KWxX9QQC5BRICm5pSL8inWoO
|
||||
6mU0cD5F9FrmkrfEVV+Ajmy/cH9UIiOJijdK7e/ImxShABEBAAGJAh8EGAECAAkF
|
||||
AlAg4ogCGwwACgkQAZtYLds+ykI73Q//fYNKhEAvrFyF2d8OwVqHhzifIqsRycOg
|
||||
D0Ib3tOkeNgwZYI+x6QIiYFHQalcMUFhwUea7RKYkW17Rhpj6W5hj7ie5x6cvtzI
|
||||
5CeArcvoBj0KIRGUvsRl9XplXdaBhmBGibvEQBac2oCIVCBtTbsjkQlXPs+Q2SaJ
|
||||
kyL8rbdmt06Tsc3iwN+ZjPGIluifaacvurJH8tntCWdhnFKwSwfsa3ZfJwuf3O2Q
|
||||
J1q7JwYOwQbTR3K5CAyZ0HVYksiIoUqy6IzYvNmilAx2hkVCm2HjWXEvTwjSd709
|
||||
yXBbm7X9JkB0RYSzpHEBqL1aB7GMe/pCeGLgcGRoA0ZyYXMoM7/gnE/ZCDG2fWGm
|
||||
JZZ0LJ8QVlZq4nG4lkco7mZqDOycyA68nfbpGaSXhJ7iKbdk4DT0OMr//RlHsiif
|
||||
AZFM2ppJ5cOmJ9USMkgyHziS6zexM0bYzzPJsLgoq2rjelmzE0pu7NoIcOu3KlkS
|
||||
HCLDLqIZEYg7EySBVgqJ67FlnpAMY1IaUJN4rYQ4LQEq0uUfmmhZnlp4qQQnZjFR
|
||||
MrkLZNjHiv8v6JGklVurAQstvZBQXrUUH+/JhJM0U6gsPzgsn4DlpxFyr3nM1aaJ
|
||||
uHR4OoUFg2G1Hbm7k4eb1SFT1jPEe3is4Oc8t1ORRfSBIH0FfLF1ylLFpSma5q+3
|
||||
HpWraBFdP78=
|
||||
=I9dG
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
@ -26,9 +26,7 @@ under the License.
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/server"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/utils"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/agent"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/console"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/console-proxy"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/console-viewer"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/deps"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/setup"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/test"/>
|
||||
|
||||
@ -22,64 +22,64 @@ under the License.
|
||||
<classpathentry kind="src" path="test"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/deps"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/antlr-2.7.6.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/apache-log4j-extras-1.0.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/axiom-api-1.2.8.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/axiom-impl-1.2.8.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/axis2-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/axis2-adb-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/axis2-ant-plugin-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/axis2-jaxbri-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/axis2-jaxws-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/axis2-jibx-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/axis2-json-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/axis2-kernel-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/axis2-transport-http-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/axis2-transport-local-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/cloud-gson.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/commons-codec-1.4.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/commons-collections-3.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/commons-fileupload-1.2.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/commons-httpclient-3.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/commons-io-1.4.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/commons-logging-1.1.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/dom4j-1.6.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/hibernate3.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/httpcore-4.0.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/javassist-3.9.0.GA.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/jaxb-api-2.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/jaxb-impl-2.1.7.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/jaxb-xjc-2.1.7.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/jsch-0.1.42.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/json_simple-1.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/jta-1.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/junit-4.8.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/log4j-1.2.15.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/mail-1.4.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/mysql-connector-java-5.1.7-bin.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/neethi-2.0.4.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/slf4j-api-1.5.11.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/slf4j-jdk14-1.5.11.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/woden-api-1.0M8.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/woden-impl-dom-1.0M8.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/xercesImpl.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/xml-apis.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/XmlSchema-1.4.3.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/bcprov-jdk16-145.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/commons-collections-3.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/joda-time-1.5.2.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/opensaml-1.1.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/opensaml-2.2.3.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/openws-1.2.2.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/rampart-core-1.5.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/rampart-policy-1.5.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/rampart-trust-1.5.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/slf4j-api-1.5.11.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/slf4j-jdk14-1.5.11.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/velocity-1.5.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/wss4j-1.5.8.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/xmlsec-1.4.2.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/awsapi-lib/rampart-lib/xmltooling-1.2.0.jar"/>
|
||||
<classpathentry kind="lib" path="/Users/john1/qgit/deps/cloudbridge-lib/servlet-api.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/antlr-2.7.6.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/apache-log4j-extras-1.0.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/axiom-api-1.2.8.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/axiom-impl-1.2.8.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/axis2-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/axis2-adb-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/axis2-ant-plugin-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/axis2-jaxbri-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/axis2-jaxws-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/axis2-jibx-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/axis2-json-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/axis2-kernel-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/axis2-transport-http-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/axis2-transport-local-1.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/cloud-gson.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/commons-codec-1.4.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/commons-collections-3.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/commons-fileupload-1.2.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/commons-httpclient-3.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/commons-io-1.4.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/commons-logging-1.1.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/dom4j-1.6.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/hibernate3.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/httpcore-4.0.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/javassist-3.9.0.GA.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/jaxb-api-2.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/jaxb-impl-2.1.7.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/jaxb-xjc-2.1.7.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/jsch-0.1.42.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/json_simple-1.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/jta-1.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/junit-4.8.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/log4j-1.2.15.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/mail-1.4.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/mysql-connector-java-5.1.7-bin.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/neethi-2.0.4.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/slf4j-api-1.5.11.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/slf4j-jdk14-1.5.11.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/woden-api-1.0M8.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/woden-impl-dom-1.0M8.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/xercesImpl.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/xml-apis.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/XmlSchema-1.4.3.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/bcprov-jdk16-145.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/commons-collections-3.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/joda-time-1.5.2.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/opensaml-1.1.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/opensaml-2.2.3.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/openws-1.2.2.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/rampart-core-1.5.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/rampart-policy-1.5.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/rampart-trust-1.5.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/slf4j-api-1.5.11.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/slf4j-jdk14-1.5.11.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/velocity-1.5.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/wss4j-1.5.8.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/xmlsec-1.4.2.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/awsapi-lib/rampart-lib/xmltooling-1.2.0.jar"/>
|
||||
<classpathentry kind="lib" path="/deps/cloud-servlet-api.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,607 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema
|
||||
xmlns:tns="http://s3.amazonaws.com/doc/2006-03-01/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
targetNamespace="http://s3.amazonaws.com/doc/2006-03-01/">
|
||||
|
||||
<xsd:element name="CreateBucket">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="AccessControlList" type="tns:AccessControlList" minOccurs="0"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:complexType name="MetadataEntry">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Name" type="xsd:string"/>
|
||||
<xsd:element name="Value" type="xsd:string"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="CreateBucketResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="CreateBucketReturn" type="tns:CreateBucketResult"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:complexType name="Status">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Code" type="xsd:int"/>
|
||||
<xsd:element name="Description" type="xsd:string"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="Result">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Status" type="tns:Status"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="CreateBucketResult">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="BucketName" type="xsd:string"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="DeleteBucket">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="DeleteBucketResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="DeleteBucketResponse" type="tns:Status"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:complexType name="BucketLoggingStatus">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="LoggingEnabled" type="tns:LoggingSettings" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="LoggingSettings">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="TargetBucket" type="xsd:string"/>
|
||||
<xsd:element name="TargetPrefix" type="xsd:string"/>
|
||||
<xsd:element name="TargetGrants" type="tns:AccessControlList" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="GetBucketLoggingStatus">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="GetBucketLoggingStatusResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="GetBucketLoggingStatusResponse" type="tns:BucketLoggingStatus"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="SetBucketLoggingStatus">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="BucketLoggingStatus" type="tns:BucketLoggingStatus"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="SetBucketLoggingStatusResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="GetObjectAccessControlPolicy">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="Key" type="xsd:string"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="GetObjectAccessControlPolicyResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="GetObjectAccessControlPolicyResponse" type="tns:AccessControlPolicy"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="GetBucketAccessControlPolicy">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="GetBucketAccessControlPolicyResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="GetBucketAccessControlPolicyResponse" type="tns:AccessControlPolicy"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:complexType abstract="true" name="Grantee"/>
|
||||
|
||||
<xsd:complexType name="User" abstract="true">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="tns:Grantee"/>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="AmazonCustomerByEmail">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="tns:User">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="EmailAddress" type="xsd:string"/>
|
||||
</xsd:sequence>
|
||||
</xsd:extension>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="CanonicalUser">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="tns:User">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="ID" type="xsd:string"/>
|
||||
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:extension>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="Group">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="tns:Grantee">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="URI" type="xsd:string"/>
|
||||
</xsd:sequence>
|
||||
</xsd:extension>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:simpleType name="Permission">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="READ"/>
|
||||
<xsd:enumeration value="WRITE"/>
|
||||
<xsd:enumeration value="READ_ACP"/>
|
||||
<xsd:enumeration value="WRITE_ACP"/>
|
||||
<xsd:enumeration value="FULL_CONTROL"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:simpleType name="StorageClass">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="STANDARD"/>
|
||||
<xsd:enumeration value="UNKNOWN"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:complexType name="Grant">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Grantee" type="tns:Grantee"/>
|
||||
<xsd:element name="Permission" type="tns:Permission"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="AccessControlList">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Grant" type="tns:Grant" minOccurs="0" maxOccurs="100"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="CreateBucketConfiguration">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="LocationConstraint" type="tns:LocationConstraint"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="LocationConstraint">
|
||||
<xsd:simpleContent>
|
||||
<xsd:extension base="xsd:string"/>
|
||||
</xsd:simpleContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="AccessControlPolicy">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Owner" type="tns:CanonicalUser"/>
|
||||
<xsd:element name="AccessControlList" type="tns:AccessControlList"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="SetObjectAccessControlPolicy">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="Key" type="xsd:string"/>
|
||||
<xsd:element name="AccessControlList" type="tns:AccessControlList"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="SetObjectAccessControlPolicyResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="SetBucketAccessControlPolicy">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="AccessControlList" type="tns:AccessControlList" minOccurs="0"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="SetBucketAccessControlPolicyResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="GetObject">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="Key" type="xsd:string"/>
|
||||
<xsd:element name="GetMetadata" type="xsd:boolean"/>
|
||||
<xsd:element name="GetData" type="xsd:boolean"/>
|
||||
<xsd:element name="InlineData" type="xsd:boolean"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="GetObjectResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="GetObjectResponse" type="tns:GetObjectResult"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:complexType name="GetObjectResult">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="tns:Result">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Metadata" type="tns:MetadataEntry" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xsd:element name="Data" type="xsd:base64Binary" nillable="true"/>
|
||||
<xsd:element name="LastModified" type="xsd:dateTime"/>
|
||||
<xsd:element name="ETag" type="xsd:string"/>
|
||||
</xsd:sequence>
|
||||
</xsd:extension>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="GetObjectExtended">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="Key" type="xsd:string"/>
|
||||
<xsd:element name="GetMetadata" type="xsd:boolean"/>
|
||||
<xsd:element name="GetData" type="xsd:boolean"/>
|
||||
<xsd:element name="InlineData" type="xsd:boolean"/>
|
||||
<xsd:element name="ByteRangeStart" type="xsd:long" minOccurs="0"/>
|
||||
<xsd:element name="ByteRangeEnd" type="xsd:long" minOccurs="0"/>
|
||||
<xsd:element name="IfModifiedSince" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="IfUnmodifiedSince" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="IfMatch" type="xsd:string" minOccurs="0" maxOccurs="100"/>
|
||||
<xsd:element name="IfNoneMatch" type="xsd:string" minOccurs="0" maxOccurs="100"/>
|
||||
<xsd:element name="ReturnCompleteObjectOnConditionFailure" type="xsd:boolean" minOccurs="0"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="GetObjectExtendedResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="GetObjectResponse" type="tns:GetObjectResult"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="PutObject">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="Key" type="xsd:string"/>
|
||||
<xsd:element name="Metadata" type="tns:MetadataEntry" minOccurs="0" maxOccurs="100"/>
|
||||
<xsd:element name="ContentLength" type="xsd:long"/>
|
||||
<xsd:element name="AccessControlList" type="tns:AccessControlList" minOccurs="0"/>
|
||||
<xsd:element name="StorageClass" type="tns:StorageClass" minOccurs="0"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="PutObjectResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="PutObjectResponse" type="tns:PutObjectResult"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:complexType name="PutObjectResult">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="ETag" type="xsd:string"/>
|
||||
<xsd:element name="LastModified" type="xsd:dateTime"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="PutObjectInline">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="Key" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" maxOccurs="100" name="Metadata" type="tns:MetadataEntry"/>
|
||||
<xsd:element name="Data" type="xsd:base64Binary"/>
|
||||
<xsd:element name="ContentLength" type="xsd:long"/>
|
||||
<xsd:element name="AccessControlList" type="tns:AccessControlList" minOccurs="0"/>
|
||||
<xsd:element name="StorageClass" type="tns:StorageClass" minOccurs="0"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="PutObjectInlineResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="PutObjectInlineResponse" type="tns:PutObjectResult"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="DeleteObject">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="Key" type="xsd:string"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="DeleteObjectResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="DeleteObjectResponse" type="tns:Status"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="ListBucket">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="Prefix" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Marker" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="MaxKeys" type="xsd:int" minOccurs="0"/>
|
||||
<xsd:element name="Delimiter" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="ListBucketResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="ListBucketResponse" type="tns:ListBucketResult"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:complexType name="ListEntry">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Key" type="xsd:string"/>
|
||||
<xsd:element name="LastModified" type="xsd:dateTime"/>
|
||||
<xsd:element name="ETag" type="xsd:string"/>
|
||||
<xsd:element name="Size" type="xsd:long"/>
|
||||
<xsd:element name="Owner" type="tns:CanonicalUser" minOccurs="0"/>
|
||||
<xsd:element name="StorageClass" type="tns:StorageClass"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="PrefixEntry">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Prefix" type="xsd:string"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ListBucketResult">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Metadata" type="tns:MetadataEntry" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xsd:element name="Name" type="xsd:string"/>
|
||||
<xsd:element name="Prefix" type="xsd:string"/>
|
||||
<xsd:element name="Marker" type="xsd:string"/>
|
||||
<xsd:element name="NextMarker" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="MaxKeys" type="xsd:int"/>
|
||||
<xsd:element name="Delimiter" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="IsTruncated" type="xsd:boolean"/>
|
||||
<xsd:element name="Contents" type="tns:ListEntry" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xsd:element name="CommonPrefixes" type="tns:PrefixEntry" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="ListAllMyBuckets">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="ListAllMyBucketsResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="ListAllMyBucketsResponse" type="tns:ListAllMyBucketsResult"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:complexType name="ListAllMyBucketsEntry">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Name" type="xsd:string"/>
|
||||
<xsd:element name="CreationDate" type="xsd:dateTime"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ListAllMyBucketsResult">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Owner" type="tns:CanonicalUser"/>
|
||||
<xsd:element name="Buckets" type="tns:ListAllMyBucketsList"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ListAllMyBucketsList">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Bucket" type="tns:ListAllMyBucketsEntry" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="PostResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Location" type="xsd:anyURI"/>
|
||||
<xsd:element name="Bucket" type="xsd:string"/>
|
||||
<xsd:element name="Key" type="xsd:string"/>
|
||||
<xsd:element name="ETag" type="xsd:string"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:simpleType name="MetadataDirective">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="COPY"/>
|
||||
<xsd:enumeration value="REPLACE"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="CopyObject">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="SourceBucket" type="xsd:string"/>
|
||||
<xsd:element name="SourceKey" type="xsd:string"/>
|
||||
<xsd:element name="DestinationBucket" type="xsd:string"/>
|
||||
<xsd:element name="DestinationKey" type="xsd:string"/>
|
||||
<xsd:element name="MetadataDirective" type="tns:MetadataDirective" minOccurs="0"/>
|
||||
<xsd:element name="Metadata" type="tns:MetadataEntry" minOccurs="0" maxOccurs="100"/>
|
||||
<xsd:element name="AccessControlList" type="tns:AccessControlList" minOccurs="0"/>
|
||||
<xsd:element name="CopySourceIfModifiedSince" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="CopySourceIfUnmodifiedSince" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="CopySourceIfMatch" type="xsd:string" minOccurs="0" maxOccurs="100"/>
|
||||
<xsd:element name="CopySourceIfNoneMatch" type="xsd:string" minOccurs="0" maxOccurs="100"/>
|
||||
<xsd:element name="StorageClass" type="tns:StorageClass" minOccurs="0"/>
|
||||
<xsd:element name="AWSAccessKeyId" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0"/>
|
||||
<xsd:element name="Signature" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="Credential" type="xsd:string" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="CopyObjectResponse">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="CopyObjectResult" type="tns:CopyObjectResult" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:complexType name="CopyObjectResult">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="LastModified" type="xsd:dateTime"/>
|
||||
<xsd:element name="ETag" type="xsd:string"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="RequestPaymentConfiguration">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Payer" type="tns:Payer" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:simpleType name="Payer">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="BucketOwner"/>
|
||||
<xsd:enumeration value="Requester"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
</xsd:schema>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,370 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<wsdl:definitions
|
||||
targetNamespace="http://s3.amazonaws.com/doc/2006-03-01/"
|
||||
xmlns:tns="http://s3.amazonaws.com/doc/2006-03-01/"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
|
||||
<wsdl:types>
|
||||
<xsd:schema
|
||||
elementFormDefault="qualified"
|
||||
targetNamespace="http://s3.amazonaws.com/doc/2006-03-01/">
|
||||
<xsd:include schemaLocation="http://s3.amazonaws.com/doc/2006-03-01/AmazonS3.xsd"/>
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="PutObjectRequest">
|
||||
<wsdl:part element="tns:PutObject" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="PutObjectInlineResponse">
|
||||
<wsdl:part element="tns:PutObjectInlineResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="CreateBucketResponse">
|
||||
<wsdl:part element="tns:CreateBucketResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetObjectExtendedResponse">
|
||||
<wsdl:part element="tns:GetObjectExtendedResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetObjectRequest">
|
||||
<wsdl:part element="tns:GetObject" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetObjectAccessControlPolicyRequest">
|
||||
<wsdl:part element="tns:GetObjectAccessControlPolicy" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetBucketAccessControlPolicyRequest">
|
||||
<wsdl:part element="tns:GetBucketAccessControlPolicy" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="SetObjectAccessControlPolicyRequest">
|
||||
<wsdl:part element="tns:SetObjectAccessControlPolicy" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="SetBucketAccessControlPolicyRequest">
|
||||
<wsdl:part element="tns:SetBucketAccessControlPolicy" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetBucketLoggingStatusRequest">
|
||||
<wsdl:part element="tns:GetBucketLoggingStatus" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="SetBucketLoggingStatusRequest">
|
||||
<wsdl:part element="tns:SetBucketLoggingStatus" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="ListBucketResponse">
|
||||
<wsdl:part element="tns:ListBucketResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="ListAllMyBucketsResponse">
|
||||
<wsdl:part element="tns:ListAllMyBucketsResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetObjectExtendedRequest">
|
||||
<wsdl:part element="tns:GetObjectExtended" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="PutObjectResponse">
|
||||
<wsdl:part element="tns:PutObjectResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="PutObjectInlineRequest">
|
||||
<wsdl:part element="tns:PutObjectInline" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="DeleteObjectResponse">
|
||||
<wsdl:part element="tns:DeleteObjectResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="DeleteBucketRequest">
|
||||
<wsdl:part element="tns:DeleteBucket" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="ListBucketRequest">
|
||||
<wsdl:part element="tns:ListBucket" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="ListAllMyBucketsRequest">
|
||||
<wsdl:part element="tns:ListAllMyBuckets" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetObjectResponse">
|
||||
<wsdl:part element="tns:GetObjectResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetObjectAccessControlPolicyResponse">
|
||||
<wsdl:part element="tns:GetObjectAccessControlPolicyResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetBucketAccessControlPolicyResponse">
|
||||
<wsdl:part element="tns:GetBucketAccessControlPolicyResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="SetObjectAccessControlPolicyResponse">
|
||||
<wsdl:part element="tns:SetObjectAccessControlPolicyResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="SetBucketAccessControlPolicyResponse">
|
||||
<wsdl:part element="tns:SetBucketAccessControlPolicyResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="SetBucketLoggingStatusResponse">
|
||||
<wsdl:part element="tns:SetBucketLoggingStatusResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetBucketLoggingStatusResponse">
|
||||
<wsdl:part element="tns:GetBucketLoggingStatusResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="CreateBucketRequest">
|
||||
<wsdl:part element="tns:CreateBucket" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="DeleteObjectRequest">
|
||||
<wsdl:part element="tns:DeleteObject" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="DeleteBucketResponse">
|
||||
<wsdl:part element="tns:DeleteBucketResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="CopyObjectRequest">
|
||||
<wsdl:part element="tns:CopyObject" name="parameters"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="CopyObjectResponse">
|
||||
<wsdl:part element="tns:CopyObjectResponse" name="parameters"/>
|
||||
</wsdl:message>
|
||||
|
||||
|
||||
<wsdl:portType name="AmazonS3">
|
||||
<wsdl:operation name="CreateBucket">
|
||||
<wsdl:input message="tns:CreateBucketRequest" name="CreateBucketRequest"/>
|
||||
<wsdl:output message="tns:CreateBucketResponse" name="CreateBucketResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="DeleteBucket">
|
||||
<wsdl:input message="tns:DeleteBucketRequest" name="DeleteBucketRequest"/>
|
||||
<wsdl:output message="tns:DeleteBucketResponse" name="DeleteBucketResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="GetObjectAccessControlPolicy">
|
||||
<wsdl:input message="tns:GetObjectAccessControlPolicyRequest" name="GetObjectAccessControlPolicyRequest"/>
|
||||
<wsdl:output message="tns:GetObjectAccessControlPolicyResponse" name="GetObjectAccessControlPolicyResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="GetBucketAccessControlPolicy">
|
||||
<wsdl:input message="tns:GetBucketAccessControlPolicyRequest" name="GetBucketAccessControlPolicyRequest"/>
|
||||
<wsdl:output message="tns:GetBucketAccessControlPolicyResponse" name="GetBucketAccessControlPolicyResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="SetObjectAccessControlPolicy">
|
||||
<wsdl:input message="tns:SetObjectAccessControlPolicyRequest" name="SetObjectAccessControlPolicyRequest"/>
|
||||
<wsdl:output message="tns:SetObjectAccessControlPolicyResponse" name="SetObjectAccessControlPolicyResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="SetBucketAccessControlPolicy">
|
||||
<wsdl:input message="tns:SetBucketAccessControlPolicyRequest" name="SetBucketAccessControlPolicyRequest"/>
|
||||
<wsdl:output message="tns:SetBucketAccessControlPolicyResponse" name="SetBucketAccessControlPolicyResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="GetObject">
|
||||
<wsdl:input message="tns:GetObjectRequest" name="GetObjectRequest"/>
|
||||
<wsdl:output message="tns:GetObjectResponse" name="GetObjectResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="GetObjectExtended">
|
||||
<wsdl:input message="tns:GetObjectExtendedRequest" name="GetObjectExtendedRequest"/>
|
||||
<wsdl:output message="tns:GetObjectExtendedResponse" name="GetObjectExtendedResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="PutObject">
|
||||
<wsdl:input message="tns:PutObjectRequest" name="PutObjectRequest"/>
|
||||
<wsdl:output message="tns:PutObjectResponse" name="PutObjectResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="PutObjectInline">
|
||||
<wsdl:input message="tns:PutObjectInlineRequest" name="PutObjectInlineRequest"/>
|
||||
<wsdl:output message="tns:PutObjectInlineResponse" name="PutObjectInlineResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="DeleteObject">
|
||||
<wsdl:input message="tns:DeleteObjectRequest" name="DeleteObjectRequest"/>
|
||||
<wsdl:output message="tns:DeleteObjectResponse" name="DeleteObjectResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="ListBucket">
|
||||
<wsdl:input message="tns:ListBucketRequest" name="ListBucketRequest"/>
|
||||
<wsdl:output message="tns:ListBucketResponse" name="ListBucketResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="ListAllMyBuckets">
|
||||
<wsdl:input message="tns:ListAllMyBucketsRequest" name="ListAllMyBucketsRequest"/>
|
||||
<wsdl:output message="tns:ListAllMyBucketsResponse" name="ListAllMyBucketsResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="GetBucketLoggingStatus">
|
||||
<wsdl:input message="tns:GetBucketLoggingStatusRequest" name="GetBucketLoggingStatusRequest"/>
|
||||
<wsdl:output message="tns:GetBucketLoggingStatusResponse" name="GetBucketLoggingStatusResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="SetBucketLoggingStatus">
|
||||
<wsdl:input message="tns:SetBucketLoggingStatusRequest" name="SetBucketLoggingStatusRequest"/>
|
||||
<wsdl:output message="tns:SetBucketLoggingStatusResponse" name="SetBucketLoggingStatusResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="CopyObject">
|
||||
<wsdl:input message="tns:CopyObjectRequest" name="CopyObjectRequest"/>
|
||||
<wsdl:output message="tns:CopyObjectResponse" name="CopyObjectResponse"/>
|
||||
</wsdl:operation>
|
||||
|
||||
</wsdl:portType>
|
||||
|
||||
|
||||
<wsdl:binding name="AmazonS3SoapBinding" type="tns:AmazonS3">
|
||||
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
|
||||
<wsdl:operation name="CreateBucket">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="CreateBucketRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="CreateBucketResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="DeleteBucket">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="DeleteBucketRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="DeleteBucketResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="GetObjectAccessControlPolicy">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="GetObjectAccessControlPolicyRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="GetObjectAccessControlPolicyResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="GetBucketAccessControlPolicy">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="GetBucketAccessControlPolicyRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="GetBucketAccessControlPolicyResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="SetObjectAccessControlPolicy">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="SetObjectAccessControlPolicyRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="SetObjectAccessControlPolicyResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="SetBucketAccessControlPolicy">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="SetBucketAccessControlPolicyRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="SetBucketAccessControlPolicyResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="GetObject">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="GetObjectRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="GetObjectResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="GetObjectExtended">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="GetObjectExtendedRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="GetObjectExtendedResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="PutObject">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="PutObjectRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="PutObjectResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="PutObjectInline">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="PutObjectInlineRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="PutObjectInlineResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="DeleteObject">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="DeleteObjectRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="DeleteObjectResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="ListBucket">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="ListBucketRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="ListBucketResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="ListAllMyBuckets">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="ListAllMyBucketsRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="ListAllMyBucketsResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="SetBucketLoggingStatus">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="SetBucketLoggingStatusRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="SetBucketLoggingStatusResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="GetBucketLoggingStatus">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="GetBucketLoggingStatusRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="GetBucketLoggingStatusResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
<wsdl:operation name="CopyObject">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="CopyObjectRequest">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="CopyObjectResponse">
|
||||
<wsdlsoap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:service name="AmazonS3">
|
||||
<wsdl:port binding="tns:AmazonS3SoapBinding" name="AmazonS3">
|
||||
<wsdlsoap:address location="http://s3.cloud.com/soap"/>
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
</wsdl:definitions>
|
||||
@ -19,7 +19,7 @@ under the License.
|
||||
-->
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="test"/>
|
||||
<classpathentry excluding="com/cloud/hypervisor/vmware/util/TestVmwareUtil.java" kind="src" path="test"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/deps"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/utils"/>
|
||||
|
||||
@ -1,98 +0,0 @@
|
||||
/*
|
||||
* The contents of this file are subject to the "END USER LICENSE AGREEMENT FOR F5
|
||||
* Software Development Kit for iControl"; you may not use this file except in
|
||||
* compliance with the License. The License is included in the iControl
|
||||
* Software Development Kit.
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is iControl Code and related documentation
|
||||
* distributed by F5.
|
||||
*
|
||||
* Portions created by F5 are Copyright (C) 1996-2004 F5 Networks
|
||||
* Inc. All Rights Reserved. iControl (TM) is a registered trademark of
|
||||
* F5 Networks, Inc.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms
|
||||
* of the GNU General Public License (the "GPL"), in which case the
|
||||
* provisions of GPL are applicable instead of those above. If you wish
|
||||
* to allow use of your version of this file only under the terms of the
|
||||
* GPL and not to allow others to use your version of this file under the
|
||||
* License, indicate your decision by deleting the provisions above and
|
||||
* replace them with the notice and other provisions required by the GPL.
|
||||
* If you do not delete the provisions above, a recipient may use your
|
||||
* version of this file under either the License or the GPL.
|
||||
*/
|
||||
package com.cloud.network.resource;
|
||||
|
||||
import java.security.AccessController;
|
||||
import java.security.InvalidAlgorithmParameterException;
|
||||
import java.security.KeyStore;
|
||||
import java.security.KeyStoreException;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.security.Security;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
||||
import javax.net.ssl.ManagerFactoryParameters;
|
||||
import javax.net.ssl.TrustManager;
|
||||
import javax.net.ssl.TrustManagerFactorySpi;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
|
||||
public final class XTrustProvider extends java.security.Provider
|
||||
{
|
||||
private final static String NAME = "XTrustJSSE";
|
||||
private final static String INFO =
|
||||
"XTrust JSSE Provider (implements trust factory with truststore validation disabled)";
|
||||
private final static double VERSION = 1.0D;
|
||||
|
||||
public XTrustProvider()
|
||||
{
|
||||
super(NAME, VERSION, INFO);
|
||||
|
||||
AccessController.doPrivileged(new PrivilegedAction()
|
||||
{
|
||||
public Object run()
|
||||
{
|
||||
put("TrustManagerFactory." + TrustManagerFactoryImpl.getAlgorithm(),
|
||||
TrustManagerFactoryImpl.class.getName());
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void install()
|
||||
{
|
||||
if(Security.getProvider(NAME) == null)
|
||||
{
|
||||
Security.insertProviderAt(new XTrustProvider(), 2);
|
||||
Security.setProperty("ssl.TrustManagerFactory.algorithm",
|
||||
TrustManagerFactoryImpl.getAlgorithm());
|
||||
}
|
||||
}
|
||||
|
||||
public final static class TrustManagerFactoryImpl extends TrustManagerFactorySpi
|
||||
{
|
||||
public TrustManagerFactoryImpl() { }
|
||||
public static String getAlgorithm() { return "XTrust509"; }
|
||||
protected void engineInit(KeyStore keystore) throws KeyStoreException { }
|
||||
protected void engineInit(ManagerFactoryParameters mgrparams)
|
||||
throws InvalidAlgorithmParameterException
|
||||
{
|
||||
throw new InvalidAlgorithmParameterException(
|
||||
XTrustProvider.NAME + " does not use ManagerFactoryParameters");
|
||||
}
|
||||
|
||||
protected TrustManager[] engineGetTrustManagers()
|
||||
{
|
||||
return new TrustManager[] { new X509TrustManager()
|
||||
{
|
||||
public X509Certificate[] getAcceptedIssuers() { return null; }
|
||||
public void checkClientTrusted(X509Certificate[] certs, String authType) { }
|
||||
public void checkServerTrusted(X509Certificate[] certs, String authType) { }
|
||||
}};
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -297,7 +297,7 @@ public class DownloadManagerImpl implements DownloadManager {
|
||||
}
|
||||
byte[] md5sum = digest.digest();
|
||||
BigInteger bigInt = new BigInteger(1, md5sum);
|
||||
checksum = String.format("%032x",bigInt);
|
||||
checksum = String.format("%032x",bigInt.toString(16));
|
||||
return checksum;
|
||||
}catch(IOException e) {
|
||||
return null;
|
||||
|
||||
@ -123,9 +123,7 @@
|
||||
<para>Name - We'll use Cluster1</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Hypervisor - If this is the first cluster, you may have already been prompted for which hypervisor you were going to use, in which case this will
|
||||
be a read-only field. Otherwise choose KVM
|
||||
</para>
|
||||
<para>Hypervisor - Choose KVM</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
@ -140,15 +138,15 @@
|
||||
<listitem>
|
||||
<para>Password - enter the operating system password for the root user</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Host tags - This is an optional field and we will leave it blank</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
<section id="Runbook-config-cluster-pristorage">
|
||||
<title>Primary Storage</title>
|
||||
<para>With you cluster now setup - you should be prompted for primary storage information. Choose NFS as the storage type and then enter the following values in the fields:
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Name - We'll use 'Primary1'</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Server - We'll be using the IP address <replaceable>172.16.10.</replaceable>2</para>
|
||||
</listitem>
|
||||
|
||||
@ -155,6 +155,7 @@ import com.cloud.agent.api.to.VirtualMachineTO;
|
||||
import com.cloud.agent.api.to.VolumeTO;
|
||||
import com.cloud.hypervisor.kvm.resource.KVMHABase.NfsStoragePool;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.ConsoleDef;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.CpuTuneDef;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DevicesDef;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef.diskProtocol;
|
||||
@ -2477,6 +2478,10 @@ public class LibvirtComputingResource extends ServerResourceBase implements
|
||||
grd.setVcpuNum(vmTO.getCpus());
|
||||
vm.addComp(grd);
|
||||
|
||||
CpuTuneDef ctd = new CpuTuneDef();
|
||||
ctd.setShares(vmTO.getCpus() * vmTO.getSpeed());
|
||||
vm.addComp(ctd);
|
||||
|
||||
FeaturesDef features = new FeaturesDef();
|
||||
features.addFeatures("pae");
|
||||
features.addFeatures("apic");
|
||||
@ -2552,9 +2557,6 @@ public class LibvirtComputingResource extends ServerResourceBase implements
|
||||
|
||||
s_logger.debug("starting " + vmName + ": " + vm.toString());
|
||||
startDomain(conn, vmName, vm.toString());
|
||||
Script.runSimpleBashScript("virsh schedinfo " + vmName
|
||||
+ " --set cpu_shares=" + vmSpec.getCpus()
|
||||
* vmSpec.getSpeed());
|
||||
|
||||
NicTO[] nics = vmSpec.getNics();
|
||||
for (NicTO nic : nics) {
|
||||
|
||||
@ -35,7 +35,7 @@ public class LibvirtVMDef {
|
||||
}
|
||||
|
||||
enum bootOrder {
|
||||
HARDISK("hd"), CDROM("cdrom"), FLOOPY("fd"), NETWORK("network");
|
||||
HARDISK("hd"), CDROM("cdrom"), FLOPPY("fd"), NETWORK("network");
|
||||
String _order;
|
||||
|
||||
bootOrder(String order) {
|
||||
@ -323,7 +323,7 @@ public class LibvirtVMDef {
|
||||
|
||||
public static class DiskDef {
|
||||
enum deviceType {
|
||||
FLOOPY("floopy"), DISK("disk"), CDROM("cdrom");
|
||||
FLOPPY("floppy"), DISK("disk"), CDROM("cdrom");
|
||||
String _type;
|
||||
|
||||
deviceType(String type) {
|
||||
@ -752,6 +752,29 @@ public class LibvirtVMDef {
|
||||
}
|
||||
}
|
||||
|
||||
public static class CpuTuneDef {
|
||||
private int _shares = 0;
|
||||
|
||||
public void setShares(int shares) {
|
||||
_shares = shares;
|
||||
}
|
||||
|
||||
public int getShares() {
|
||||
return _shares;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder cpuTuneBuilder = new StringBuilder();
|
||||
cpuTuneBuilder.append("<cputune>\n");
|
||||
if (_shares > 0) {
|
||||
cpuTuneBuilder.append("<shares>" + _shares + "</shares>\n");
|
||||
}
|
||||
cpuTuneBuilder.append("</cputune>\n");
|
||||
return cpuTuneBuilder.toString();
|
||||
}
|
||||
}
|
||||
|
||||
public static class SerialDef {
|
||||
private final String _type;
|
||||
private final String _source;
|
||||
|
||||
@ -25,5 +25,6 @@ under the License.
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/server"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/api"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/deps"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/ovs"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
||||
@ -134,8 +134,6 @@ public class F5BigIpResource implements ServerResource {
|
||||
@Override
|
||||
public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
|
||||
try {
|
||||
XTrustProvider.install();
|
||||
|
||||
_name = (String) params.get("name");
|
||||
if (_name == null) {
|
||||
throw new ConfigurationException("Unable to find name");
|
||||
|
||||
@ -19,7 +19,6 @@ under the License.
|
||||
-->
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_31"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/agent"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/core"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/deps"/>
|
||||
|
||||
@ -1,96 +0,0 @@
|
||||
Summary
|
||||
=======
|
||||
|
||||
1) templates/committerVote.txt
|
||||
1a) request lazy consensus from IPMC
|
||||
2) templates/committerInvite.txt
|
||||
|
||||
after they accept, then do:
|
||||
|
||||
3) templates/committerAccept.txt ... the normal process for dev-to-pmc
|
||||
4) wait until we see that receipt of CLA is recorded
|
||||
5) template/committerCreate.txt
|
||||
5a) now wait until root says it is done
|
||||
5b) chair to enable their svn access
|
||||
6) template/committerDone.txt
|
||||
7 template/committerAnnounce.txt
|
||||
8) add them to the cloudstack-developers group in Jira.
|
||||
|
||||
Discussion
|
||||
==========
|
||||
|
||||
We do the vote on the private mailing list to enable a frank discussion.
|
||||
|
||||
Start a separate Vote thread for each new person. This makes it much
|
||||
easier to review the mail archives.
|
||||
|
||||
In most cases, we will be inviting people to go straight from developer
|
||||
to PPMC member. However, there may be extraordinary cases where we want
|
||||
limited work-related commit access. This will be resolved during the vote
|
||||
discussion. http://forrest.apache.org/guidelines.html#elect (yes, I know
|
||||
this is not the CloudStack project, we need to create our own guidelines)
|
||||
|
||||
We need to be sure that they are committed people that we can work with.
|
||||
They will be our peers. We will have already observed that they are
|
||||
committed to the project and graceful toward users and other developers.
|
||||
|
||||
Don't wait too long before proposing and don't be too hasty. There is a
|
||||
trade-off and something about timeliness. A point is reached where it
|
||||
becomes obvious that we should invite them. This encourages them and keeps
|
||||
them enthusiastic. If we leave it too long, then we risk them becoming
|
||||
disillusioned.
|
||||
|
||||
On the PPMC list we can each say exactly what we feel about each person,
|
||||
with no holds barred. Keep the discussion concise. The praise part can
|
||||
be done later in public.
|
||||
|
||||
See the end of this document for some guidelines to help you to assess a
|
||||
candidate.
|
||||
|
||||
Let the Vote thread run for one week.
|
||||
A positive result is achieved by Consensus Approval
|
||||
http://forrest.apache.org/guidelines.html#approvals
|
||||
i.e. at least 3 +1 votes and no vetoes.
|
||||
Any veto must be accompanied by reasoning and be prepared to defend it.
|
||||
Other members can attempt to encourage them to change.
|
||||
|
||||
New PPMC members can be either quiet or active as they choose. If we find
|
||||
that certain people lapse and don't ever contribute, then we can take steps
|
||||
to retire them.
|
||||
|
||||
After a positive result, we give them a chance to decline in private.
|
||||
They can post a reply to the PPMC mailing list.
|
||||
|
||||
After we reach a decision on the PPMC list, and after the steps above,
|
||||
we will announce it on the dev list. We can then each follow up with
|
||||
our praise in public.
|
||||
|
||||
There are template emails for each stage of the process at ./templates/
|
||||
These may need tweaks for each case. Also remember that these templates
|
||||
are just a guide, especially the announcement one.
|
||||
|
||||
Other notes about the process are at
|
||||
http://incubator.apache.org/guides/ppmc.html
|
||||
http://www.apache.org/dev/pmc.html#newcommitter
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------------------
|
||||
Guidelines for assessing candidates
|
||||
-----------------------------------
|
||||
|
||||
When voting, you need to make up your own mind, perhaps search mailing lists
|
||||
and Jira, etc. The following are some tips that we developed on the private@
|
||||
list. It seems that each time we discuss someone, then new ideas arise about
|
||||
what we should look for, e.g. private@ archives early July 2006.
|
||||
Also consider http://forrest.apache.org/committed.html
|
||||
|
||||
0) Ability to work co-operatively with peers. Ability to be a mentor.
|
||||
- How do we evaluate? By the interactions they have through mail. By how
|
||||
they respond to criticism. By how they participate in decision-making process.
|
||||
1) Community - How do we evaluate? By the interactions they have through mail.
|
||||
2) Committment - How do we evaluate? By time, by sticking through tough
|
||||
issues, by helping on not-so-fun tasks as well.
|
||||
3) Personal skill/ability - How do we evaluate? A solid general understanding
|
||||
of CloudStack. Quality of discussion in mail. Patches easy to apply with only
|
||||
a cursory review.
|
||||
@ -1,3 +0,0 @@
|
||||
This folder contains items of relevance to the management of the Apache CloudStack (incubating) project.
|
||||
|
||||
The contents of this folder and its subfolders are not required to run or work with CloudStack.
|
||||
@ -1,47 +0,0 @@
|
||||
This is the followup email after they have accepted.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
To: JoeBloggs@foo.net
|
||||
Cc: cloudstack-private@incubator.apache.org
|
||||
Subject: Re: invitation to become CloudStack committer
|
||||
|
||||
Welcome. Here are the next steps. After that we will make
|
||||
an announcement to the cloudstack-dev list.
|
||||
|
||||
You need to send a Contributor License Agreement to the ASF.
|
||||
Normally you would send an Individual CLA. If you also make
|
||||
contributions done in work time or using work resources then
|
||||
see the Corporate CLA. Ask us if you have any issues.
|
||||
http://www.apache.org/licenses/#clas
|
||||
|
||||
You need to choose a preferred ASF user name and alternatives.
|
||||
In order to ensure it is available you can view a list of taken ids at
|
||||
http://www.apache.org/~jim/committers.html
|
||||
|
||||
Please notify us when you have submitted the CLA and by what means
|
||||
you did so. This will enable us to monitor its progress.
|
||||
|
||||
We will arrange for your Apache user account when the CLA has
|
||||
been recorded.
|
||||
|
||||
After that is done, please make followup replies to the cloudstack-dev list.
|
||||
We generally discuss everything there and keep this cloudstack-private@ list
|
||||
for occasional matters which must be private.
|
||||
|
||||
The developer section of the website describes the roles
|
||||
and provides other resources:
|
||||
http://www.apache.org/foundation/how-it-works.html
|
||||
http://www.apache.org/dev/
|
||||
|
||||
The incubator also has some useful information for new committers
|
||||
in incubating projects:
|
||||
http://incubator.apache.org/guides/committer.html
|
||||
|
||||
In the absence of our own guidelines document we are currently
|
||||
using those developed at Apache Forrest:
|
||||
http://forrest.apache.org/guidelines.html
|
||||
|
||||
Yours,
|
||||
The Apache CloudStack PPMC
|
||||
|
||||
------------------------------------------------------------------------
|
||||
@ -1,23 +0,0 @@
|
||||
This is the email to announce to cloudstack-dev after the
|
||||
followup acceptance.
|
||||
|
||||
Replace the Joe Blogs in the subject, the ### in the body.
|
||||
|
||||
------------------------------------------------------------
|
||||
To: cloudstack-dev@incubator.apache.org
|
||||
Subject: new committer: ###Joe Bloggs
|
||||
|
||||
The Podling Project Management Committee (PPMC) for Apache CloudStack
|
||||
has asked #### ####### to become a committer and we are pleased to
|
||||
announce that they have accepted.
|
||||
|
||||
### add specific details here ###
|
||||
|
||||
Being a committer enables easier contribution to the
|
||||
project since there is no need to go via the patch
|
||||
submission process. This should enable better productivity.
|
||||
|
||||
Please join me in congratulating #########
|
||||
|
||||
--#####Name####
|
||||
on behalf of the CloudStack PPMC
|
||||
@ -1,38 +0,0 @@
|
||||
Account creation email for new committers.
|
||||
|
||||
Follow the instructions at:
|
||||
http://www.apache.org/dev/pmc.html#newcommitter
|
||||
|
||||
Email is to be sent to root *after* the CLA is registered.
|
||||
The PMC needs to monitor iclas.txt to be sure that the CLA
|
||||
is properly received before sending this email. See above.
|
||||
|
||||
Don't forget to add their name/email in the email headers
|
||||
and add the date/Message-Id of the PMC vote summary.
|
||||
|
||||
If the new member is already a committer, then just need
|
||||
to ask root to add them to the UNIX groups.
|
||||
|
||||
IPMC member updates the authorization file to add the new
|
||||
committer to both the committer-? section and the podling
|
||||
section of the file https://svn.apache.org/repos/infra/infrastructure/trunk/subversion/authorization/asf-authorization
|
||||
|
||||
New PMC members need to be acknowledged by the IPMC,
|
||||
after their account is created.
|
||||
|
||||
------------------------ snip ------------------------------
|
||||
To: root@apache.org
|
||||
Cc: cloudstack-private@incubator.apache.org, ###JoeBloggs@foo.net
|
||||
Subject: account request: ###Joe Bloggs
|
||||
|
||||
Full name: ...
|
||||
Preferred userid: ... [please provide acceptable alternates!]
|
||||
Forwarding email address: ...
|
||||
|
||||
Requested UNIX groups: cloudstack
|
||||
|
||||
The receipt of the ICLA was recorded yesterday.
|
||||
|
||||
The vote was conducted on the cloudstack-private@incubator list
|
||||
around YYYY-MM-DD ###
|
||||
Message-Id: ###
|
||||
@ -1,45 +0,0 @@
|
||||
After the committer account is established.
|
||||
|
||||
------------------------------------------------------------
|
||||
To: cloudstack-private@incubator.apache.org, ###JoeBloggs@foo.net
|
||||
Subject: account request: ###Joe Bloggs
|
||||
|
||||
####, as you know, the ASF Infrastructure has set up your
|
||||
committer account as the username '####'.
|
||||
|
||||
Please follow the instructions to set up your SSH,
|
||||
svn password, svn configuration, mail forwarding, etc.
|
||||
http://www.apache.org/dev/#committers
|
||||
|
||||
Please subscribe to the CloudStack Podling Project Management
|
||||
Committee mailing list private-cloudstack@incubator.apcahe.org.
|
||||
|
||||
You should also join the general@incubator@apache.org list.
|
||||
|
||||
You have commit access to specific sections of the
|
||||
ASF repository, as follows:
|
||||
|
||||
CloudStack has various resources at:
|
||||
https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git
|
||||
|
||||
|
||||
The general "committers" at:
|
||||
https://svn.apache.org/repos/private/committers
|
||||
|
||||
As per the documentation mentioned above, you need
|
||||
to 'svn switch" previous checkouts to now use https.
|
||||
|
||||
If you have any questions during this phase, then please
|
||||
see the following resources:
|
||||
|
||||
Apache developer's pages: http://www.apache.org/dev/
|
||||
Apache Incubator site: http://incubator.apache.org/
|
||||
Incubator Committers Guide: http://incubator.apache.org/guides/committer.html
|
||||
|
||||
Naturally, if you don't understand anything be sure to
|
||||
ask us on the CloudStack dev mailing list. Documentation is
|
||||
maintained by volunteers and hence can be out-of-date and
|
||||
incomplete.
|
||||
|
||||
One of us will announce you to the dev list soon.
|
||||
|
||||
@ -1,38 +0,0 @@
|
||||
This is the invitation email, sent after a positive result
|
||||
from the vote for a new committer.
|
||||
|
||||
Don't send this until there has been 72 hours for a lazy consensus
|
||||
on private@incubator.apache.org.
|
||||
|
||||
Don't forget we need to forward this mail to
|
||||
private@incubator.apache.org
|
||||
|
||||
------------------------------------------------------------
|
||||
To: JoeBloggs@foo.net
|
||||
Cc: cloudstack-private@incubator.apache.org
|
||||
Subject: invitation to become CloudStack committer: Joe Bloggs #####
|
||||
|
||||
Hello #####, the Apache CloudStack Podling Project Management Committee
|
||||
would like to invite you to become a CloudStack committer. We value
|
||||
your contributions and are aware that you are committed to the project.
|
||||
|
||||
Being a committer enables you to more easily make changes and so
|
||||
not need to go via the patch submission process. This should
|
||||
enable you to be more productive.
|
||||
|
||||
While this does not mean that you need to participate any more
|
||||
than you already do, it does tend to make one even more committed.
|
||||
Hence you will probably find that you spend more time here.
|
||||
|
||||
Of course, you can decline and instead remain as a developer,
|
||||
contributing as you do now.
|
||||
|
||||
This personal email is also providing a chance for you to decline
|
||||
in private. Either way, please let us know in reply only to the
|
||||
cloudstack-private@incubator.apache.org list. If you agree, then we will announce
|
||||
on the cloudstack-dev@ list after the account is established.
|
||||
|
||||
Yours,
|
||||
The Apache CloudStack PPMC
|
||||
|
||||
------------------------------------------------------------------------
|
||||
@ -1,26 +0,0 @@
|
||||
This is the email to commence a vote for a new committer.
|
||||
We do this on the CloudStack Private mailing list, so as to enable
|
||||
a frank discussion.
|
||||
|
||||
Pay special attention that the IPMC gets copied on this email
|
||||
|
||||
------------------------------------------------------------
|
||||
To: cloudstack-private@incubator.apache.org
|
||||
Cc: private@incubator.apache.org
|
||||
Subject: [Vote] new CloudStack committer: Joe Bloggs
|
||||
|
||||
[ add the reasons behind your nomination here ]
|
||||
|
||||
Voting ends one week from today, i.e. midnight UTC on YYYY-MM-DD
|
||||
http://www.timeanddate.com/counters/customcounter.html?year=YYYY&month=MM&day=DD
|
||||
|
||||
[ ] +1 approve
|
||||
[ ] +0 no opinion
|
||||
[ ] -1 disapprove (and reason why)
|
||||
|
||||
|
||||
See voting guidelines (we need some of those so this is a TODO)
|
||||
https://svn.apache.org/repos/private/pmc/forrest/pmc-member-vote.txt
|
||||
(yes, this links to the Apache Forrest Guidelines, we don't have our own yet)
|
||||
|
||||
------------------------------------------------------------
|
||||
@ -1,33 +0,0 @@
|
||||
This is the email to end a vote for a new PPMC member.
|
||||
We do this on the CloudStack Private mailing list as that
|
||||
is where the vote is held..
|
||||
|
||||
Remember that this also needs to be forwarded to
|
||||
private@incubator.apache.org and a 72 hour period for lazy
|
||||
consensus must follow before moving on to the next stage
|
||||
(committerInvite.txt).
|
||||
|
||||
------------------------------------------------------------
|
||||
To: cloudstack-private@incubator.apache.org
|
||||
cc: private@incubator.apache.org
|
||||
Subject: [RESULT] [Vote] new CloudStack committer: Joe Bloggs
|
||||
|
||||
The vote has now closed. The results are:
|
||||
|
||||
Binding Votes:
|
||||
|
||||
+1 [TOTAL BINDING +1 VOTES]
|
||||
0 [TOTAL BINDING +0/-0 VOTES]
|
||||
-1 [TOTAL BINDING -1 VOTES]
|
||||
|
||||
The following mentors provided votes:
|
||||
|
||||
[If three binding +1 and no binding -1]
|
||||
|
||||
The vote passes, we now need lazy consensus approval from the IPMC. This email
|
||||
calls for that consensus.
|
||||
|
||||
Consensus period ends 72 hours from now, i.e. XYZ UTC on YYYY-MM-DD
|
||||
http://www.timeanddate.com/counters/customcounter.html?year=YYYY&month=MM&day=DD&hour=0&min=0&sec=0&p0=0
|
||||
|
||||
------------------------------------------------------------
|
||||
@ -19,7 +19,7 @@ under the License.
|
||||
-->
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="test"/>
|
||||
<classpathentry excluding="com/cloud/agent/manager/ResourceManagerTest.java|com/cloud/network/dao/ElbVmMapDaoTest.java" kind="src" path="test"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/utils"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/core"/>
|
||||
|
||||
@ -3409,6 +3409,9 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
||||
//VV 2: check if account/domain is with in resource limits to create a new vm
|
||||
_resourceLimitMgr.checkResourceLimit(newAccount, ResourceType.user_vm);
|
||||
|
||||
//VV 3: check if volumes are with in resource limits
|
||||
_resourceLimitMgr.checkResourceLimit(newAccount, ResourceType.volume, _volsDao.findByInstance(cmd.getVmId()).size());
|
||||
|
||||
// VV 4: Check if new owner can use the vm template
|
||||
VirtualMachineTemplate template = _templateDao.findById(vm.getTemplateId());
|
||||
if (!template.isPublicTemplate()) {
|
||||
|
||||
@ -35,9 +35,9 @@ cd ~/builddevcloud/veewee
|
||||
bundle install
|
||||
rake install
|
||||
bundle exec vagrant basebox define 'devcloudbase' 'ubuntu-12.04-server-i386'
|
||||
wget --no-check-certificate -O ./definitions/devcloudbase/definition.rb https://git-wip-us.apache.org/repos/asf\?p\=incubator-cloudstack.git\;a\=blob_plain\;f\=tools/devcloud/veewee/definition.rb\;hb\=HEAD
|
||||
wget --no-check-certificate -O ./definitions/devcloudbase/postinstall.sh https://git-wip-us.apache.org/repos/asf\?p\=incubator-cloudstack.git\;a\=blob_plain\;f\=tools/devcloud/veewee/postinstall.sh\;hb\=HEAD
|
||||
wget --no-check-certificate -O ./definitions/devcloudbase/preseed.cfg https://git-wip-us.apache.org/repos/asf\?p\=incubator-cloudstack.git\;a\=blob_plain\;f\=tools/devcloud/veewee/preseed.cfg\;hb\=HEAD
|
||||
wget --no-check-certificate -O ./definitions/devcloudbase/definition.rb "https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a=blob_plain;f=tools/devcloud/veewee/definition.rb;hb=HEAD"
|
||||
wget --no-check-certificate -O ./definitions/devcloudbase/postinstall.sh "https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a=blob_plain;f=tools/devcloud/veewee/postinstall.sh;hb=HEAD"
|
||||
wget --no-check-certificate -O ./definitions/devcloudbase/preseed.cfg "https://git-wip-us.apache.org/repos/asf?p=incubator-cloudstack.git;a=blob_plain;f=tools/devcloud/veewee/preseed.cfg;hb=HEAD"
|
||||
bundle exec vagrant basebox build 'devcloudbase' -f -a -n
|
||||
# possibly use -r here too ^
|
||||
bundle exec vagrant basebox export 'devcloudbase' -f
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
export CATALINA_HOME=/opt/cloudstack/apache-tomcat-6.0.32
|
||||
cd /opt/cloudstack/incubator-cloudstack/
|
||||
/usr/bin/ant clean-all build-all deploy-server deploydb
|
||||
@ -289,16 +289,25 @@ class puppet-devcloud {
|
||||
ensure => latest,
|
||||
}
|
||||
|
||||
file { '/opt/cloudstack/buildcloudstack.sh':
|
||||
ensure => 'file',
|
||||
source => 'puppet:///modules/puppet-devcloud/builddevcloud.sh',
|
||||
mode => '777',
|
||||
owner => '0',
|
||||
group => '0',
|
||||
}
|
||||
|
||||
exec { "build_cloudstack":
|
||||
require => [
|
||||
Package['ant'],
|
||||
Exec["catalina_home"],
|
||||
File['/opt/cloudstack/incubator-cloudstack/dist'],
|
||||
File['/opt/cloudstack/incubator-cloudstack/target'],
|
||||
Package['mkisofs']
|
||||
Package['mkisofs'],
|
||||
File['/opt/cloudstack/buildcloudstack.sh']
|
||||
],
|
||||
command => "/usr/bin/ant clean-all build-all deploy-server deploydb",
|
||||
cwd => "/opt/cloudstack/incubator-cloudstack/",
|
||||
command => "/opt/cloudstack/buildcloudstack.sh",
|
||||
cwd => "/opt/cloudstack/",
|
||||
timeout => '0',
|
||||
}
|
||||
|
||||
|
||||
@ -1 +1,18 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
v0.1.0 Tuesday, April 10 2012 -- Packaging Marvin
|
||||
|
||||
@ -1,2 +1,20 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
include *.txt
|
||||
recursive-include docs *.txt
|
||||
@ -1 +1,20 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
|
||||
Can be found at : http://wiki.cloudstack.org/display/QA/Testing+with+python
|
||||
|
||||
@ -1 +1,18 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#Marvin - The cloudstack test client
|
||||
@ -1,131 +0,0 @@
|
||||
'''
|
||||
PyMySQL: A pure-Python drop-in replacement for MySQLdb.
|
||||
|
||||
Copyright (c) 2010 PyMySQL contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
'''
|
||||
|
||||
VERSION = (0, 4, None)
|
||||
|
||||
from constants import FIELD_TYPE
|
||||
from converters import escape_dict, escape_sequence, escape_string
|
||||
from err import Warning, Error, InterfaceError, DataError, \
|
||||
DatabaseError, OperationalError, IntegrityError, InternalError, \
|
||||
NotSupportedError, ProgrammingError, MySQLError
|
||||
from times import Date, Time, Timestamp, \
|
||||
DateFromTicks, TimeFromTicks, TimestampFromTicks
|
||||
|
||||
import sys
|
||||
|
||||
try:
|
||||
frozenset
|
||||
except NameError:
|
||||
from sets import ImmutableSet as frozenset
|
||||
try:
|
||||
from sets import BaseSet as set
|
||||
except ImportError:
|
||||
from sets import Set as set
|
||||
|
||||
threadsafety = 1
|
||||
apilevel = "2.0"
|
||||
paramstyle = "format"
|
||||
|
||||
class DBAPISet(frozenset):
|
||||
|
||||
|
||||
def __ne__(self, other):
|
||||
if isinstance(other, set):
|
||||
return super(DBAPISet, self).__ne__(self, other)
|
||||
else:
|
||||
return other not in self
|
||||
|
||||
def __eq__(self, other):
|
||||
if isinstance(other, frozenset):
|
||||
return frozenset.__eq__(self, other)
|
||||
else:
|
||||
return other in self
|
||||
|
||||
def __hash__(self):
|
||||
return frozenset.__hash__(self)
|
||||
|
||||
|
||||
STRING = DBAPISet([FIELD_TYPE.ENUM, FIELD_TYPE.STRING,
|
||||
FIELD_TYPE.VAR_STRING])
|
||||
BINARY = DBAPISet([FIELD_TYPE.BLOB, FIELD_TYPE.LONG_BLOB,
|
||||
FIELD_TYPE.MEDIUM_BLOB, FIELD_TYPE.TINY_BLOB])
|
||||
NUMBER = DBAPISet([FIELD_TYPE.DECIMAL, FIELD_TYPE.DOUBLE, FIELD_TYPE.FLOAT,
|
||||
FIELD_TYPE.INT24, FIELD_TYPE.LONG, FIELD_TYPE.LONGLONG,
|
||||
FIELD_TYPE.TINY, FIELD_TYPE.YEAR])
|
||||
DATE = DBAPISet([FIELD_TYPE.DATE, FIELD_TYPE.NEWDATE])
|
||||
TIME = DBAPISet([FIELD_TYPE.TIME])
|
||||
TIMESTAMP = DBAPISet([FIELD_TYPE.TIMESTAMP, FIELD_TYPE.DATETIME])
|
||||
DATETIME = TIMESTAMP
|
||||
ROWID = DBAPISet()
|
||||
|
||||
def Binary(x):
|
||||
"""Return x as a binary type."""
|
||||
return str(x)
|
||||
|
||||
def Connect(*args, **kwargs):
|
||||
"""
|
||||
Connect to the database; see connections.Connection.__init__() for
|
||||
more information.
|
||||
"""
|
||||
from connections import Connection
|
||||
return Connection(*args, **kwargs)
|
||||
|
||||
def get_client_info(): # for MySQLdb compatibility
|
||||
return '%s.%s.%s' % VERSION
|
||||
|
||||
connect = Connection = Connect
|
||||
|
||||
# we include a doctored version_info here for MySQLdb compatibility
|
||||
version_info = (1,2,2,"final",0)
|
||||
|
||||
NULL = "NULL"
|
||||
|
||||
__version__ = get_client_info()
|
||||
|
||||
def thread_safe():
|
||||
return True # match MySQLdb.thread_safe()
|
||||
|
||||
def install_as_MySQLdb():
|
||||
"""
|
||||
After this function is called, any application that imports MySQLdb or
|
||||
_mysql will unwittingly actually use
|
||||
"""
|
||||
sys.modules["MySQLdb"] = sys.modules["_mysql"] = sys.modules["pymysql"]
|
||||
|
||||
__all__ = [
|
||||
'BINARY', 'Binary', 'Connect', 'Connection', 'DATE', 'Date',
|
||||
'Time', 'Timestamp', 'DateFromTicks', 'TimeFromTicks', 'TimestampFromTicks',
|
||||
'DataError', 'DatabaseError', 'Error', 'FIELD_TYPE', 'IntegrityError',
|
||||
'InterfaceError', 'InternalError', 'MySQLError', 'NULL', 'NUMBER',
|
||||
'NotSupportedError', 'DBAPISet', 'OperationalError', 'ProgrammingError',
|
||||
'ROWID', 'STRING', 'TIME', 'TIMESTAMP', 'Warning', 'apilevel', 'connect',
|
||||
'connections', 'constants', 'converters', 'cursors',
|
||||
'escape_dict', 'escape_sequence', 'escape_string', 'get_client_info',
|
||||
'paramstyle', 'threadsafety', 'version_info',
|
||||
|
||||
"install_as_MySQLdb",
|
||||
|
||||
"NULL","__version__",
|
||||
]
|
||||
@ -1,174 +0,0 @@
|
||||
MBLENGTH = {
|
||||
8:1,
|
||||
33:3,
|
||||
88:2,
|
||||
91:2
|
||||
}
|
||||
|
||||
class Charset:
|
||||
def __init__(self, id, name, collation, is_default):
|
||||
self.id, self.name, self.collation = id, name, collation
|
||||
self.is_default = is_default == 'Yes'
|
||||
|
||||
class Charsets:
|
||||
def __init__(self):
|
||||
self._by_id = {}
|
||||
|
||||
def add(self, c):
|
||||
self._by_id[c.id] = c
|
||||
|
||||
def by_id(self, id):
|
||||
return self._by_id[id]
|
||||
|
||||
def by_name(self, name):
|
||||
for c in self._by_id.values():
|
||||
if c.name == name and c.is_default:
|
||||
return c
|
||||
|
||||
_charsets = Charsets()
|
||||
"""
|
||||
Generated with:
|
||||
|
||||
mysql -N -s -e "select id, character_set_name, collation_name, is_default
|
||||
from information_schema.collations order by id;" | python -c "import sys
|
||||
for l in sys.stdin.readlines():
|
||||
id, name, collation, is_default = l.split(chr(9))
|
||||
print '_charsets.add(Charset(%s, \'%s\', \'%s\', \'%s\'))' \
|
||||
% (id, name, collation, is_default.strip())
|
||||
"
|
||||
|
||||
"""
|
||||
_charsets.add(Charset(1, 'big5', 'big5_chinese_ci', 'Yes'))
|
||||
_charsets.add(Charset(2, 'latin2', 'latin2_czech_cs', ''))
|
||||
_charsets.add(Charset(3, 'dec8', 'dec8_swedish_ci', 'Yes'))
|
||||
_charsets.add(Charset(4, 'cp850', 'cp850_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(5, 'latin1', 'latin1_german1_ci', ''))
|
||||
_charsets.add(Charset(6, 'hp8', 'hp8_english_ci', 'Yes'))
|
||||
_charsets.add(Charset(7, 'koi8r', 'koi8r_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(8, 'latin1', 'latin1_swedish_ci', 'Yes'))
|
||||
_charsets.add(Charset(9, 'latin2', 'latin2_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(10, 'swe7', 'swe7_swedish_ci', 'Yes'))
|
||||
_charsets.add(Charset(11, 'ascii', 'ascii_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(12, 'ujis', 'ujis_japanese_ci', 'Yes'))
|
||||
_charsets.add(Charset(13, 'sjis', 'sjis_japanese_ci', 'Yes'))
|
||||
_charsets.add(Charset(14, 'cp1251', 'cp1251_bulgarian_ci', ''))
|
||||
_charsets.add(Charset(15, 'latin1', 'latin1_danish_ci', ''))
|
||||
_charsets.add(Charset(16, 'hebrew', 'hebrew_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(18, 'tis620', 'tis620_thai_ci', 'Yes'))
|
||||
_charsets.add(Charset(19, 'euckr', 'euckr_korean_ci', 'Yes'))
|
||||
_charsets.add(Charset(20, 'latin7', 'latin7_estonian_cs', ''))
|
||||
_charsets.add(Charset(21, 'latin2', 'latin2_hungarian_ci', ''))
|
||||
_charsets.add(Charset(22, 'koi8u', 'koi8u_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(23, 'cp1251', 'cp1251_ukrainian_ci', ''))
|
||||
_charsets.add(Charset(24, 'gb2312', 'gb2312_chinese_ci', 'Yes'))
|
||||
_charsets.add(Charset(25, 'greek', 'greek_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(26, 'cp1250', 'cp1250_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(27, 'latin2', 'latin2_croatian_ci', ''))
|
||||
_charsets.add(Charset(28, 'gbk', 'gbk_chinese_ci', 'Yes'))
|
||||
_charsets.add(Charset(29, 'cp1257', 'cp1257_lithuanian_ci', ''))
|
||||
_charsets.add(Charset(30, 'latin5', 'latin5_turkish_ci', 'Yes'))
|
||||
_charsets.add(Charset(31, 'latin1', 'latin1_german2_ci', ''))
|
||||
_charsets.add(Charset(32, 'armscii8', 'armscii8_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(33, 'utf8', 'utf8_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(34, 'cp1250', 'cp1250_czech_cs', ''))
|
||||
_charsets.add(Charset(35, 'ucs2', 'ucs2_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(36, 'cp866', 'cp866_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(37, 'keybcs2', 'keybcs2_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(38, 'macce', 'macce_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(39, 'macroman', 'macroman_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(40, 'cp852', 'cp852_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(41, 'latin7', 'latin7_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(42, 'latin7', 'latin7_general_cs', ''))
|
||||
_charsets.add(Charset(43, 'macce', 'macce_bin', ''))
|
||||
_charsets.add(Charset(44, 'cp1250', 'cp1250_croatian_ci', ''))
|
||||
_charsets.add(Charset(47, 'latin1', 'latin1_bin', ''))
|
||||
_charsets.add(Charset(48, 'latin1', 'latin1_general_ci', ''))
|
||||
_charsets.add(Charset(49, 'latin1', 'latin1_general_cs', ''))
|
||||
_charsets.add(Charset(50, 'cp1251', 'cp1251_bin', ''))
|
||||
_charsets.add(Charset(51, 'cp1251', 'cp1251_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(52, 'cp1251', 'cp1251_general_cs', ''))
|
||||
_charsets.add(Charset(53, 'macroman', 'macroman_bin', ''))
|
||||
_charsets.add(Charset(57, 'cp1256', 'cp1256_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(58, 'cp1257', 'cp1257_bin', ''))
|
||||
_charsets.add(Charset(59, 'cp1257', 'cp1257_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(63, 'binary', 'binary', 'Yes'))
|
||||
_charsets.add(Charset(64, 'armscii8', 'armscii8_bin', ''))
|
||||
_charsets.add(Charset(65, 'ascii', 'ascii_bin', ''))
|
||||
_charsets.add(Charset(66, 'cp1250', 'cp1250_bin', ''))
|
||||
_charsets.add(Charset(67, 'cp1256', 'cp1256_bin', ''))
|
||||
_charsets.add(Charset(68, 'cp866', 'cp866_bin', ''))
|
||||
_charsets.add(Charset(69, 'dec8', 'dec8_bin', ''))
|
||||
_charsets.add(Charset(70, 'greek', 'greek_bin', ''))
|
||||
_charsets.add(Charset(71, 'hebrew', 'hebrew_bin', ''))
|
||||
_charsets.add(Charset(72, 'hp8', 'hp8_bin', ''))
|
||||
_charsets.add(Charset(73, 'keybcs2', 'keybcs2_bin', ''))
|
||||
_charsets.add(Charset(74, 'koi8r', 'koi8r_bin', ''))
|
||||
_charsets.add(Charset(75, 'koi8u', 'koi8u_bin', ''))
|
||||
_charsets.add(Charset(77, 'latin2', 'latin2_bin', ''))
|
||||
_charsets.add(Charset(78, 'latin5', 'latin5_bin', ''))
|
||||
_charsets.add(Charset(79, 'latin7', 'latin7_bin', ''))
|
||||
_charsets.add(Charset(80, 'cp850', 'cp850_bin', ''))
|
||||
_charsets.add(Charset(81, 'cp852', 'cp852_bin', ''))
|
||||
_charsets.add(Charset(82, 'swe7', 'swe7_bin', ''))
|
||||
_charsets.add(Charset(83, 'utf8', 'utf8_bin', ''))
|
||||
_charsets.add(Charset(84, 'big5', 'big5_bin', ''))
|
||||
_charsets.add(Charset(85, 'euckr', 'euckr_bin', ''))
|
||||
_charsets.add(Charset(86, 'gb2312', 'gb2312_bin', ''))
|
||||
_charsets.add(Charset(87, 'gbk', 'gbk_bin', ''))
|
||||
_charsets.add(Charset(88, 'sjis', 'sjis_bin', ''))
|
||||
_charsets.add(Charset(89, 'tis620', 'tis620_bin', ''))
|
||||
_charsets.add(Charset(90, 'ucs2', 'ucs2_bin', ''))
|
||||
_charsets.add(Charset(91, 'ujis', 'ujis_bin', ''))
|
||||
_charsets.add(Charset(92, 'geostd8', 'geostd8_general_ci', 'Yes'))
|
||||
_charsets.add(Charset(93, 'geostd8', 'geostd8_bin', ''))
|
||||
_charsets.add(Charset(94, 'latin1', 'latin1_spanish_ci', ''))
|
||||
_charsets.add(Charset(95, 'cp932', 'cp932_japanese_ci', 'Yes'))
|
||||
_charsets.add(Charset(96, 'cp932', 'cp932_bin', ''))
|
||||
_charsets.add(Charset(97, 'eucjpms', 'eucjpms_japanese_ci', 'Yes'))
|
||||
_charsets.add(Charset(98, 'eucjpms', 'eucjpms_bin', ''))
|
||||
_charsets.add(Charset(99, 'cp1250', 'cp1250_polish_ci', ''))
|
||||
_charsets.add(Charset(128, 'ucs2', 'ucs2_unicode_ci', ''))
|
||||
_charsets.add(Charset(129, 'ucs2', 'ucs2_icelandic_ci', ''))
|
||||
_charsets.add(Charset(130, 'ucs2', 'ucs2_latvian_ci', ''))
|
||||
_charsets.add(Charset(131, 'ucs2', 'ucs2_romanian_ci', ''))
|
||||
_charsets.add(Charset(132, 'ucs2', 'ucs2_slovenian_ci', ''))
|
||||
_charsets.add(Charset(133, 'ucs2', 'ucs2_polish_ci', ''))
|
||||
_charsets.add(Charset(134, 'ucs2', 'ucs2_estonian_ci', ''))
|
||||
_charsets.add(Charset(135, 'ucs2', 'ucs2_spanish_ci', ''))
|
||||
_charsets.add(Charset(136, 'ucs2', 'ucs2_swedish_ci', ''))
|
||||
_charsets.add(Charset(137, 'ucs2', 'ucs2_turkish_ci', ''))
|
||||
_charsets.add(Charset(138, 'ucs2', 'ucs2_czech_ci', ''))
|
||||
_charsets.add(Charset(139, 'ucs2', 'ucs2_danish_ci', ''))
|
||||
_charsets.add(Charset(140, 'ucs2', 'ucs2_lithuanian_ci', ''))
|
||||
_charsets.add(Charset(141, 'ucs2', 'ucs2_slovak_ci', ''))
|
||||
_charsets.add(Charset(142, 'ucs2', 'ucs2_spanish2_ci', ''))
|
||||
_charsets.add(Charset(143, 'ucs2', 'ucs2_roman_ci', ''))
|
||||
_charsets.add(Charset(144, 'ucs2', 'ucs2_persian_ci', ''))
|
||||
_charsets.add(Charset(145, 'ucs2', 'ucs2_esperanto_ci', ''))
|
||||
_charsets.add(Charset(146, 'ucs2', 'ucs2_hungarian_ci', ''))
|
||||
_charsets.add(Charset(192, 'utf8', 'utf8_unicode_ci', ''))
|
||||
_charsets.add(Charset(193, 'utf8', 'utf8_icelandic_ci', ''))
|
||||
_charsets.add(Charset(194, 'utf8', 'utf8_latvian_ci', ''))
|
||||
_charsets.add(Charset(195, 'utf8', 'utf8_romanian_ci', ''))
|
||||
_charsets.add(Charset(196, 'utf8', 'utf8_slovenian_ci', ''))
|
||||
_charsets.add(Charset(197, 'utf8', 'utf8_polish_ci', ''))
|
||||
_charsets.add(Charset(198, 'utf8', 'utf8_estonian_ci', ''))
|
||||
_charsets.add(Charset(199, 'utf8', 'utf8_spanish_ci', ''))
|
||||
_charsets.add(Charset(200, 'utf8', 'utf8_swedish_ci', ''))
|
||||
_charsets.add(Charset(201, 'utf8', 'utf8_turkish_ci', ''))
|
||||
_charsets.add(Charset(202, 'utf8', 'utf8_czech_ci', ''))
|
||||
_charsets.add(Charset(203, 'utf8', 'utf8_danish_ci', ''))
|
||||
_charsets.add(Charset(204, 'utf8', 'utf8_lithuanian_ci', ''))
|
||||
_charsets.add(Charset(205, 'utf8', 'utf8_slovak_ci', ''))
|
||||
_charsets.add(Charset(206, 'utf8', 'utf8_spanish2_ci', ''))
|
||||
_charsets.add(Charset(207, 'utf8', 'utf8_roman_ci', ''))
|
||||
_charsets.add(Charset(208, 'utf8', 'utf8_persian_ci', ''))
|
||||
_charsets.add(Charset(209, 'utf8', 'utf8_esperanto_ci', ''))
|
||||
_charsets.add(Charset(210, 'utf8', 'utf8_hungarian_ci', ''))
|
||||
|
||||
def charset_by_name(name):
|
||||
return _charsets.by_name(name)
|
||||
|
||||
def charset_by_id(id):
|
||||
return _charsets.by_id(id)
|
||||
|
||||
@ -1,928 +0,0 @@
|
||||
# Python implementation of the MySQL client-server protocol
|
||||
# http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol
|
||||
|
||||
try:
|
||||
import hashlib
|
||||
sha_new = lambda *args, **kwargs: hashlib.new("sha1", *args, **kwargs)
|
||||
except ImportError:
|
||||
import sha
|
||||
sha_new = sha.new
|
||||
|
||||
import socket
|
||||
try:
|
||||
import ssl
|
||||
SSL_ENABLED = True
|
||||
except ImportError:
|
||||
SSL_ENABLED = False
|
||||
|
||||
import struct
|
||||
import sys
|
||||
import os
|
||||
import ConfigParser
|
||||
|
||||
try:
|
||||
import cStringIO as StringIO
|
||||
except ImportError:
|
||||
import StringIO
|
||||
|
||||
from charset import MBLENGTH, charset_by_name, charset_by_id
|
||||
from cursors import Cursor
|
||||
from constants import FIELD_TYPE, FLAG
|
||||
from constants import SERVER_STATUS
|
||||
from constants.CLIENT import *
|
||||
from constants.COMMAND import *
|
||||
from util import join_bytes, byte2int, int2byte
|
||||
from converters import escape_item, encoders, decoders
|
||||
from err import raise_mysql_exception, Warning, Error, \
|
||||
InterfaceError, DataError, DatabaseError, OperationalError, \
|
||||
IntegrityError, InternalError, NotSupportedError, ProgrammingError
|
||||
|
||||
DEBUG = False
|
||||
|
||||
NULL_COLUMN = 251
|
||||
UNSIGNED_CHAR_COLUMN = 251
|
||||
UNSIGNED_SHORT_COLUMN = 252
|
||||
UNSIGNED_INT24_COLUMN = 253
|
||||
UNSIGNED_INT64_COLUMN = 254
|
||||
UNSIGNED_CHAR_LENGTH = 1
|
||||
UNSIGNED_SHORT_LENGTH = 2
|
||||
UNSIGNED_INT24_LENGTH = 3
|
||||
UNSIGNED_INT64_LENGTH = 8
|
||||
|
||||
DEFAULT_CHARSET = 'latin1'
|
||||
|
||||
|
||||
def dump_packet(data):
|
||||
|
||||
def is_ascii(data):
|
||||
if byte2int(data) >= 65 and byte2int(data) <= 122: #data.isalnum():
|
||||
return data
|
||||
return '.'
|
||||
print "packet length %d" % len(data)
|
||||
print "method call[1]: %s" % sys._getframe(1).f_code.co_name
|
||||
print "method call[2]: %s" % sys._getframe(2).f_code.co_name
|
||||
print "method call[3]: %s" % sys._getframe(3).f_code.co_name
|
||||
print "method call[4]: %s" % sys._getframe(4).f_code.co_name
|
||||
print "method call[5]: %s" % sys._getframe(5).f_code.co_name
|
||||
print "-" * 88
|
||||
dump_data = [data[i:i+16] for i in xrange(len(data)) if i%16 == 0]
|
||||
for d in dump_data:
|
||||
print ' '.join(map(lambda x:"%02X" % byte2int(x), d)) + \
|
||||
' ' * (16 - len(d)) + ' ' * 2 + \
|
||||
' '.join(map(lambda x:"%s" % is_ascii(x), d))
|
||||
print "-" * 88
|
||||
print ""
|
||||
|
||||
def _scramble(password, message):
|
||||
if password == None or len(password) == 0:
|
||||
return int2byte(0)
|
||||
if DEBUG: print 'password=' + password
|
||||
stage1 = sha_new(password).digest()
|
||||
stage2 = sha_new(stage1).digest()
|
||||
s = sha_new()
|
||||
s.update(message)
|
||||
s.update(stage2)
|
||||
result = s.digest()
|
||||
return _my_crypt(result, stage1)
|
||||
|
||||
def _my_crypt(message1, message2):
|
||||
length = len(message1)
|
||||
result = struct.pack('B', length)
|
||||
for i in xrange(length):
|
||||
x = (struct.unpack('B', message1[i:i+1])[0] ^ \
|
||||
struct.unpack('B', message2[i:i+1])[0])
|
||||
result += struct.pack('B', x)
|
||||
return result
|
||||
|
||||
# old_passwords support ported from libmysql/password.c
|
||||
SCRAMBLE_LENGTH_323 = 8
|
||||
|
||||
class RandStruct_323(object):
|
||||
def __init__(self, seed1, seed2):
|
||||
self.max_value = 0x3FFFFFFFL
|
||||
self.seed1 = seed1 % self.max_value
|
||||
self.seed2 = seed2 % self.max_value
|
||||
|
||||
def my_rnd(self):
|
||||
self.seed1 = (self.seed1 * 3L + self.seed2) % self.max_value
|
||||
self.seed2 = (self.seed1 + self.seed2 + 33L) % self.max_value
|
||||
return float(self.seed1) / float(self.max_value)
|
||||
|
||||
def _scramble_323(password, message):
|
||||
hash_pass = _hash_password_323(password)
|
||||
hash_message = _hash_password_323(message[:SCRAMBLE_LENGTH_323])
|
||||
hash_pass_n = struct.unpack(">LL", hash_pass)
|
||||
hash_message_n = struct.unpack(">LL", hash_message)
|
||||
|
||||
rand_st = RandStruct_323(hash_pass_n[0] ^ hash_message_n[0],
|
||||
hash_pass_n[1] ^ hash_message_n[1])
|
||||
outbuf = StringIO.StringIO()
|
||||
for _ in xrange(min(SCRAMBLE_LENGTH_323, len(message))):
|
||||
outbuf.write(int2byte(int(rand_st.my_rnd() * 31) + 64))
|
||||
extra = int2byte(int(rand_st.my_rnd() * 31))
|
||||
out = outbuf.getvalue()
|
||||
outbuf = StringIO.StringIO()
|
||||
for c in out:
|
||||
outbuf.write(int2byte(byte2int(c) ^ byte2int(extra)))
|
||||
return outbuf.getvalue()
|
||||
|
||||
def _hash_password_323(password):
|
||||
nr = 1345345333L
|
||||
add = 7L
|
||||
nr2 = 0x12345671L
|
||||
|
||||
for c in [byte2int(x) for x in password if x not in (' ', '\t')]:
|
||||
nr^= (((nr & 63)+add)*c)+ (nr << 8) & 0xFFFFFFFF
|
||||
nr2= (nr2 + ((nr2 << 8) ^ nr)) & 0xFFFFFFFF
|
||||
add= (add + c) & 0xFFFFFFFF
|
||||
|
||||
r1 = nr & ((1L << 31) - 1L) # kill sign bits
|
||||
r2 = nr2 & ((1L << 31) - 1L)
|
||||
|
||||
# pack
|
||||
return struct.pack(">LL", r1, r2)
|
||||
|
||||
def pack_int24(n):
|
||||
return struct.pack('BBB', n&0xFF, (n>>8)&0xFF, (n>>16)&0xFF)
|
||||
|
||||
def unpack_uint16(n):
|
||||
return struct.unpack('<H', n[0:2])[0]
|
||||
|
||||
|
||||
# TODO: stop using bit-shifting in these functions...
|
||||
# TODO: rename to "uint" to make it clear they're unsigned...
|
||||
def unpack_int24(n):
|
||||
return struct.unpack('B',n[0])[0] + (struct.unpack('B', n[1])[0] << 8) +\
|
||||
(struct.unpack('B',n[2])[0] << 16)
|
||||
|
||||
def unpack_int32(n):
|
||||
return struct.unpack('B',n[0])[0] + (struct.unpack('B', n[1])[0] << 8) +\
|
||||
(struct.unpack('B',n[2])[0] << 16) + (struct.unpack('B', n[3])[0] << 24)
|
||||
|
||||
def unpack_int64(n):
|
||||
return struct.unpack('B',n[0])[0] + (struct.unpack('B', n[1])[0]<<8) +\
|
||||
(struct.unpack('B',n[2])[0] << 16) + (struct.unpack('B',n[3])[0]<<24)+\
|
||||
(struct.unpack('B',n[4])[0] << 32) + (struct.unpack('B',n[5])[0]<<40)+\
|
||||
(struct.unpack('B',n[6])[0] << 48) + (struct.unpack('B',n[7])[0]<<56)
|
||||
|
||||
def defaulterrorhandler(connection, cursor, errorclass, errorvalue):
|
||||
err = errorclass, errorvalue
|
||||
if DEBUG:
|
||||
raise
|
||||
|
||||
if cursor:
|
||||
cursor.messages.append(err)
|
||||
else:
|
||||
connection.messages.append(err)
|
||||
del cursor
|
||||
del connection
|
||||
|
||||
if not issubclass(errorclass, Error):
|
||||
raise Error(errorclass, errorvalue)
|
||||
else:
|
||||
raise errorclass, errorvalue
|
||||
|
||||
|
||||
class MysqlPacket(object):
|
||||
"""Representation of a MySQL response packet. Reads in the packet
|
||||
from the network socket, removes packet header and provides an interface
|
||||
for reading/parsing the packet results."""
|
||||
|
||||
def __init__(self, connection):
|
||||
self.connection = connection
|
||||
self.__position = 0
|
||||
self.__recv_packet()
|
||||
|
||||
def __recv_packet(self):
|
||||
"""Parse the packet header and read entire packet payload into buffer."""
|
||||
packet_header = self.connection.rfile.read(4)
|
||||
if len(packet_header) < 4:
|
||||
raise OperationalError(2013, "Lost connection to MySQL server during query")
|
||||
|
||||
if DEBUG: dump_packet(packet_header)
|
||||
packet_length_bin = packet_header[:3]
|
||||
self.__packet_number = byte2int(packet_header[3])
|
||||
# TODO: check packet_num is correct (+1 from last packet)
|
||||
|
||||
bin_length = packet_length_bin + int2byte(0) # pad little-endian number
|
||||
bytes_to_read = struct.unpack('<I', bin_length)[0]
|
||||
recv_data = self.connection.rfile.read(bytes_to_read)
|
||||
if len(recv_data) < bytes_to_read:
|
||||
raise OperationalError(2013, "Lost connection to MySQL server during query")
|
||||
if DEBUG: dump_packet(recv_data)
|
||||
self.__data = recv_data
|
||||
|
||||
def packet_number(self): return self.__packet_number
|
||||
|
||||
def get_all_data(self): return self.__data
|
||||
|
||||
def read(self, size):
|
||||
"""Read the first 'size' bytes in packet and advance cursor past them."""
|
||||
result = self.peek(size)
|
||||
self.advance(size)
|
||||
return result
|
||||
|
||||
def read_all(self):
|
||||
"""Read all remaining data in the packet.
|
||||
|
||||
(Subsequent read() or peek() will return errors.)
|
||||
"""
|
||||
result = self.__data[self.__position:]
|
||||
self.__position = None # ensure no subsequent read() or peek()
|
||||
return result
|
||||
|
||||
def advance(self, length):
|
||||
"""Advance the cursor in data buffer 'length' bytes."""
|
||||
new_position = self.__position + length
|
||||
if new_position < 0 or new_position > len(self.__data):
|
||||
raise Exception('Invalid advance amount (%s) for cursor. '
|
||||
'Position=%s' % (length, new_position))
|
||||
self.__position = new_position
|
||||
|
||||
def rewind(self, position=0):
|
||||
"""Set the position of the data buffer cursor to 'position'."""
|
||||
if position < 0 or position > len(self.__data):
|
||||
raise Exception("Invalid position to rewind cursor to: %s." % position)
|
||||
self.__position = position
|
||||
|
||||
def peek(self, size):
|
||||
"""Look at the first 'size' bytes in packet without moving cursor."""
|
||||
result = self.__data[self.__position:(self.__position+size)]
|
||||
if len(result) != size:
|
||||
error = ('Result length not requested length:\n'
|
||||
'Expected=%s. Actual=%s. Position: %s. Data Length: %s'
|
||||
% (size, len(result), self.__position, len(self.__data)))
|
||||
if DEBUG:
|
||||
print error
|
||||
self.dump()
|
||||
raise AssertionError(error)
|
||||
return result
|
||||
|
||||
def get_bytes(self, position, length=1):
|
||||
"""Get 'length' bytes starting at 'position'.
|
||||
|
||||
Position is start of payload (first four packet header bytes are not
|
||||
included) starting at index '0'.
|
||||
|
||||
No error checking is done. If requesting outside end of buffer
|
||||
an empty string (or string shorter than 'length') may be returned!
|
||||
"""
|
||||
return self.__data[position:(position+length)]
|
||||
|
||||
def read_length_coded_binary(self):
|
||||
"""Read a 'Length Coded Binary' number from the data buffer.
|
||||
|
||||
Length coded numbers can be anywhere from 1 to 9 bytes depending
|
||||
on the value of the first byte.
|
||||
"""
|
||||
c = byte2int(self.read(1))
|
||||
if c == NULL_COLUMN:
|
||||
return None
|
||||
if c < UNSIGNED_CHAR_COLUMN:
|
||||
return c
|
||||
elif c == UNSIGNED_SHORT_COLUMN:
|
||||
return unpack_uint16(self.read(UNSIGNED_SHORT_LENGTH))
|
||||
elif c == UNSIGNED_INT24_COLUMN:
|
||||
return unpack_int24(self.read(UNSIGNED_INT24_LENGTH))
|
||||
elif c == UNSIGNED_INT64_COLUMN:
|
||||
# TODO: what was 'longlong'? confirm it wasn't used?
|
||||
return unpack_int64(self.read(UNSIGNED_INT64_LENGTH))
|
||||
|
||||
def read_length_coded_string(self):
|
||||
"""Read a 'Length Coded String' from the data buffer.
|
||||
|
||||
A 'Length Coded String' consists first of a length coded
|
||||
(unsigned, positive) integer represented in 1-9 bytes followed by
|
||||
that many bytes of binary data. (For example "cat" would be "3cat".)
|
||||
"""
|
||||
length = self.read_length_coded_binary()
|
||||
if length is None:
|
||||
return None
|
||||
return self.read(length)
|
||||
|
||||
def is_ok_packet(self):
|
||||
return byte2int(self.get_bytes(0)) == 0
|
||||
|
||||
def is_eof_packet(self):
|
||||
return byte2int(self.get_bytes(0)) == 254 # 'fe'
|
||||
|
||||
def is_resultset_packet(self):
|
||||
field_count = byte2int(self.get_bytes(0))
|
||||
return field_count >= 1 and field_count <= 250
|
||||
|
||||
def is_error_packet(self):
|
||||
return byte2int(self.get_bytes(0)) == 255
|
||||
|
||||
def check_error(self):
|
||||
if self.is_error_packet():
|
||||
self.rewind()
|
||||
self.advance(1) # field_count == error (we already know that)
|
||||
errno = unpack_uint16(self.read(2))
|
||||
if DEBUG: print "errno = %d" % errno
|
||||
raise_mysql_exception(self.__data)
|
||||
|
||||
def dump(self):
|
||||
dump_packet(self.__data)
|
||||
|
||||
|
||||
class FieldDescriptorPacket(MysqlPacket):
|
||||
"""A MysqlPacket that represents a specific column's metadata in the result.
|
||||
|
||||
Parsing is automatically done and the results are exported via public
|
||||
attributes on the class such as: db, table_name, name, length, type_code.
|
||||
"""
|
||||
|
||||
def __init__(self, *args):
|
||||
MysqlPacket.__init__(self, *args)
|
||||
self.__parse_field_descriptor()
|
||||
|
||||
def __parse_field_descriptor(self):
|
||||
"""Parse the 'Field Descriptor' (Metadata) packet.
|
||||
|
||||
This is compatible with MySQL 4.1+ (not compatible with MySQL 4.0).
|
||||
"""
|
||||
self.catalog = self.read_length_coded_string()
|
||||
self.db = self.read_length_coded_string()
|
||||
self.table_name = self.read_length_coded_string()
|
||||
self.org_table = self.read_length_coded_string()
|
||||
self.name = self.read_length_coded_string().decode(self.connection.charset)
|
||||
self.org_name = self.read_length_coded_string()
|
||||
self.advance(1) # non-null filler
|
||||
self.charsetnr = struct.unpack('<H', self.read(2))[0]
|
||||
self.length = struct.unpack('<I', self.read(4))[0]
|
||||
self.type_code = byte2int(self.read(1))
|
||||
self.flags = struct.unpack('<H', self.read(2))[0]
|
||||
self.scale = byte2int(self.read(1)) # "decimals"
|
||||
self.advance(2) # filler (always 0x00)
|
||||
|
||||
# 'default' is a length coded binary and is still in the buffer?
|
||||
# not used for normal result sets...
|
||||
|
||||
def description(self):
|
||||
"""Provides a 7-item tuple compatible with the Python PEP249 DB Spec."""
|
||||
desc = []
|
||||
desc.append(self.name)
|
||||
desc.append(self.type_code)
|
||||
desc.append(None) # TODO: display_length; should this be self.length?
|
||||
desc.append(self.get_column_length()) # 'internal_size'
|
||||
desc.append(self.get_column_length()) # 'precision' # TODO: why!?!?
|
||||
desc.append(self.scale)
|
||||
|
||||
# 'null_ok' -- can this be True/False rather than 1/0?
|
||||
# if so just do: desc.append(bool(self.flags % 2 == 0))
|
||||
if self.flags % 2 == 0:
|
||||
desc.append(1)
|
||||
else:
|
||||
desc.append(0)
|
||||
return tuple(desc)
|
||||
|
||||
def get_column_length(self):
|
||||
if self.type_code == FIELD_TYPE.VAR_STRING:
|
||||
mblen = MBLENGTH.get(self.charsetnr, 1)
|
||||
return self.length // mblen
|
||||
return self.length
|
||||
|
||||
def __str__(self):
|
||||
return ('%s %s.%s.%s, type=%s'
|
||||
% (self.__class__, self.db, self.table_name, self.name,
|
||||
self.type_code))
|
||||
|
||||
|
||||
class Connection(object):
|
||||
"""
|
||||
Representation of a socket with a mysql server.
|
||||
|
||||
The proper way to get an instance of this class is to call
|
||||
connect()."""
|
||||
errorhandler = defaulterrorhandler
|
||||
|
||||
def __init__(self, host="localhost", user=None, passwd="",
|
||||
db=None, port=3306, unix_socket=None,
|
||||
charset='', sql_mode=None,
|
||||
read_default_file=None, conv=decoders, use_unicode=None,
|
||||
client_flag=0, cursorclass=Cursor, init_command=None,
|
||||
connect_timeout=None, ssl=None, read_default_group=None,
|
||||
compress=None, named_pipe=None):
|
||||
"""
|
||||
Establish a connection to the MySQL database. Accepts several
|
||||
arguments:
|
||||
|
||||
host: Host where the database server is located
|
||||
user: Username to log in as
|
||||
passwd: Password to use.
|
||||
db: Database to use, None to not use a particular one.
|
||||
port: MySQL port to use, default is usually OK.
|
||||
unix_socket: Optionally, you can use a unix socket rather than TCP/IP.
|
||||
charset: Charset you want to use.
|
||||
sql_mode: Default SQL_MODE to use.
|
||||
read_default_file: Specifies my.cnf file to read these parameters from under the [client] section.
|
||||
conv: Decoders dictionary to use instead of the default one. This is used to provide custom marshalling of types. See converters.
|
||||
use_unicode: Whether or not to default to unicode strings. This option defaults to true for Py3k.
|
||||
client_flag: Custom flags to send to MySQL. Find potential values in constants.CLIENT.
|
||||
cursorclass: Custom cursor class to use.
|
||||
init_command: Initial SQL statement to run when connection is established.
|
||||
connect_timeout: Timeout before throwing an exception when connecting.
|
||||
ssl: A dict of arguments similar to mysql_ssl_set()'s parameters. For now the capath and cipher arguments are not supported.
|
||||
read_default_group: Group to read from in the configuration file.
|
||||
compress; Not supported
|
||||
named_pipe: Not supported
|
||||
"""
|
||||
|
||||
if use_unicode is None and sys.version_info[0] > 2:
|
||||
use_unicode = True
|
||||
|
||||
if compress or named_pipe:
|
||||
raise NotImplementedError, "compress and named_pipe arguments are not supported"
|
||||
|
||||
if ssl and (ssl.has_key('capath') or ssl.has_key('cipher')):
|
||||
raise NotImplementedError, 'ssl options capath and cipher are not supported'
|
||||
|
||||
self.ssl = False
|
||||
if ssl:
|
||||
if not SSL_ENABLED:
|
||||
raise NotImplementedError, "ssl module not found"
|
||||
self.ssl = True
|
||||
client_flag |= SSL
|
||||
for k in ('key', 'cert', 'ca'):
|
||||
v = None
|
||||
if ssl.has_key(k):
|
||||
v = ssl[k]
|
||||
setattr(self, k, v)
|
||||
|
||||
if read_default_group and not read_default_file:
|
||||
if sys.platform.startswith("win"):
|
||||
read_default_file = "c:\\my.ini"
|
||||
else:
|
||||
read_default_file = "/etc/my.cnf"
|
||||
|
||||
if read_default_file:
|
||||
if not read_default_group:
|
||||
read_default_group = "client"
|
||||
|
||||
cfg = ConfigParser.RawConfigParser()
|
||||
cfg.read(os.path.expanduser(read_default_file))
|
||||
|
||||
def _config(key, default):
|
||||
try:
|
||||
return cfg.get(read_default_group,key)
|
||||
except:
|
||||
return default
|
||||
|
||||
user = _config("user",user)
|
||||
passwd = _config("password",passwd)
|
||||
host = _config("host", host)
|
||||
db = _config("db",db)
|
||||
unix_socket = _config("socket",unix_socket)
|
||||
port = _config("port", port)
|
||||
charset = _config("default-character-set", charset)
|
||||
|
||||
self.host = host
|
||||
self.port = port
|
||||
self.user = user
|
||||
self.password = passwd
|
||||
self.db = db
|
||||
self.unix_socket = unix_socket
|
||||
if charset:
|
||||
self.charset = charset
|
||||
self.use_unicode = True
|
||||
else:
|
||||
self.charset = DEFAULT_CHARSET
|
||||
self.use_unicode = False
|
||||
|
||||
if use_unicode is not None:
|
||||
self.use_unicode = use_unicode
|
||||
|
||||
client_flag |= CAPABILITIES
|
||||
client_flag |= MULTI_STATEMENTS
|
||||
if self.db:
|
||||
client_flag |= CONNECT_WITH_DB
|
||||
self.client_flag = client_flag
|
||||
|
||||
self.cursorclass = cursorclass
|
||||
self.connect_timeout = connect_timeout
|
||||
|
||||
self._connect()
|
||||
|
||||
self.messages = []
|
||||
self.set_charset(charset)
|
||||
self.encoders = encoders
|
||||
self.decoders = conv
|
||||
|
||||
self._result = None
|
||||
self._affected_rows = 0
|
||||
self.host_info = "Not connected"
|
||||
|
||||
self.autocommit(False)
|
||||
|
||||
if sql_mode is not None:
|
||||
c = self.cursor()
|
||||
c.execute("SET sql_mode=%s", (sql_mode,))
|
||||
|
||||
self.commit()
|
||||
|
||||
if init_command is not None:
|
||||
c = self.cursor()
|
||||
c.execute(init_command)
|
||||
|
||||
self.commit()
|
||||
|
||||
|
||||
def close(self):
|
||||
''' Send the quit message and close the socket '''
|
||||
if self.socket is None:
|
||||
raise Error("Already closed")
|
||||
send_data = struct.pack('<i',1) + int2byte(COM_QUIT)
|
||||
self.wfile.write(send_data)
|
||||
self.wfile.close()
|
||||
self.rfile.close()
|
||||
self.socket.close()
|
||||
self.socket = None
|
||||
self.rfile = None
|
||||
self.wfile = None
|
||||
|
||||
def autocommit(self, value):
|
||||
''' Set whether or not to commit after every execute() '''
|
||||
try:
|
||||
self._execute_command(COM_QUERY, "SET AUTOCOMMIT = %s" % \
|
||||
self.escape(value))
|
||||
self.read_packet()
|
||||
except:
|
||||
exc,value,tb = sys.exc_info()
|
||||
self.errorhandler(None, exc, value)
|
||||
|
||||
def commit(self):
|
||||
''' Commit changes to stable storage '''
|
||||
try:
|
||||
self._execute_command(COM_QUERY, "COMMIT")
|
||||
self.read_packet()
|
||||
except:
|
||||
exc,value,tb = sys.exc_info()
|
||||
self.errorhandler(None, exc, value)
|
||||
|
||||
def rollback(self):
|
||||
''' Roll back the current transaction '''
|
||||
try:
|
||||
self._execute_command(COM_QUERY, "ROLLBACK")
|
||||
self.read_packet()
|
||||
except:
|
||||
exc,value,tb = sys.exc_info()
|
||||
self.errorhandler(None, exc, value)
|
||||
|
||||
def escape(self, obj):
|
||||
''' Escape whatever value you pass to it '''
|
||||
return escape_item(obj, self.charset)
|
||||
|
||||
def literal(self, obj):
|
||||
''' Alias for escape() '''
|
||||
return escape_item(obj, self.charset)
|
||||
|
||||
def cursor(self, cursor=None):
|
||||
''' Create a new cursor to execute queries with '''
|
||||
if cursor:
|
||||
return cursor(self)
|
||||
return self.cursorclass(self)
|
||||
|
||||
def __enter__(self):
|
||||
''' Context manager that returns a Cursor '''
|
||||
return self.cursor()
|
||||
|
||||
def __exit__(self, exc, value, traceback):
|
||||
''' On successful exit, commit. On exception, rollback. '''
|
||||
if exc:
|
||||
self.rollback()
|
||||
else:
|
||||
self.commit()
|
||||
|
||||
# The following methods are INTERNAL USE ONLY (called from Cursor)
|
||||
def query(self, sql):
|
||||
if DEBUG:
|
||||
print "sending query: %s" % sql
|
||||
self._execute_command(COM_QUERY, sql)
|
||||
self._affected_rows = self._read_query_result()
|
||||
return self._affected_rows
|
||||
|
||||
def next_result(self):
|
||||
self._affected_rows = self._read_query_result()
|
||||
return self._affected_rows
|
||||
|
||||
def affected_rows(self):
|
||||
return self._affected_rows
|
||||
|
||||
def kill(self, thread_id):
|
||||
arg = struct.pack('<I', thread_id)
|
||||
try:
|
||||
self._execute_command(COM_PROCESS_KILL, arg)
|
||||
except:
|
||||
exc,value,tb = sys.exc_info()
|
||||
self.errorhandler(None, exc, value)
|
||||
return
|
||||
pkt = self.read_packet()
|
||||
return pkt.is_ok_packet()
|
||||
|
||||
def ping(self, reconnect=True):
|
||||
''' Check if the server is alive '''
|
||||
try:
|
||||
self._execute_command(COM_PING, "")
|
||||
except:
|
||||
if reconnect:
|
||||
self._connect()
|
||||
return self.ping(False)
|
||||
else:
|
||||
exc,value,tb = sys.exc_info()
|
||||
self.errorhandler(None, exc, value)
|
||||
return
|
||||
|
||||
pkt = self.read_packet()
|
||||
return pkt.is_ok_packet()
|
||||
|
||||
def set_charset(self, charset):
|
||||
try:
|
||||
if charset:
|
||||
self._execute_command(COM_QUERY, "SET NAMES %s" %
|
||||
self.escape(charset))
|
||||
self.read_packet()
|
||||
self.charset = charset
|
||||
except:
|
||||
exc,value,tb = sys.exc_info()
|
||||
self.errorhandler(None, exc, value)
|
||||
|
||||
def _connect(self):
|
||||
try:
|
||||
if self.unix_socket and (self.host == 'localhost' or self.host == '127.0.0.1'):
|
||||
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||
t = sock.gettimeout()
|
||||
sock.settimeout(self.connect_timeout)
|
||||
sock.connect(self.unix_socket)
|
||||
sock.settimeout(t)
|
||||
self.host_info = "Localhost via UNIX socket"
|
||||
if DEBUG: print 'connected using unix_socket'
|
||||
else:
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
t = sock.gettimeout()
|
||||
sock.settimeout(self.connect_timeout)
|
||||
sock.connect((self.host, self.port))
|
||||
sock.settimeout(t)
|
||||
self.host_info = "socket %s:%d" % (self.host, self.port)
|
||||
if DEBUG: print 'connected using socket'
|
||||
self.socket = sock
|
||||
self.rfile = self.socket.makefile("rb")
|
||||
self.wfile = self.socket.makefile("wb")
|
||||
self._get_server_information()
|
||||
self._request_authentication()
|
||||
except socket.error, e:
|
||||
raise OperationalError(2003, "Can't connect to MySQL server on %r (%s)" % (self.host, e.args[0]))
|
||||
|
||||
def read_packet(self, packet_type=MysqlPacket):
|
||||
"""Read an entire "mysql packet" in its entirety from the network
|
||||
and return a MysqlPacket type that represents the results."""
|
||||
|
||||
packet = packet_type(self)
|
||||
packet.check_error()
|
||||
return packet
|
||||
|
||||
def _read_query_result(self):
|
||||
result = MySQLResult(self)
|
||||
result.read()
|
||||
self._result = result
|
||||
return result.affected_rows
|
||||
|
||||
def insert_id(self):
|
||||
if self._result:
|
||||
return self._result.insert_id
|
||||
else:
|
||||
return 0
|
||||
|
||||
def _send_command(self, command, sql):
|
||||
#send_data = struct.pack('<i', len(sql) + 1) + command + sql
|
||||
# could probably be more efficient, at least it's correct
|
||||
if not self.socket:
|
||||
self.errorhandler(None, InterfaceError, "(0, '')")
|
||||
|
||||
if isinstance(sql, unicode):
|
||||
sql = sql.encode(self.charset)
|
||||
|
||||
prelude = struct.pack('<i', len(sql)+1) + int2byte(command)
|
||||
self.wfile.write(prelude + sql)
|
||||
self.wfile.flush()
|
||||
if DEBUG: dump_packet(prelude + sql)
|
||||
|
||||
def _execute_command(self, command, sql):
|
||||
self._send_command(command, sql)
|
||||
|
||||
def _request_authentication(self):
|
||||
self._send_authentication()
|
||||
|
||||
def _send_authentication(self):
|
||||
self.client_flag |= CAPABILITIES
|
||||
if self.server_version.startswith('5'):
|
||||
self.client_flag |= MULTI_RESULTS
|
||||
|
||||
if self.user is None:
|
||||
raise ValueError, "Did not specify a username"
|
||||
|
||||
charset_id = charset_by_name(self.charset).id
|
||||
self.user = self.user.encode(self.charset)
|
||||
|
||||
data_init = struct.pack('<i', self.client_flag) + struct.pack("<I", 1) + \
|
||||
int2byte(charset_id) + int2byte(0)*23
|
||||
|
||||
next_packet = 1
|
||||
|
||||
if self.ssl:
|
||||
data = pack_int24(len(data_init)) + int2byte(next_packet) + data_init
|
||||
next_packet += 1
|
||||
|
||||
if DEBUG: dump_packet(data)
|
||||
|
||||
self.wfile.write(data)
|
||||
self.wfile.flush()
|
||||
self.socket = ssl.wrap_self.socketet(self.socket, keyfile=self.key,
|
||||
certfile=self.cert,
|
||||
ssl_version=ssl.PROTOCOL_TLSv1,
|
||||
cert_reqs=ssl.CERT_REQUIRED,
|
||||
ca_certs=self.ca)
|
||||
self.rfile = self.socket.makefile("rb")
|
||||
self.wfile = self.socket.makefile("wb")
|
||||
|
||||
data = data_init + self.user+int2byte(0) + _scramble(self.password.encode(self.charset), self.salt)
|
||||
|
||||
if self.db:
|
||||
self.db = self.db.encode(self.charset)
|
||||
data += self.db + int2byte(0)
|
||||
|
||||
data = pack_int24(len(data)) + int2byte(next_packet) + data
|
||||
next_packet += 2
|
||||
|
||||
if DEBUG: dump_packet(data)
|
||||
|
||||
self.wfile.write(data)
|
||||
self.wfile.flush()
|
||||
|
||||
auth_packet = MysqlPacket(self)
|
||||
auth_packet.check_error()
|
||||
if DEBUG: auth_packet.dump()
|
||||
|
||||
# if old_passwords is enabled the packet will be 1 byte long and
|
||||
# have the octet 254
|
||||
|
||||
if auth_packet.is_eof_packet():
|
||||
# send legacy handshake
|
||||
#raise NotImplementedError, "old_passwords are not supported. Check to see if mysqld was started with --old-passwords, if old-passwords=1 in a my.cnf file, or if there are some short hashes in your mysql.user table."
|
||||
# TODO: is this the correct charset?
|
||||
data = _scramble_323(self.password.encode(self.charset), self.salt.encode(self.charset)) + int2byte(0)
|
||||
data = pack_int24(len(data)) + int2byte(next_packet) + data
|
||||
|
||||
self.wfile.write(data)
|
||||
self.wfile.flush()
|
||||
auth_packet = MysqlPacket(self)
|
||||
auth_packet.check_error()
|
||||
if DEBUG: auth_packet.dump()
|
||||
|
||||
|
||||
# _mysql support
|
||||
def thread_id(self):
|
||||
return self.server_thread_id[0]
|
||||
|
||||
def character_set_name(self):
|
||||
return self.charset
|
||||
|
||||
def get_host_info(self):
|
||||
return self.host_info
|
||||
|
||||
def get_proto_info(self):
|
||||
return self.protocol_version
|
||||
|
||||
def _get_server_information(self):
|
||||
i = 0
|
||||
packet = MysqlPacket(self)
|
||||
data = packet.get_all_data()
|
||||
|
||||
if DEBUG: dump_packet(data)
|
||||
#packet_len = byte2int(data[i:i+1])
|
||||
#i += 4
|
||||
self.protocol_version = byte2int(data[i:i+1])
|
||||
|
||||
i += 1
|
||||
server_end = data.find(int2byte(0), i)
|
||||
# TODO: is this the correct charset? should it be default_charset?
|
||||
self.server_version = data[i:server_end].decode(self.charset)
|
||||
|
||||
i = server_end + 1
|
||||
self.server_thread_id = struct.unpack('<h', data[i:i+2])
|
||||
|
||||
i += 4
|
||||
self.salt = data[i:i+8]
|
||||
|
||||
i += 9
|
||||
if len(data) >= i + 1:
|
||||
i += 1
|
||||
|
||||
self.server_capabilities = struct.unpack('<h', data[i:i+2])[0]
|
||||
|
||||
i += 1
|
||||
self.server_language = byte2int(data[i:i+1])
|
||||
self.server_charset = charset_by_id(self.server_language).name
|
||||
|
||||
i += 16
|
||||
if len(data) >= i+12-1:
|
||||
rest_salt = data[i:i+12]
|
||||
self.salt += rest_salt
|
||||
|
||||
def get_server_info(self):
|
||||
return self.server_version
|
||||
|
||||
Warning = Warning
|
||||
Error = Error
|
||||
InterfaceError = InterfaceError
|
||||
DatabaseError = DatabaseError
|
||||
DataError = DataError
|
||||
OperationalError = OperationalError
|
||||
IntegrityError = IntegrityError
|
||||
InternalError = InternalError
|
||||
ProgrammingError = ProgrammingError
|
||||
NotSupportedError = NotSupportedError
|
||||
|
||||
# TODO: move OK and EOF packet parsing/logic into a proper subclass
|
||||
# of MysqlPacket like has been done with FieldDescriptorPacket.
|
||||
class MySQLResult(object):
|
||||
|
||||
def __init__(self, connection):
|
||||
from weakref import proxy
|
||||
self.connection = proxy(connection)
|
||||
self.affected_rows = None
|
||||
self.insert_id = None
|
||||
self.server_status = 0
|
||||
self.warning_count = 0
|
||||
self.message = None
|
||||
self.field_count = 0
|
||||
self.description = None
|
||||
self.rows = None
|
||||
self.has_next = None
|
||||
|
||||
def read(self):
|
||||
self.first_packet = self.connection.read_packet()
|
||||
|
||||
# TODO: use classes for different packet types?
|
||||
if self.first_packet.is_ok_packet():
|
||||
self._read_ok_packet()
|
||||
else:
|
||||
self._read_result_packet()
|
||||
|
||||
def _read_ok_packet(self):
|
||||
self.first_packet.advance(1) # field_count (always '0')
|
||||
self.affected_rows = self.first_packet.read_length_coded_binary()
|
||||
self.insert_id = self.first_packet.read_length_coded_binary()
|
||||
self.server_status = struct.unpack('<H', self.first_packet.read(2))[0]
|
||||
self.warning_count = struct.unpack('<H', self.first_packet.read(2))[0]
|
||||
self.message = self.first_packet.read_all()
|
||||
|
||||
def _read_result_packet(self):
|
||||
self.field_count = byte2int(self.first_packet.read(1))
|
||||
self._get_descriptions()
|
||||
self._read_rowdata_packet()
|
||||
|
||||
# TODO: implement this as an iteratable so that it is more
|
||||
# memory efficient and lower-latency to client...
|
||||
def _read_rowdata_packet(self):
|
||||
"""Read a rowdata packet for each data row in the result set."""
|
||||
rows = []
|
||||
while True:
|
||||
packet = self.connection.read_packet()
|
||||
if packet.is_eof_packet():
|
||||
self.warning_count = packet.read(2)
|
||||
server_status = struct.unpack('<h', packet.read(2))[0]
|
||||
self.has_next = (server_status
|
||||
& SERVER_STATUS.SERVER_MORE_RESULTS_EXISTS)
|
||||
break
|
||||
|
||||
row = []
|
||||
for field in self.fields:
|
||||
if field.type_code in self.connection.decoders:
|
||||
converter = self.connection.decoders[field.type_code]
|
||||
|
||||
if DEBUG: print "DEBUG: field=%s, converter=%s" % (field, converter)
|
||||
data = packet.read_length_coded_string()
|
||||
converted = None
|
||||
if data != None:
|
||||
converted = converter(self.connection, field, data)
|
||||
|
||||
row.append(converted)
|
||||
|
||||
rows.append(tuple(row))
|
||||
|
||||
self.affected_rows = len(rows)
|
||||
self.rows = tuple(rows)
|
||||
if DEBUG: self.rows
|
||||
|
||||
def _get_descriptions(self):
|
||||
"""Read a column descriptor packet for each column in the result."""
|
||||
self.fields = []
|
||||
description = []
|
||||
for i in xrange(self.field_count):
|
||||
field = self.connection.read_packet(FieldDescriptorPacket)
|
||||
self.fields.append(field)
|
||||
description.append(field.description())
|
||||
|
||||
eof_packet = self.connection.read_packet()
|
||||
assert eof_packet.is_eof_packet(), 'Protocol error, expecting EOF'
|
||||
self.description = tuple(description)
|
||||
@ -1,20 +0,0 @@
|
||||
|
||||
LONG_PASSWORD = 1
|
||||
FOUND_ROWS = 1 << 1
|
||||
LONG_FLAG = 1 << 2
|
||||
CONNECT_WITH_DB = 1 << 3
|
||||
NO_SCHEMA = 1 << 4
|
||||
COMPRESS = 1 << 5
|
||||
ODBC = 1 << 6
|
||||
LOCAL_FILES = 1 << 7
|
||||
IGNORE_SPACE = 1 << 8
|
||||
PROTOCOL_41 = 1 << 9
|
||||
INTERACTIVE = 1 << 10
|
||||
SSL = 1 << 11
|
||||
IGNORE_SIGPIPE = 1 << 12
|
||||
TRANSACTIONS = 1 << 13
|
||||
SECURE_CONNECTION = 1 << 15
|
||||
MULTI_STATEMENTS = 1 << 16
|
||||
MULTI_RESULTS = 1 << 17
|
||||
CAPABILITIES = LONG_PASSWORD|LONG_FLAG|TRANSACTIONS| \
|
||||
PROTOCOL_41|SECURE_CONNECTION
|
||||
@ -1,23 +0,0 @@
|
||||
|
||||
COM_SLEEP = 0x00
|
||||
COM_QUIT = 0x01
|
||||
COM_INIT_DB = 0x02
|
||||
COM_QUERY = 0x03
|
||||
COM_FIELD_LIST = 0x04
|
||||
COM_CREATE_DB = 0x05
|
||||
COM_DROP_DB = 0x06
|
||||
COM_REFRESH = 0x07
|
||||
COM_SHUTDOWN = 0x08
|
||||
COM_STATISTICS = 0x09
|
||||
COM_PROCESS_INFO = 0x0a
|
||||
COM_CONNECT = 0x0b
|
||||
COM_PROCESS_KILL = 0x0c
|
||||
COM_DEBUG = 0x0d
|
||||
COM_PING = 0x0e
|
||||
COM_TIME = 0x0f
|
||||
COM_DELAYED_INSERT = 0x10
|
||||
COM_CHANGE_USER = 0x11
|
||||
COM_BINLOG_DUMP = 0x12
|
||||
COM_TABLE_DUMP = 0x13
|
||||
COM_CONNECT_OUT = 0x14
|
||||
COM_REGISTER_SLAVE = 0x15
|
||||
@ -1,472 +0,0 @@
|
||||
|
||||
ERROR_FIRST = 1000
|
||||
HASHCHK = 1000
|
||||
NISAMCHK = 1001
|
||||
NO = 1002
|
||||
YES = 1003
|
||||
CANT_CREATE_FILE = 1004
|
||||
CANT_CREATE_TABLE = 1005
|
||||
CANT_CREATE_DB = 1006
|
||||
DB_CREATE_EXISTS = 1007
|
||||
DB_DROP_EXISTS = 1008
|
||||
DB_DROP_DELETE = 1009
|
||||
DB_DROP_RMDIR = 1010
|
||||
CANT_DELETE_FILE = 1011
|
||||
CANT_FIND_SYSTEM_REC = 1012
|
||||
CANT_GET_STAT = 1013
|
||||
CANT_GET_WD = 1014
|
||||
CANT_LOCK = 1015
|
||||
CANT_OPEN_FILE = 1016
|
||||
FILE_NOT_FOUND = 1017
|
||||
CANT_READ_DIR = 1018
|
||||
CANT_SET_WD = 1019
|
||||
CHECKREAD = 1020
|
||||
DISK_FULL = 1021
|
||||
DUP_KEY = 1022
|
||||
ERROR_ON_CLOSE = 1023
|
||||
ERROR_ON_READ = 1024
|
||||
ERROR_ON_RENAME = 1025
|
||||
ERROR_ON_WRITE = 1026
|
||||
FILE_USED = 1027
|
||||
FILSORT_ABORT = 1028
|
||||
FORM_NOT_FOUND = 1029
|
||||
GET_ERRNO = 1030
|
||||
ILLEGAL_HA = 1031
|
||||
KEY_NOT_FOUND = 1032
|
||||
NOT_FORM_FILE = 1033
|
||||
NOT_KEYFILE = 1034
|
||||
OLD_KEYFILE = 1035
|
||||
OPEN_AS_READONLY = 1036
|
||||
OUTOFMEMORY = 1037
|
||||
OUT_OF_SORTMEMORY = 1038
|
||||
UNEXPECTED_EOF = 1039
|
||||
CON_COUNT_ERROR = 1040
|
||||
OUT_OF_RESOURCES = 1041
|
||||
BAD_HOST_ERROR = 1042
|
||||
HANDSHAKE_ERROR = 1043
|
||||
DBACCESS_DENIED_ERROR = 1044
|
||||
ACCESS_DENIED_ERROR = 1045
|
||||
NO_DB_ERROR = 1046
|
||||
UNKNOWN_COM_ERROR = 1047
|
||||
BAD_NULL_ERROR = 1048
|
||||
BAD_DB_ERROR = 1049
|
||||
TABLE_EXISTS_ERROR = 1050
|
||||
BAD_TABLE_ERROR = 1051
|
||||
NON_UNIQ_ERROR = 1052
|
||||
SERVER_SHUTDOWN = 1053
|
||||
BAD_FIELD_ERROR = 1054
|
||||
WRONG_FIELD_WITH_GROUP = 1055
|
||||
WRONG_GROUP_FIELD = 1056
|
||||
WRONG_SUM_SELECT = 1057
|
||||
WRONG_VALUE_COUNT = 1058
|
||||
TOO_LONG_IDENT = 1059
|
||||
DUP_FIELDNAME = 1060
|
||||
DUP_KEYNAME = 1061
|
||||
DUP_ENTRY = 1062
|
||||
WRONG_FIELD_SPEC = 1063
|
||||
PARSE_ERROR = 1064
|
||||
EMPTY_QUERY = 1065
|
||||
NONUNIQ_TABLE = 1066
|
||||
INVALID_DEFAULT = 1067
|
||||
MULTIPLE_PRI_KEY = 1068
|
||||
TOO_MANY_KEYS = 1069
|
||||
TOO_MANY_KEY_PARTS = 1070
|
||||
TOO_LONG_KEY = 1071
|
||||
KEY_COLUMN_DOES_NOT_EXITS = 1072
|
||||
BLOB_USED_AS_KEY = 1073
|
||||
TOO_BIG_FIELDLENGTH = 1074
|
||||
WRONG_AUTO_KEY = 1075
|
||||
READY = 1076
|
||||
NORMAL_SHUTDOWN = 1077
|
||||
GOT_SIGNAL = 1078
|
||||
SHUTDOWN_COMPLETE = 1079
|
||||
FORCING_CLOSE = 1080
|
||||
IPSOCK_ERROR = 1081
|
||||
NO_SUCH_INDEX = 1082
|
||||
WRONG_FIELD_TERMINATORS = 1083
|
||||
BLOBS_AND_NO_TERMINATED = 1084
|
||||
TEXTFILE_NOT_READABLE = 1085
|
||||
FILE_EXISTS_ERROR = 1086
|
||||
LOAD_INFO = 1087
|
||||
ALTER_INFO = 1088
|
||||
WRONG_SUB_KEY = 1089
|
||||
CANT_REMOVE_ALL_FIELDS = 1090
|
||||
CANT_DROP_FIELD_OR_KEY = 1091
|
||||
INSERT_INFO = 1092
|
||||
UPDATE_TABLE_USED = 1093
|
||||
NO_SUCH_THREAD = 1094
|
||||
KILL_DENIED_ERROR = 1095
|
||||
NO_TABLES_USED = 1096
|
||||
TOO_BIG_SET = 1097
|
||||
NO_UNIQUE_LOGFILE = 1098
|
||||
TABLE_NOT_LOCKED_FOR_WRITE = 1099
|
||||
TABLE_NOT_LOCKED = 1100
|
||||
BLOB_CANT_HAVE_DEFAULT = 1101
|
||||
WRONG_DB_NAME = 1102
|
||||
WRONG_TABLE_NAME = 1103
|
||||
TOO_BIG_SELECT = 1104
|
||||
UNKNOWN_ERROR = 1105
|
||||
UNKNOWN_PROCEDURE = 1106
|
||||
WRONG_PARAMCOUNT_TO_PROCEDURE = 1107
|
||||
WRONG_PARAMETERS_TO_PROCEDURE = 1108
|
||||
UNKNOWN_TABLE = 1109
|
||||
FIELD_SPECIFIED_TWICE = 1110
|
||||
INVALID_GROUP_FUNC_USE = 1111
|
||||
UNSUPPORTED_EXTENSION = 1112
|
||||
TABLE_MUST_HAVE_COLUMNS = 1113
|
||||
RECORD_FILE_FULL = 1114
|
||||
UNKNOWN_CHARACTER_SET = 1115
|
||||
TOO_MANY_TABLES = 1116
|
||||
TOO_MANY_FIELDS = 1117
|
||||
TOO_BIG_ROWSIZE = 1118
|
||||
STACK_OVERRUN = 1119
|
||||
WRONG_OUTER_JOIN = 1120
|
||||
NULL_COLUMN_IN_INDEX = 1121
|
||||
CANT_FIND_UDF = 1122
|
||||
CANT_INITIALIZE_UDF = 1123
|
||||
UDF_NO_PATHS = 1124
|
||||
UDF_EXISTS = 1125
|
||||
CANT_OPEN_LIBRARY = 1126
|
||||
CANT_FIND_DL_ENTRY = 1127
|
||||
FUNCTION_NOT_DEFINED = 1128
|
||||
HOST_IS_BLOCKED = 1129
|
||||
HOST_NOT_PRIVILEGED = 1130
|
||||
PASSWORD_ANONYMOUS_USER = 1131
|
||||
PASSWORD_NOT_ALLOWED = 1132
|
||||
PASSWORD_NO_MATCH = 1133
|
||||
UPDATE_INFO = 1134
|
||||
CANT_CREATE_THREAD = 1135
|
||||
WRONG_VALUE_COUNT_ON_ROW = 1136
|
||||
CANT_REOPEN_TABLE = 1137
|
||||
INVALID_USE_OF_NULL = 1138
|
||||
REGEXP_ERROR = 1139
|
||||
MIX_OF_GROUP_FUNC_AND_FIELDS = 1140
|
||||
NONEXISTING_GRANT = 1141
|
||||
TABLEACCESS_DENIED_ERROR = 1142
|
||||
COLUMNACCESS_DENIED_ERROR = 1143
|
||||
ILLEGAL_GRANT_FOR_TABLE = 1144
|
||||
GRANT_WRONG_HOST_OR_USER = 1145
|
||||
NO_SUCH_TABLE = 1146
|
||||
NONEXISTING_TABLE_GRANT = 1147
|
||||
NOT_ALLOWED_COMMAND = 1148
|
||||
SYNTAX_ERROR = 1149
|
||||
DELAYED_CANT_CHANGE_LOCK = 1150
|
||||
TOO_MANY_DELAYED_THREADS = 1151
|
||||
ABORTING_CONNECTION = 1152
|
||||
NET_PACKET_TOO_LARGE = 1153
|
||||
NET_READ_ERROR_FROM_PIPE = 1154
|
||||
NET_FCNTL_ERROR = 1155
|
||||
NET_PACKETS_OUT_OF_ORDER = 1156
|
||||
NET_UNCOMPRESS_ERROR = 1157
|
||||
NET_READ_ERROR = 1158
|
||||
NET_READ_INTERRUPTED = 1159
|
||||
NET_ERROR_ON_WRITE = 1160
|
||||
NET_WRITE_INTERRUPTED = 1161
|
||||
TOO_LONG_STRING = 1162
|
||||
TABLE_CANT_HANDLE_BLOB = 1163
|
||||
TABLE_CANT_HANDLE_AUTO_INCREMENT = 1164
|
||||
DELAYED_INSERT_TABLE_LOCKED = 1165
|
||||
WRONG_COLUMN_NAME = 1166
|
||||
WRONG_KEY_COLUMN = 1167
|
||||
WRONG_MRG_TABLE = 1168
|
||||
DUP_UNIQUE = 1169
|
||||
BLOB_KEY_WITHOUT_LENGTH = 1170
|
||||
PRIMARY_CANT_HAVE_NULL = 1171
|
||||
TOO_MANY_ROWS = 1172
|
||||
REQUIRES_PRIMARY_KEY = 1173
|
||||
NO_RAID_COMPILED = 1174
|
||||
UPDATE_WITHOUT_KEY_IN_SAFE_MODE = 1175
|
||||
KEY_DOES_NOT_EXITS = 1176
|
||||
CHECK_NO_SUCH_TABLE = 1177
|
||||
CHECK_NOT_IMPLEMENTED = 1178
|
||||
CANT_DO_THIS_DURING_AN_TRANSACTION = 1179
|
||||
ERROR_DURING_COMMIT = 1180
|
||||
ERROR_DURING_ROLLBACK = 1181
|
||||
ERROR_DURING_FLUSH_LOGS = 1182
|
||||
ERROR_DURING_CHECKPOINT = 1183
|
||||
NEW_ABORTING_CONNECTION = 1184
|
||||
DUMP_NOT_IMPLEMENTED = 1185
|
||||
FLUSH_MASTER_BINLOG_CLOSED = 1186
|
||||
INDEX_REBUILD = 1187
|
||||
MASTER = 1188
|
||||
MASTER_NET_READ = 1189
|
||||
MASTER_NET_WRITE = 1190
|
||||
FT_MATCHING_KEY_NOT_FOUND = 1191
|
||||
LOCK_OR_ACTIVE_TRANSACTION = 1192
|
||||
UNKNOWN_SYSTEM_VARIABLE = 1193
|
||||
CRASHED_ON_USAGE = 1194
|
||||
CRASHED_ON_REPAIR = 1195
|
||||
WARNING_NOT_COMPLETE_ROLLBACK = 1196
|
||||
TRANS_CACHE_FULL = 1197
|
||||
SLAVE_MUST_STOP = 1198
|
||||
SLAVE_NOT_RUNNING = 1199
|
||||
BAD_SLAVE = 1200
|
||||
MASTER_INFO = 1201
|
||||
SLAVE_THREAD = 1202
|
||||
TOO_MANY_USER_CONNECTIONS = 1203
|
||||
SET_CONSTANTS_ONLY = 1204
|
||||
LOCK_WAIT_TIMEOUT = 1205
|
||||
LOCK_TABLE_FULL = 1206
|
||||
READ_ONLY_TRANSACTION = 1207
|
||||
DROP_DB_WITH_READ_LOCK = 1208
|
||||
CREATE_DB_WITH_READ_LOCK = 1209
|
||||
WRONG_ARGUMENTS = 1210
|
||||
NO_PERMISSION_TO_CREATE_USER = 1211
|
||||
UNION_TABLES_IN_DIFFERENT_DIR = 1212
|
||||
LOCK_DEADLOCK = 1213
|
||||
TABLE_CANT_HANDLE_FT = 1214
|
||||
CANNOT_ADD_FOREIGN = 1215
|
||||
NO_REFERENCED_ROW = 1216
|
||||
ROW_IS_REFERENCED = 1217
|
||||
CONNECT_TO_MASTER = 1218
|
||||
QUERY_ON_MASTER = 1219
|
||||
ERROR_WHEN_EXECUTING_COMMAND = 1220
|
||||
WRONG_USAGE = 1221
|
||||
WRONG_NUMBER_OF_COLUMNS_IN_SELECT = 1222
|
||||
CANT_UPDATE_WITH_READLOCK = 1223
|
||||
MIXING_NOT_ALLOWED = 1224
|
||||
DUP_ARGUMENT = 1225
|
||||
USER_LIMIT_REACHED = 1226
|
||||
SPECIFIC_ACCESS_DENIED_ERROR = 1227
|
||||
LOCAL_VARIABLE = 1228
|
||||
GLOBAL_VARIABLE = 1229
|
||||
NO_DEFAULT = 1230
|
||||
WRONG_VALUE_FOR_VAR = 1231
|
||||
WRONG_TYPE_FOR_VAR = 1232
|
||||
VAR_CANT_BE_READ = 1233
|
||||
CANT_USE_OPTION_HERE = 1234
|
||||
NOT_SUPPORTED_YET = 1235
|
||||
MASTER_FATAL_ERROR_READING_BINLOG = 1236
|
||||
SLAVE_IGNORED_TABLE = 1237
|
||||
INCORRECT_GLOBAL_LOCAL_VAR = 1238
|
||||
WRONG_FK_DEF = 1239
|
||||
KEY_REF_DO_NOT_MATCH_TABLE_REF = 1240
|
||||
OPERAND_COLUMNS = 1241
|
||||
SUBQUERY_NO_1_ROW = 1242
|
||||
UNKNOWN_STMT_HANDLER = 1243
|
||||
CORRUPT_HELP_DB = 1244
|
||||
CYCLIC_REFERENCE = 1245
|
||||
AUTO_CONVERT = 1246
|
||||
ILLEGAL_REFERENCE = 1247
|
||||
DERIVED_MUST_HAVE_ALIAS = 1248
|
||||
SELECT_REDUCED = 1249
|
||||
TABLENAME_NOT_ALLOWED_HERE = 1250
|
||||
NOT_SUPPORTED_AUTH_MODE = 1251
|
||||
SPATIAL_CANT_HAVE_NULL = 1252
|
||||
COLLATION_CHARSET_MISMATCH = 1253
|
||||
SLAVE_WAS_RUNNING = 1254
|
||||
SLAVE_WAS_NOT_RUNNING = 1255
|
||||
TOO_BIG_FOR_UNCOMPRESS = 1256
|
||||
ZLIB_Z_MEM_ERROR = 1257
|
||||
ZLIB_Z_BUF_ERROR = 1258
|
||||
ZLIB_Z_DATA_ERROR = 1259
|
||||
CUT_VALUE_GROUP_CONCAT = 1260
|
||||
WARN_TOO_FEW_RECORDS = 1261
|
||||
WARN_TOO_MANY_RECORDS = 1262
|
||||
WARN_NULL_TO_NOTNULL = 1263
|
||||
WARN_DATA_OUT_OF_RANGE = 1264
|
||||
WARN_DATA_TRUNCATED = 1265
|
||||
WARN_USING_OTHER_HANDLER = 1266
|
||||
CANT_AGGREGATE_2COLLATIONS = 1267
|
||||
DROP_USER = 1268
|
||||
REVOKE_GRANTS = 1269
|
||||
CANT_AGGREGATE_3COLLATIONS = 1270
|
||||
CANT_AGGREGATE_NCOLLATIONS = 1271
|
||||
VARIABLE_IS_NOT_STRUCT = 1272
|
||||
UNKNOWN_COLLATION = 1273
|
||||
SLAVE_IGNORED_SSL_PARAMS = 1274
|
||||
SERVER_IS_IN_SECURE_AUTH_MODE = 1275
|
||||
WARN_FIELD_RESOLVED = 1276
|
||||
BAD_SLAVE_UNTIL_COND = 1277
|
||||
MISSING_SKIP_SLAVE = 1278
|
||||
UNTIL_COND_IGNORED = 1279
|
||||
WRONG_NAME_FOR_INDEX = 1280
|
||||
WRONG_NAME_FOR_CATALOG = 1281
|
||||
WARN_QC_RESIZE = 1282
|
||||
BAD_FT_COLUMN = 1283
|
||||
UNKNOWN_KEY_CACHE = 1284
|
||||
WARN_HOSTNAME_WONT_WORK = 1285
|
||||
UNKNOWN_STORAGE_ENGINE = 1286
|
||||
WARN_DEPRECATED_SYNTAX = 1287
|
||||
NON_UPDATABLE_TABLE = 1288
|
||||
FEATURE_DISABLED = 1289
|
||||
OPTION_PREVENTS_STATEMENT = 1290
|
||||
DUPLICATED_VALUE_IN_TYPE = 1291
|
||||
TRUNCATED_WRONG_VALUE = 1292
|
||||
TOO_MUCH_AUTO_TIMESTAMP_COLS = 1293
|
||||
INVALID_ON_UPDATE = 1294
|
||||
UNSUPPORTED_PS = 1295
|
||||
GET_ERRMSG = 1296
|
||||
GET_TEMPORARY_ERRMSG = 1297
|
||||
UNKNOWN_TIME_ZONE = 1298
|
||||
WARN_INVALID_TIMESTAMP = 1299
|
||||
INVALID_CHARACTER_STRING = 1300
|
||||
WARN_ALLOWED_PACKET_OVERFLOWED = 1301
|
||||
CONFLICTING_DECLARATIONS = 1302
|
||||
SP_NO_RECURSIVE_CREATE = 1303
|
||||
SP_ALREADY_EXISTS = 1304
|
||||
SP_DOES_NOT_EXIST = 1305
|
||||
SP_DROP_FAILED = 1306
|
||||
SP_STORE_FAILED = 1307
|
||||
SP_LILABEL_MISMATCH = 1308
|
||||
SP_LABEL_REDEFINE = 1309
|
||||
SP_LABEL_MISMATCH = 1310
|
||||
SP_UNINIT_VAR = 1311
|
||||
SP_BADSELECT = 1312
|
||||
SP_BADRETURN = 1313
|
||||
SP_BADSTATEMENT = 1314
|
||||
UPDATE_LOG_DEPRECATED_IGNORED = 1315
|
||||
UPDATE_LOG_DEPRECATED_TRANSLATED = 1316
|
||||
QUERY_INTERRUPTED = 1317
|
||||
SP_WRONG_NO_OF_ARGS = 1318
|
||||
SP_COND_MISMATCH = 1319
|
||||
SP_NORETURN = 1320
|
||||
SP_NORETURNEND = 1321
|
||||
SP_BAD_CURSOR_QUERY = 1322
|
||||
SP_BAD_CURSOR_SELECT = 1323
|
||||
SP_CURSOR_MISMATCH = 1324
|
||||
SP_CURSOR_ALREADY_OPEN = 1325
|
||||
SP_CURSOR_NOT_OPEN = 1326
|
||||
SP_UNDECLARED_VAR = 1327
|
||||
SP_WRONG_NO_OF_FETCH_ARGS = 1328
|
||||
SP_FETCH_NO_DATA = 1329
|
||||
SP_DUP_PARAM = 1330
|
||||
SP_DUP_VAR = 1331
|
||||
SP_DUP_COND = 1332
|
||||
SP_DUP_CURS = 1333
|
||||
SP_CANT_ALTER = 1334
|
||||
SP_SUBSELECT_NYI = 1335
|
||||
STMT_NOT_ALLOWED_IN_SF_OR_TRG = 1336
|
||||
SP_VARCOND_AFTER_CURSHNDLR = 1337
|
||||
SP_CURSOR_AFTER_HANDLER = 1338
|
||||
SP_CASE_NOT_FOUND = 1339
|
||||
FPARSER_TOO_BIG_FILE = 1340
|
||||
FPARSER_BAD_HEADER = 1341
|
||||
FPARSER_EOF_IN_COMMENT = 1342
|
||||
FPARSER_ERROR_IN_PARAMETER = 1343
|
||||
FPARSER_EOF_IN_UNKNOWN_PARAMETER = 1344
|
||||
VIEW_NO_EXPLAIN = 1345
|
||||
FRM_UNKNOWN_TYPE = 1346
|
||||
WRONG_OBJECT = 1347
|
||||
NONUPDATEABLE_COLUMN = 1348
|
||||
VIEW_SELECT_DERIVED = 1349
|
||||
VIEW_SELECT_CLAUSE = 1350
|
||||
VIEW_SELECT_VARIABLE = 1351
|
||||
VIEW_SELECT_TMPTABLE = 1352
|
||||
VIEW_WRONG_LIST = 1353
|
||||
WARN_VIEW_MERGE = 1354
|
||||
WARN_VIEW_WITHOUT_KEY = 1355
|
||||
VIEW_INVALID = 1356
|
||||
SP_NO_DROP_SP = 1357
|
||||
SP_GOTO_IN_HNDLR = 1358
|
||||
TRG_ALREADY_EXISTS = 1359
|
||||
TRG_DOES_NOT_EXIST = 1360
|
||||
TRG_ON_VIEW_OR_TEMP_TABLE = 1361
|
||||
TRG_CANT_CHANGE_ROW = 1362
|
||||
TRG_NO_SUCH_ROW_IN_TRG = 1363
|
||||
NO_DEFAULT_FOR_FIELD = 1364
|
||||
DIVISION_BY_ZERO = 1365
|
||||
TRUNCATED_WRONG_VALUE_FOR_FIELD = 1366
|
||||
ILLEGAL_VALUE_FOR_TYPE = 1367
|
||||
VIEW_NONUPD_CHECK = 1368
|
||||
VIEW_CHECK_FAILED = 1369
|
||||
PROCACCESS_DENIED_ERROR = 1370
|
||||
RELAY_LOG_FAIL = 1371
|
||||
PASSWD_LENGTH = 1372
|
||||
UNKNOWN_TARGET_BINLOG = 1373
|
||||
IO_ERR_LOG_INDEX_READ = 1374
|
||||
BINLOG_PURGE_PROHIBITED = 1375
|
||||
FSEEK_FAIL = 1376
|
||||
BINLOG_PURGE_FATAL_ERR = 1377
|
||||
LOG_IN_USE = 1378
|
||||
LOG_PURGE_UNKNOWN_ERR = 1379
|
||||
RELAY_LOG_INIT = 1380
|
||||
NO_BINARY_LOGGING = 1381
|
||||
RESERVED_SYNTAX = 1382
|
||||
WSAS_FAILED = 1383
|
||||
DIFF_GROUPS_PROC = 1384
|
||||
NO_GROUP_FOR_PROC = 1385
|
||||
ORDER_WITH_PROC = 1386
|
||||
LOGGING_PROHIBIT_CHANGING_OF = 1387
|
||||
NO_FILE_MAPPING = 1388
|
||||
WRONG_MAGIC = 1389
|
||||
PS_MANY_PARAM = 1390
|
||||
KEY_PART_0 = 1391
|
||||
VIEW_CHECKSUM = 1392
|
||||
VIEW_MULTIUPDATE = 1393
|
||||
VIEW_NO_INSERT_FIELD_LIST = 1394
|
||||
VIEW_DELETE_MERGE_VIEW = 1395
|
||||
CANNOT_USER = 1396
|
||||
XAER_NOTA = 1397
|
||||
XAER_INVAL = 1398
|
||||
XAER_RMFAIL = 1399
|
||||
XAER_OUTSIDE = 1400
|
||||
XAER_RMERR = 1401
|
||||
XA_RBROLLBACK = 1402
|
||||
NONEXISTING_PROC_GRANT = 1403
|
||||
PROC_AUTO_GRANT_FAIL = 1404
|
||||
PROC_AUTO_REVOKE_FAIL = 1405
|
||||
DATA_TOO_LONG = 1406
|
||||
SP_BAD_SQLSTATE = 1407
|
||||
STARTUP = 1408
|
||||
LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR = 1409
|
||||
CANT_CREATE_USER_WITH_GRANT = 1410
|
||||
WRONG_VALUE_FOR_TYPE = 1411
|
||||
TABLE_DEF_CHANGED = 1412
|
||||
SP_DUP_HANDLER = 1413
|
||||
SP_NOT_VAR_ARG = 1414
|
||||
SP_NO_RETSET = 1415
|
||||
CANT_CREATE_GEOMETRY_OBJECT = 1416
|
||||
FAILED_ROUTINE_BREAK_BINLOG = 1417
|
||||
BINLOG_UNSAFE_ROUTINE = 1418
|
||||
BINLOG_CREATE_ROUTINE_NEED_SUPER = 1419
|
||||
EXEC_STMT_WITH_OPEN_CURSOR = 1420
|
||||
STMT_HAS_NO_OPEN_CURSOR = 1421
|
||||
COMMIT_NOT_ALLOWED_IN_SF_OR_TRG = 1422
|
||||
NO_DEFAULT_FOR_VIEW_FIELD = 1423
|
||||
SP_NO_RECURSION = 1424
|
||||
TOO_BIG_SCALE = 1425
|
||||
TOO_BIG_PRECISION = 1426
|
||||
M_BIGGER_THAN_D = 1427
|
||||
WRONG_LOCK_OF_SYSTEM_TABLE = 1428
|
||||
CONNECT_TO_FOREIGN_DATA_SOURCE = 1429
|
||||
QUERY_ON_FOREIGN_DATA_SOURCE = 1430
|
||||
FOREIGN_DATA_SOURCE_DOESNT_EXIST = 1431
|
||||
FOREIGN_DATA_STRING_INVALID_CANT_CREATE = 1432
|
||||
FOREIGN_DATA_STRING_INVALID = 1433
|
||||
CANT_CREATE_FEDERATED_TABLE = 1434
|
||||
TRG_IN_WRONG_SCHEMA = 1435
|
||||
STACK_OVERRUN_NEED_MORE = 1436
|
||||
TOO_LONG_BODY = 1437
|
||||
WARN_CANT_DROP_DEFAULT_KEYCACHE = 1438
|
||||
TOO_BIG_DISPLAYWIDTH = 1439
|
||||
XAER_DUPID = 1440
|
||||
DATETIME_FUNCTION_OVERFLOW = 1441
|
||||
CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG = 1442
|
||||
VIEW_PREVENT_UPDATE = 1443
|
||||
PS_NO_RECURSION = 1444
|
||||
SP_CANT_SET_AUTOCOMMIT = 1445
|
||||
MALFORMED_DEFINER = 1446
|
||||
VIEW_FRM_NO_USER = 1447
|
||||
VIEW_OTHER_USER = 1448
|
||||
NO_SUCH_USER = 1449
|
||||
FORBID_SCHEMA_CHANGE = 1450
|
||||
ROW_IS_REFERENCED_2 = 1451
|
||||
NO_REFERENCED_ROW_2 = 1452
|
||||
SP_BAD_VAR_SHADOW = 1453
|
||||
TRG_NO_DEFINER = 1454
|
||||
OLD_FILE_FORMAT = 1455
|
||||
SP_RECURSION_LIMIT = 1456
|
||||
SP_PROC_TABLE_CORRUPT = 1457
|
||||
SP_WRONG_NAME = 1458
|
||||
TABLE_NEEDS_UPGRADE = 1459
|
||||
SP_NO_AGGREGATE = 1460
|
||||
MAX_PREPARED_STMT_COUNT_REACHED = 1461
|
||||
VIEW_RECURSIVE = 1462
|
||||
NON_GROUPING_FIELD_USED = 1463
|
||||
TABLE_CANT_HANDLE_SPKEYS = 1464
|
||||
NO_TRIGGERS_ON_SYSTEM_SCHEMA = 1465
|
||||
USERNAME = 1466
|
||||
HOSTNAME = 1467
|
||||
WRONG_STRING_LENGTH = 1468
|
||||
ERROR_LAST = 1468
|
||||
@ -1,32 +0,0 @@
|
||||
|
||||
|
||||
DECIMAL = 0
|
||||
TINY = 1
|
||||
SHORT = 2
|
||||
LONG = 3
|
||||
FLOAT = 4
|
||||
DOUBLE = 5
|
||||
NULL = 6
|
||||
TIMESTAMP = 7
|
||||
LONGLONG = 8
|
||||
INT24 = 9
|
||||
DATE = 10
|
||||
TIME = 11
|
||||
DATETIME = 12
|
||||
YEAR = 13
|
||||
NEWDATE = 14
|
||||
VARCHAR = 15
|
||||
BIT = 16
|
||||
NEWDECIMAL = 246
|
||||
ENUM = 247
|
||||
SET = 248
|
||||
TINY_BLOB = 249
|
||||
MEDIUM_BLOB = 250
|
||||
LONG_BLOB = 251
|
||||
BLOB = 252
|
||||
VAR_STRING = 253
|
||||
STRING = 254
|
||||
GEOMETRY = 255
|
||||
|
||||
CHAR = TINY
|
||||
INTERVAL = ENUM
|
||||
@ -1,15 +0,0 @@
|
||||
NOT_NULL = 1
|
||||
PRI_KEY = 2
|
||||
UNIQUE_KEY = 4
|
||||
MULTIPLE_KEY = 8
|
||||
BLOB = 16
|
||||
UNSIGNED = 32
|
||||
ZEROFILL = 64
|
||||
BINARY = 128
|
||||
ENUM = 256
|
||||
AUTO_INCREMENT = 512
|
||||
TIMESTAMP = 1024
|
||||
SET = 2048
|
||||
PART_KEY = 16384
|
||||
GROUP = 32767
|
||||
UNIQUE = 65536
|
||||
@ -1,12 +0,0 @@
|
||||
|
||||
SERVER_STATUS_IN_TRANS = 1
|
||||
SERVER_STATUS_AUTOCOMMIT = 2
|
||||
SERVER_MORE_RESULTS_EXISTS = 8
|
||||
SERVER_QUERY_NO_GOOD_INDEX_USED = 16
|
||||
SERVER_QUERY_NO_INDEX_USED = 32
|
||||
SERVER_STATUS_CURSOR_EXISTS = 64
|
||||
SERVER_STATUS_LAST_ROW_SENT = 128
|
||||
SERVER_STATUS_DB_DROPPED = 256
|
||||
SERVER_STATUS_NO_BACKSLASH_ESCAPES = 512
|
||||
SERVER_STATUS_METADATA_CHANGED = 1024
|
||||
|
||||
@ -1,348 +0,0 @@
|
||||
import re
|
||||
import datetime
|
||||
import time
|
||||
import sys
|
||||
|
||||
from constants import FIELD_TYPE, FLAG
|
||||
from charset import charset_by_id
|
||||
|
||||
PYTHON3 = sys.version_info[0] > 2
|
||||
|
||||
try:
|
||||
set
|
||||
except NameError:
|
||||
try:
|
||||
from sets import BaseSet as set
|
||||
except ImportError:
|
||||
from sets import Set as set
|
||||
|
||||
ESCAPE_REGEX = re.compile(r"[\0\n\r\032\'\"\\]")
|
||||
ESCAPE_MAP = {'\0': '\\0', '\n': '\\n', '\r': '\\r', '\032': '\\Z',
|
||||
'\'': '\\\'', '"': '\\"', '\\': '\\\\'}
|
||||
|
||||
def escape_item(val, charset):
|
||||
if type(val) in [tuple, list, set]:
|
||||
return escape_sequence(val, charset)
|
||||
if type(val) is dict:
|
||||
return escape_dict(val, charset)
|
||||
if PYTHON3 and hasattr(val, "decode") and not isinstance(val, unicode):
|
||||
# deal with py3k bytes
|
||||
val = val.decode(charset)
|
||||
encoder = encoders[type(val)]
|
||||
val = encoder(val)
|
||||
if type(val) is str:
|
||||
return val
|
||||
val = val.encode(charset)
|
||||
return val
|
||||
|
||||
def escape_dict(val, charset):
|
||||
n = {}
|
||||
for k, v in val.items():
|
||||
quoted = escape_item(v, charset)
|
||||
n[k] = quoted
|
||||
return n
|
||||
|
||||
def escape_sequence(val, charset):
|
||||
n = []
|
||||
for item in val:
|
||||
quoted = escape_item(item, charset)
|
||||
n.append(quoted)
|
||||
return "(" + ",".join(n) + ")"
|
||||
|
||||
def escape_set(val, charset):
|
||||
val = map(lambda x: escape_item(x, charset), val)
|
||||
return ','.join(val)
|
||||
|
||||
def escape_bool(value):
|
||||
return str(int(value))
|
||||
|
||||
def escape_object(value):
|
||||
return str(value)
|
||||
|
||||
escape_int = escape_long = escape_object
|
||||
|
||||
def escape_float(value):
|
||||
return ('%.15g' % value)
|
||||
|
||||
def escape_string(value):
|
||||
return ("'%s'" % ESCAPE_REGEX.sub(
|
||||
lambda match: ESCAPE_MAP.get(match.group(0)), value))
|
||||
|
||||
def escape_unicode(value):
|
||||
return escape_string(value)
|
||||
|
||||
def escape_None(value):
|
||||
return 'NULL'
|
||||
|
||||
def escape_timedelta(obj):
|
||||
seconds = int(obj.seconds) % 60
|
||||
minutes = int(obj.seconds // 60) % 60
|
||||
hours = int(obj.seconds // 3600) % 24 + int(obj.days) * 24
|
||||
return escape_string('%02d:%02d:%02d' % (hours, minutes, seconds))
|
||||
|
||||
def escape_time(obj):
|
||||
s = "%02d:%02d:%02d" % (int(obj.hour), int(obj.minute),
|
||||
int(obj.second))
|
||||
if obj.microsecond:
|
||||
s += ".%f" % obj.microsecond
|
||||
|
||||
return escape_string(s)
|
||||
|
||||
def escape_datetime(obj):
|
||||
return escape_string(obj.strftime("%Y-%m-%d %H:%M:%S"))
|
||||
|
||||
def escape_date(obj):
|
||||
return escape_string(obj.strftime("%Y-%m-%d"))
|
||||
|
||||
def escape_struct_time(obj):
|
||||
return escape_datetime(datetime.datetime(*obj[:6]))
|
||||
|
||||
def convert_datetime(connection, field, obj):
|
||||
"""Returns a DATETIME or TIMESTAMP column value as a datetime object:
|
||||
|
||||
>>> datetime_or_None('2007-02-25 23:06:20')
|
||||
datetime.datetime(2007, 2, 25, 23, 6, 20)
|
||||
>>> datetime_or_None('2007-02-25T23:06:20')
|
||||
datetime.datetime(2007, 2, 25, 23, 6, 20)
|
||||
|
||||
Illegal values are returned as None:
|
||||
|
||||
>>> datetime_or_None('2007-02-31T23:06:20') is None
|
||||
True
|
||||
>>> datetime_or_None('0000-00-00 00:00:00') is None
|
||||
True
|
||||
|
||||
"""
|
||||
if not isinstance(obj, unicode):
|
||||
obj = obj.decode(connection.charset)
|
||||
if ' ' in obj:
|
||||
sep = ' '
|
||||
elif 'T' in obj:
|
||||
sep = 'T'
|
||||
else:
|
||||
return convert_date(connection, field, obj)
|
||||
|
||||
try:
|
||||
ymd, hms = obj.split(sep, 1)
|
||||
return datetime.datetime(*[ int(x) for x in ymd.split('-')+hms.split(':') ])
|
||||
except ValueError:
|
||||
return convert_date(connection, field, obj)
|
||||
|
||||
def convert_timedelta(connection, field, obj):
|
||||
"""Returns a TIME column as a timedelta object:
|
||||
|
||||
>>> timedelta_or_None('25:06:17')
|
||||
datetime.timedelta(1, 3977)
|
||||
>>> timedelta_or_None('-25:06:17')
|
||||
datetime.timedelta(-2, 83177)
|
||||
|
||||
Illegal values are returned as None:
|
||||
|
||||
>>> timedelta_or_None('random crap') is None
|
||||
True
|
||||
|
||||
Note that MySQL always returns TIME columns as (+|-)HH:MM:SS, but
|
||||
can accept values as (+|-)DD HH:MM:SS. The latter format will not
|
||||
be parsed correctly by this function.
|
||||
"""
|
||||
from math import modf
|
||||
try:
|
||||
if not isinstance(obj, unicode):
|
||||
obj = obj.decode(connection.charset)
|
||||
hours, minutes, seconds = tuple([int(x) for x in obj.split(':')])
|
||||
tdelta = datetime.timedelta(
|
||||
hours = int(hours),
|
||||
minutes = int(minutes),
|
||||
seconds = int(seconds),
|
||||
microseconds = int(modf(float(seconds))[0]*1000000),
|
||||
)
|
||||
return tdelta
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
def convert_time(connection, field, obj):
|
||||
"""Returns a TIME column as a time object:
|
||||
|
||||
>>> time_or_None('15:06:17')
|
||||
datetime.time(15, 6, 17)
|
||||
|
||||
Illegal values are returned as None:
|
||||
|
||||
>>> time_or_None('-25:06:17') is None
|
||||
True
|
||||
>>> time_or_None('random crap') is None
|
||||
True
|
||||
|
||||
Note that MySQL always returns TIME columns as (+|-)HH:MM:SS, but
|
||||
can accept values as (+|-)DD HH:MM:SS. The latter format will not
|
||||
be parsed correctly by this function.
|
||||
|
||||
Also note that MySQL's TIME column corresponds more closely to
|
||||
Python's timedelta and not time. However if you want TIME columns
|
||||
to be treated as time-of-day and not a time offset, then you can
|
||||
use set this function as the converter for FIELD_TYPE.TIME.
|
||||
"""
|
||||
from math import modf
|
||||
try:
|
||||
hour, minute, second = obj.split(':')
|
||||
return datetime.time(hour=int(hour), minute=int(minute),
|
||||
second=int(second),
|
||||
microsecond=int(modf(float(second))[0]*1000000))
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
def convert_date(connection, field, obj):
|
||||
"""Returns a DATE column as a date object:
|
||||
|
||||
>>> date_or_None('2007-02-26')
|
||||
datetime.date(2007, 2, 26)
|
||||
|
||||
Illegal values are returned as None:
|
||||
|
||||
>>> date_or_None('2007-02-31') is None
|
||||
True
|
||||
>>> date_or_None('0000-00-00') is None
|
||||
True
|
||||
|
||||
"""
|
||||
try:
|
||||
if not isinstance(obj, unicode):
|
||||
obj = obj.decode(connection.charset)
|
||||
return datetime.date(*[ int(x) for x in obj.split('-', 2) ])
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
def convert_mysql_timestamp(connection, field, timestamp):
|
||||
"""Convert a MySQL TIMESTAMP to a Timestamp object.
|
||||
|
||||
MySQL >= 4.1 returns TIMESTAMP in the same format as DATETIME:
|
||||
|
||||
>>> mysql_timestamp_converter('2007-02-25 22:32:17')
|
||||
datetime.datetime(2007, 2, 25, 22, 32, 17)
|
||||
|
||||
MySQL < 4.1 uses a big string of numbers:
|
||||
|
||||
>>> mysql_timestamp_converter('20070225223217')
|
||||
datetime.datetime(2007, 2, 25, 22, 32, 17)
|
||||
|
||||
Illegal values are returned as None:
|
||||
|
||||
>>> mysql_timestamp_converter('2007-02-31 22:32:17') is None
|
||||
True
|
||||
>>> mysql_timestamp_converter('00000000000000') is None
|
||||
True
|
||||
|
||||
"""
|
||||
if not isinstance(timestamp, unicode):
|
||||
timestamp = timestamp.decode(connection.charset)
|
||||
|
||||
if timestamp[4] == '-':
|
||||
return convert_datetime(connection, field, timestamp)
|
||||
timestamp += "0"*(14-len(timestamp)) # padding
|
||||
year, month, day, hour, minute, second = \
|
||||
int(timestamp[:4]), int(timestamp[4:6]), int(timestamp[6:8]), \
|
||||
int(timestamp[8:10]), int(timestamp[10:12]), int(timestamp[12:14])
|
||||
try:
|
||||
return datetime.datetime(year, month, day, hour, minute, second)
|
||||
except ValueError:
|
||||
return None
|
||||
|
||||
def convert_set(s):
|
||||
return set(s.split(","))
|
||||
|
||||
def convert_bit(connection, field, b):
|
||||
#b = "\x00" * (8 - len(b)) + b # pad w/ zeroes
|
||||
#return struct.unpack(">Q", b)[0]
|
||||
#
|
||||
# the snippet above is right, but MySQLdb doesn't process bits,
|
||||
# so we shouldn't either
|
||||
return b
|
||||
|
||||
def convert_characters(connection, field, data):
|
||||
field_charset = charset_by_id(field.charsetnr).name
|
||||
if field.flags & FLAG.SET:
|
||||
return convert_set(data.decode(field_charset))
|
||||
if field.flags & FLAG.BINARY:
|
||||
return data
|
||||
|
||||
if connection.use_unicode:
|
||||
data = data.decode(field_charset)
|
||||
elif connection.charset != field_charset:
|
||||
data = data.decode(field_charset)
|
||||
data = data.encode(connection.charset)
|
||||
return data
|
||||
|
||||
def convert_int(connection, field, data):
|
||||
return int(data)
|
||||
|
||||
def convert_long(connection, field, data):
|
||||
return long(data)
|
||||
|
||||
def convert_float(connection, field, data):
|
||||
return float(data)
|
||||
|
||||
encoders = {
|
||||
bool: escape_bool,
|
||||
int: escape_int,
|
||||
long: escape_long,
|
||||
float: escape_float,
|
||||
str: escape_string,
|
||||
unicode: escape_unicode,
|
||||
tuple: escape_sequence,
|
||||
list:escape_sequence,
|
||||
set:escape_sequence,
|
||||
dict:escape_dict,
|
||||
type(None):escape_None,
|
||||
datetime.date: escape_date,
|
||||
datetime.datetime : escape_datetime,
|
||||
datetime.timedelta : escape_timedelta,
|
||||
datetime.time : escape_time,
|
||||
time.struct_time : escape_struct_time,
|
||||
}
|
||||
|
||||
decoders = {
|
||||
FIELD_TYPE.BIT: convert_bit,
|
||||
FIELD_TYPE.TINY: convert_int,
|
||||
FIELD_TYPE.SHORT: convert_int,
|
||||
FIELD_TYPE.LONG: convert_long,
|
||||
FIELD_TYPE.FLOAT: convert_float,
|
||||
FIELD_TYPE.DOUBLE: convert_float,
|
||||
FIELD_TYPE.DECIMAL: convert_float,
|
||||
FIELD_TYPE.NEWDECIMAL: convert_float,
|
||||
FIELD_TYPE.LONGLONG: convert_long,
|
||||
FIELD_TYPE.INT24: convert_int,
|
||||
FIELD_TYPE.YEAR: convert_int,
|
||||
FIELD_TYPE.TIMESTAMP: convert_mysql_timestamp,
|
||||
FIELD_TYPE.DATETIME: convert_datetime,
|
||||
FIELD_TYPE.TIME: convert_timedelta,
|
||||
FIELD_TYPE.DATE: convert_date,
|
||||
FIELD_TYPE.SET: convert_set,
|
||||
FIELD_TYPE.BLOB: convert_characters,
|
||||
FIELD_TYPE.TINY_BLOB: convert_characters,
|
||||
FIELD_TYPE.MEDIUM_BLOB: convert_characters,
|
||||
FIELD_TYPE.LONG_BLOB: convert_characters,
|
||||
FIELD_TYPE.STRING: convert_characters,
|
||||
FIELD_TYPE.VAR_STRING: convert_characters,
|
||||
FIELD_TYPE.VARCHAR: convert_characters,
|
||||
#FIELD_TYPE.BLOB: str,
|
||||
#FIELD_TYPE.STRING: str,
|
||||
#FIELD_TYPE.VAR_STRING: str,
|
||||
#FIELD_TYPE.VARCHAR: str
|
||||
}
|
||||
conversions = decoders # for MySQLdb compatibility
|
||||
|
||||
try:
|
||||
# python version > 2.3
|
||||
from decimal import Decimal
|
||||
def convert_decimal(connection, field, data):
|
||||
data = data.decode(connection.charset)
|
||||
return Decimal(data)
|
||||
decoders[FIELD_TYPE.DECIMAL] = convert_decimal
|
||||
decoders[FIELD_TYPE.NEWDECIMAL] = convert_decimal
|
||||
|
||||
def escape_decimal(obj):
|
||||
return unicode(obj)
|
||||
encoders[Decimal] = escape_decimal
|
||||
|
||||
except ImportError:
|
||||
pass
|
||||
@ -1,297 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import struct
|
||||
import re
|
||||
|
||||
try:
|
||||
import cStringIO as StringIO
|
||||
except ImportError:
|
||||
import StringIO
|
||||
|
||||
from err import Warning, Error, InterfaceError, DataError, \
|
||||
DatabaseError, OperationalError, IntegrityError, InternalError, \
|
||||
NotSupportedError, ProgrammingError
|
||||
|
||||
insert_values = re.compile(r'\svalues\s*(\(.+\))', re.IGNORECASE)
|
||||
|
||||
class Cursor(object):
|
||||
'''
|
||||
This is the object you use to interact with the database.
|
||||
'''
|
||||
def __init__(self, connection):
|
||||
'''
|
||||
Do not create an instance of a Cursor yourself. Call
|
||||
connections.Connection.cursor().
|
||||
'''
|
||||
from weakref import proxy
|
||||
self.connection = proxy(connection)
|
||||
self.description = None
|
||||
self.rownumber = 0
|
||||
self.rowcount = -1
|
||||
self.arraysize = 1
|
||||
self._executed = None
|
||||
self.messages = []
|
||||
self.errorhandler = connection.errorhandler
|
||||
self._has_next = None
|
||||
self._rows = ()
|
||||
|
||||
def __del__(self):
|
||||
'''
|
||||
When this gets GC'd close it.
|
||||
'''
|
||||
self.close()
|
||||
|
||||
def close(self):
|
||||
'''
|
||||
Closing a cursor just exhausts all remaining data.
|
||||
'''
|
||||
if not self.connection:
|
||||
return
|
||||
try:
|
||||
while self.nextset():
|
||||
pass
|
||||
except:
|
||||
pass
|
||||
|
||||
self.connection = None
|
||||
|
||||
def _get_db(self):
|
||||
if not self.connection:
|
||||
self.errorhandler(self, ProgrammingError, "cursor closed")
|
||||
return self.connection
|
||||
|
||||
def _check_executed(self):
|
||||
if not self._executed:
|
||||
self.errorhandler(self, ProgrammingError, "execute() first")
|
||||
|
||||
def setinputsizes(self, *args):
|
||||
"""Does nothing, required by DB API."""
|
||||
|
||||
def setoutputsizes(self, *args):
|
||||
"""Does nothing, required by DB API."""
|
||||
|
||||
def nextset(self):
|
||||
''' Get the next query set '''
|
||||
if self._executed:
|
||||
self.fetchall()
|
||||
del self.messages[:]
|
||||
|
||||
if not self._has_next:
|
||||
return None
|
||||
connection = self._get_db()
|
||||
connection.next_result()
|
||||
self._do_get_result()
|
||||
return True
|
||||
|
||||
def execute(self, query, args=None):
|
||||
''' Execute a query '''
|
||||
from sys import exc_info
|
||||
|
||||
conn = self._get_db()
|
||||
charset = conn.charset
|
||||
del self.messages[:]
|
||||
|
||||
# TODO: make sure that conn.escape is correct
|
||||
|
||||
if args is not None:
|
||||
if isinstance(args, tuple) or isinstance(args, list):
|
||||
escaped_args = tuple(conn.escape(arg) for arg in args)
|
||||
elif isinstance(args, dict):
|
||||
escaped_args = dict((key, conn.escape(val)) for (key, val) in args.items())
|
||||
else:
|
||||
#If it's not a dictionary let's try escaping it anyways.
|
||||
#Worst case it will throw a Value error
|
||||
escaped_args = conn.escape(args)
|
||||
|
||||
query = query % escaped_args
|
||||
|
||||
if isinstance(query, unicode):
|
||||
query = query.encode(charset)
|
||||
|
||||
result = 0
|
||||
try:
|
||||
result = self._query(query)
|
||||
except:
|
||||
exc, value, tb = exc_info()
|
||||
del tb
|
||||
self.messages.append((exc,value))
|
||||
self.errorhandler(self, exc, value)
|
||||
|
||||
self._executed = query
|
||||
return result
|
||||
|
||||
def executemany(self, query, args):
|
||||
''' Run several data against one query '''
|
||||
del self.messages[:]
|
||||
#conn = self._get_db()
|
||||
if not args:
|
||||
return
|
||||
#charset = conn.charset
|
||||
#if isinstance(query, unicode):
|
||||
# query = query.encode(charset)
|
||||
|
||||
self.rowcount = sum([ self.execute(query, arg) for arg in args ])
|
||||
return self.rowcount
|
||||
|
||||
|
||||
def callproc(self, procname, args=()):
|
||||
"""Execute stored procedure procname with args
|
||||
|
||||
procname -- string, name of procedure to execute on server
|
||||
|
||||
args -- Sequence of parameters to use with procedure
|
||||
|
||||
Returns the original args.
|
||||
|
||||
Compatibility warning: PEP-249 specifies that any modified
|
||||
parameters must be returned. This is currently impossible
|
||||
as they are only available by storing them in a server
|
||||
variable and then retrieved by a query. Since stored
|
||||
procedures return zero or more result sets, there is no
|
||||
reliable way to get at OUT or INOUT parameters via callproc.
|
||||
The server variables are named @_procname_n, where procname
|
||||
is the parameter above and n is the position of the parameter
|
||||
(from zero). Once all result sets generated by the procedure
|
||||
have been fetched, you can issue a SELECT @_procname_0, ...
|
||||
query using .execute() to get any OUT or INOUT values.
|
||||
|
||||
Compatibility warning: The act of calling a stored procedure
|
||||
itself creates an empty result set. This appears after any
|
||||
result sets generated by the procedure. This is non-standard
|
||||
behavior with respect to the DB-API. Be sure to use nextset()
|
||||
to advance through all result sets; otherwise you may get
|
||||
disconnected.
|
||||
"""
|
||||
conn = self._get_db()
|
||||
for index, arg in enumerate(args):
|
||||
q = "SET @_%s_%d=%s" % (procname, index, conn.escape(arg))
|
||||
if isinstance(q, unicode):
|
||||
q = q.encode(conn.charset)
|
||||
self._query(q)
|
||||
self.nextset()
|
||||
|
||||
q = "CALL %s(%s)" % (procname,
|
||||
','.join(['@_%s_%d' % (procname, i)
|
||||
for i in range(len(args))]))
|
||||
if isinstance(q, unicode):
|
||||
q = q.encode(conn.charset)
|
||||
self._query(q)
|
||||
self._executed = q
|
||||
|
||||
return args
|
||||
|
||||
def fetchone(self):
|
||||
''' Fetch the next row '''
|
||||
self._check_executed()
|
||||
if self._rows is None or self.rownumber >= len(self._rows):
|
||||
return None
|
||||
result = self._rows[self.rownumber]
|
||||
self.rownumber += 1
|
||||
return result
|
||||
|
||||
def fetchmany(self, size=None):
|
||||
''' Fetch several rows '''
|
||||
self._check_executed()
|
||||
end = self.rownumber + (size or self.arraysize)
|
||||
result = self._rows[self.rownumber:end]
|
||||
if self._rows is None:
|
||||
return None
|
||||
self.rownumber = min(end, len(self._rows))
|
||||
return result
|
||||
|
||||
def fetchall(self):
|
||||
''' Fetch all the rows '''
|
||||
self._check_executed()
|
||||
if self._rows is None:
|
||||
return None
|
||||
if self.rownumber:
|
||||
result = self._rows[self.rownumber:]
|
||||
else:
|
||||
result = self._rows
|
||||
self.rownumber = len(self._rows)
|
||||
return result
|
||||
|
||||
def scroll(self, value, mode='relative'):
|
||||
self._check_executed()
|
||||
if mode == 'relative':
|
||||
r = self.rownumber + value
|
||||
elif mode == 'absolute':
|
||||
r = value
|
||||
else:
|
||||
self.errorhandler(self, ProgrammingError,
|
||||
"unknown scroll mode %s" % mode)
|
||||
|
||||
if r < 0 or r >= len(self._rows):
|
||||
self.errorhandler(self, IndexError, "out of range")
|
||||
self.rownumber = r
|
||||
|
||||
def _query(self, q):
|
||||
conn = self._get_db()
|
||||
self._last_executed = q
|
||||
conn.query(q)
|
||||
self._do_get_result()
|
||||
return self.rowcount
|
||||
|
||||
def _do_get_result(self):
|
||||
conn = self._get_db()
|
||||
self.rowcount = conn._result.affected_rows
|
||||
|
||||
self.rownumber = 0
|
||||
self.description = conn._result.description
|
||||
self.lastrowid = conn._result.insert_id
|
||||
self._rows = conn._result.rows
|
||||
self._has_next = conn._result.has_next
|
||||
|
||||
def __iter__(self):
|
||||
return iter(self.fetchone, None)
|
||||
|
||||
Warning = Warning
|
||||
Error = Error
|
||||
InterfaceError = InterfaceError
|
||||
DatabaseError = DatabaseError
|
||||
DataError = DataError
|
||||
OperationalError = OperationalError
|
||||
IntegrityError = IntegrityError
|
||||
InternalError = InternalError
|
||||
ProgrammingError = ProgrammingError
|
||||
NotSupportedError = NotSupportedError
|
||||
|
||||
class DictCursor(Cursor):
|
||||
"""A cursor which returns results as a dictionary"""
|
||||
|
||||
def execute(self, query, args=None):
|
||||
result = super(DictCursor, self).execute(query, args)
|
||||
if self.description:
|
||||
self._fields = [ field[0] for field in self.description ]
|
||||
return result
|
||||
|
||||
def fetchone(self):
|
||||
''' Fetch the next row '''
|
||||
self._check_executed()
|
||||
if self._rows is None or self.rownumber >= len(self._rows):
|
||||
return None
|
||||
result = dict(zip(self._fields, self._rows[self.rownumber]))
|
||||
self.rownumber += 1
|
||||
return result
|
||||
|
||||
def fetchmany(self, size=None):
|
||||
''' Fetch several rows '''
|
||||
self._check_executed()
|
||||
if self._rows is None:
|
||||
return None
|
||||
end = self.rownumber + (size or self.arraysize)
|
||||
result = [ dict(zip(self._fields, r)) for r in self._rows[self.rownumber:end] ]
|
||||
self.rownumber = min(end, len(self._rows))
|
||||
return tuple(result)
|
||||
|
||||
def fetchall(self):
|
||||
''' Fetch all the rows '''
|
||||
self._check_executed()
|
||||
if self._rows is None:
|
||||
return None
|
||||
if self.rownumber:
|
||||
result = [ dict(zip(self._fields, r)) for r in self._rows[self.rownumber:] ]
|
||||
else:
|
||||
result = [ dict(zip(self._fields, r)) for r in self._rows ]
|
||||
self.rownumber = len(self._rows)
|
||||
return tuple(result)
|
||||
|
||||
@ -1,147 +0,0 @@
|
||||
import struct
|
||||
|
||||
|
||||
try:
|
||||
StandardError, Warning
|
||||
except ImportError:
|
||||
try:
|
||||
from exceptions import StandardError, Warning
|
||||
except ImportError:
|
||||
import sys
|
||||
e = sys.modules['exceptions']
|
||||
StandardError = e.StandardError
|
||||
Warning = e.Warning
|
||||
|
||||
from constants import ER
|
||||
import sys
|
||||
|
||||
class MySQLError(StandardError):
|
||||
|
||||
"""Exception related to operation with MySQL."""
|
||||
|
||||
|
||||
class Warning(Warning, MySQLError):
|
||||
|
||||
"""Exception raised for important warnings like data truncations
|
||||
while inserting, etc."""
|
||||
|
||||
class Error(MySQLError):
|
||||
|
||||
"""Exception that is the base class of all other error exceptions
|
||||
(not Warning)."""
|
||||
|
||||
|
||||
class InterfaceError(Error):
|
||||
|
||||
"""Exception raised for errors that are related to the database
|
||||
interface rather than the database itself."""
|
||||
|
||||
|
||||
class DatabaseError(Error):
|
||||
|
||||
"""Exception raised for errors that are related to the
|
||||
database."""
|
||||
|
||||
|
||||
class DataError(DatabaseError):
|
||||
|
||||
"""Exception raised for errors that are due to problems with the
|
||||
processed data like division by zero, numeric value out of range,
|
||||
etc."""
|
||||
|
||||
|
||||
class OperationalError(DatabaseError):
|
||||
|
||||
"""Exception raised for errors that are related to the database's
|
||||
operation and not necessarily under the control of the programmer,
|
||||
e.g. an unexpected disconnect occurs, the data source name is not
|
||||
found, a transaction could not be processed, a memory allocation
|
||||
error occurred during processing, etc."""
|
||||
|
||||
|
||||
class IntegrityError(DatabaseError):
|
||||
|
||||
"""Exception raised when the relational integrity of the database
|
||||
is affected, e.g. a foreign key check fails, duplicate key,
|
||||
etc."""
|
||||
|
||||
|
||||
class InternalError(DatabaseError):
|
||||
|
||||
"""Exception raised when the database encounters an internal
|
||||
error, e.g. the cursor is not valid anymore, the transaction is
|
||||
out of sync, etc."""
|
||||
|
||||
|
||||
class ProgrammingError(DatabaseError):
|
||||
|
||||
"""Exception raised for programming errors, e.g. table not found
|
||||
or already exists, syntax error in the SQL statement, wrong number
|
||||
of parameters specified, etc."""
|
||||
|
||||
|
||||
class NotSupportedError(DatabaseError):
|
||||
|
||||
"""Exception raised in case a method or database API was used
|
||||
which is not supported by the database, e.g. requesting a
|
||||
.rollback() on a connection that does not support transaction or
|
||||
has transactions turned off."""
|
||||
|
||||
|
||||
error_map = {}
|
||||
|
||||
def _map_error(exc, *errors):
|
||||
for error in errors:
|
||||
error_map[error] = exc
|
||||
|
||||
_map_error(ProgrammingError, ER.DB_CREATE_EXISTS, ER.SYNTAX_ERROR,
|
||||
ER.PARSE_ERROR, ER.NO_SUCH_TABLE, ER.WRONG_DB_NAME,
|
||||
ER.WRONG_TABLE_NAME, ER.FIELD_SPECIFIED_TWICE,
|
||||
ER.INVALID_GROUP_FUNC_USE, ER.UNSUPPORTED_EXTENSION,
|
||||
ER.TABLE_MUST_HAVE_COLUMNS, ER.CANT_DO_THIS_DURING_AN_TRANSACTION)
|
||||
_map_error(DataError, ER.WARN_DATA_TRUNCATED, ER.WARN_NULL_TO_NOTNULL,
|
||||
ER.WARN_DATA_OUT_OF_RANGE, ER.NO_DEFAULT, ER.PRIMARY_CANT_HAVE_NULL,
|
||||
ER.DATA_TOO_LONG, ER.DATETIME_FUNCTION_OVERFLOW)
|
||||
_map_error(IntegrityError, ER.DUP_ENTRY, ER.NO_REFERENCED_ROW,
|
||||
ER.NO_REFERENCED_ROW_2, ER.ROW_IS_REFERENCED, ER.ROW_IS_REFERENCED_2,
|
||||
ER.CANNOT_ADD_FOREIGN)
|
||||
_map_error(NotSupportedError, ER.WARNING_NOT_COMPLETE_ROLLBACK,
|
||||
ER.NOT_SUPPORTED_YET, ER.FEATURE_DISABLED, ER.UNKNOWN_STORAGE_ENGINE)
|
||||
_map_error(OperationalError, ER.DBACCESS_DENIED_ERROR, ER.ACCESS_DENIED_ERROR,
|
||||
ER.TABLEACCESS_DENIED_ERROR, ER.COLUMNACCESS_DENIED_ERROR)
|
||||
|
||||
del _map_error, ER
|
||||
|
||||
|
||||
def _get_error_info(data):
|
||||
errno = struct.unpack('<h', data[1:3])[0]
|
||||
if sys.version_info[0] == 3:
|
||||
is_41 = data[3] == ord("#")
|
||||
else:
|
||||
is_41 = data[3] == "#"
|
||||
if is_41:
|
||||
# version 4.1
|
||||
sqlstate = data[4:9].decode("utf8")
|
||||
errorvalue = data[9:].decode("utf8")
|
||||
return (errno, sqlstate, errorvalue)
|
||||
else:
|
||||
# version 4.0
|
||||
return (errno, None, data[3:].decode("utf8"))
|
||||
|
||||
def _check_mysql_exception(errinfo):
|
||||
errno, sqlstate, errorvalue = errinfo
|
||||
errorclass = error_map.get(errno, None)
|
||||
if errorclass:
|
||||
raise errorclass, (errno,errorvalue)
|
||||
|
||||
# couldn't find the right error number
|
||||
raise InternalError, (errno, errorvalue)
|
||||
|
||||
def raise_mysql_exception(data):
|
||||
errinfo = _get_error_info(data)
|
||||
_check_mysql_exception(errinfo)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
from pymysql.tests.test_issues import *
|
||||
from pymysql.tests.test_example import *
|
||||
from pymysql.tests.test_basic import *
|
||||
from pymysql.tests.test_DictCursor import *
|
||||
|
||||
import sys
|
||||
if sys.version_info[0] == 2:
|
||||
# MySQLdb tests were designed for Python 3
|
||||
from pymysql.tests.thirdparty import *
|
||||
|
||||
if __name__ == "__main__":
|
||||
import unittest
|
||||
unittest.main()
|
||||
@ -1,20 +0,0 @@
|
||||
import pymysql
|
||||
import unittest
|
||||
|
||||
class PyMySQLTestCase(unittest.TestCase):
|
||||
# Edit this to suit your test environment.
|
||||
databases = [
|
||||
{"host":"localhost","user":"root",
|
||||
"passwd":"","db":"test_pymysql", "use_unicode": True},
|
||||
{"host":"localhost","user":"root","passwd":"","db":"test_pymysql2"}]
|
||||
|
||||
def setUp(self):
|
||||
self.connections = []
|
||||
|
||||
for params in self.databases:
|
||||
self.connections.append(pymysql.connect(**params))
|
||||
|
||||
def tearDown(self):
|
||||
for connection in self.connections:
|
||||
connection.close()
|
||||
|
||||
@ -1,56 +0,0 @@
|
||||
from pymysql.tests import base
|
||||
import pymysql.cursors
|
||||
|
||||
import datetime
|
||||
|
||||
class TestDictCursor(base.PyMySQLTestCase):
|
||||
|
||||
def test_DictCursor(self):
|
||||
#all assert test compare to the structure as would come out from MySQLdb
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor(pymysql.cursors.DictCursor)
|
||||
# create a table ane some data to query
|
||||
c.execute("""CREATE TABLE dictcursor (name char(20), age int , DOB datetime)""")
|
||||
data = (("bob",21,"1990-02-06 23:04:56"),
|
||||
("jim",56,"1955-05-09 13:12:45"),
|
||||
("fred",100,"1911-09-12 01:01:01"))
|
||||
bob = {'name':'bob','age':21,'DOB':datetime.datetime(1990, 02, 6, 23, 04, 56)}
|
||||
jim = {'name':'jim','age':56,'DOB':datetime.datetime(1955, 05, 9, 13, 12, 45)}
|
||||
fred = {'name':'fred','age':100,'DOB':datetime.datetime(1911, 9, 12, 1, 1, 1)}
|
||||
try:
|
||||
c.executemany("insert into dictcursor values (%s,%s,%s)", data)
|
||||
# try an update which should return no rows
|
||||
c.execute("update dictcursor set age=20 where name='bob'")
|
||||
bob['age'] = 20
|
||||
# pull back the single row dict for bob and check
|
||||
c.execute("SELECT * from dictcursor where name='bob'")
|
||||
r = c.fetchone()
|
||||
self.assertEqual(bob,r,"fetchone via DictCursor failed")
|
||||
# same again, but via fetchall => tuple)
|
||||
c.execute("SELECT * from dictcursor where name='bob'")
|
||||
r = c.fetchall()
|
||||
self.assertEqual((bob,),r,"fetch a 1 row result via fetchall failed via DictCursor")
|
||||
# same test again but iterate over the
|
||||
c.execute("SELECT * from dictcursor where name='bob'")
|
||||
for r in c:
|
||||
self.assertEqual(bob, r,"fetch a 1 row result via iteration failed via DictCursor")
|
||||
# get all 3 row via fetchall
|
||||
c.execute("SELECT * from dictcursor")
|
||||
r = c.fetchall()
|
||||
self.assertEqual((bob,jim,fred), r, "fetchall failed via DictCursor")
|
||||
#same test again but do a list comprehension
|
||||
c.execute("SELECT * from dictcursor")
|
||||
r = [x for x in c]
|
||||
self.assertEqual([bob,jim,fred], r, "list comprehension failed via DictCursor")
|
||||
# get all 2 row via fetchmany
|
||||
c.execute("SELECT * from dictcursor")
|
||||
r = c.fetchmany(2)
|
||||
self.assertEqual((bob,jim), r, "fetchmany failed via DictCursor")
|
||||
finally:
|
||||
c.execute("drop table dictcursor")
|
||||
|
||||
__all__ = ["TestDictCursor"]
|
||||
|
||||
if __name__ == "__main__":
|
||||
import unittest
|
||||
unittest.main()
|
||||
@ -1,193 +0,0 @@
|
||||
from pymysql.tests import base
|
||||
from pymysql import util
|
||||
|
||||
import time
|
||||
import datetime
|
||||
|
||||
class TestConversion(base.PyMySQLTestCase):
|
||||
def test_datatypes(self):
|
||||
""" test every data type """
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
c.execute("create table test_datatypes (b bit, i int, l bigint, f real, s varchar(32), u varchar(32), bb blob, d date, dt datetime, ts timestamp, td time, t time, st datetime)")
|
||||
try:
|
||||
# insert values
|
||||
v = (True, -3, 123456789012, 5.7, "hello'\" world", u"Espa\xc3\xb1ol", "binary\x00data".encode(conn.charset), datetime.date(1988,2,2), datetime.datetime.now(), datetime.timedelta(5,6), datetime.time(16,32), time.localtime())
|
||||
c.execute("insert into test_datatypes (b,i,l,f,s,u,bb,d,dt,td,t,st) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", v)
|
||||
c.execute("select b,i,l,f,s,u,bb,d,dt,td,t,st from test_datatypes")
|
||||
r = c.fetchone()
|
||||
self.assertEqual(util.int2byte(1), r[0])
|
||||
self.assertEqual(v[1:8], r[1:8])
|
||||
# mysql throws away microseconds so we need to check datetimes
|
||||
# specially. additionally times are turned into timedeltas.
|
||||
self.assertEqual(datetime.datetime(*v[8].timetuple()[:6]), r[8])
|
||||
self.assertEqual(v[9], r[9]) # just timedeltas
|
||||
self.assertEqual(datetime.timedelta(0, 60 * (v[10].hour * 60 + v[10].minute)), r[10])
|
||||
self.assertEqual(datetime.datetime(*v[-1][:6]), r[-1])
|
||||
|
||||
c.execute("delete from test_datatypes")
|
||||
|
||||
# check nulls
|
||||
c.execute("insert into test_datatypes (b,i,l,f,s,u,bb,d,dt,td,t,st) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", [None] * 12)
|
||||
c.execute("select b,i,l,f,s,u,bb,d,dt,td,t,st from test_datatypes")
|
||||
r = c.fetchone()
|
||||
self.assertEqual(tuple([None] * 12), r)
|
||||
|
||||
c.execute("delete from test_datatypes")
|
||||
|
||||
# check sequence type
|
||||
c.execute("insert into test_datatypes (i, l) values (2,4), (6,8), (10,12)")
|
||||
c.execute("select l from test_datatypes where i in %s order by i", ((2,6),))
|
||||
r = c.fetchall()
|
||||
self.assertEqual(((4,),(8,)), r)
|
||||
finally:
|
||||
c.execute("drop table test_datatypes")
|
||||
|
||||
def test_dict(self):
|
||||
""" test dict escaping """
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
c.execute("create table test_dict (a integer, b integer, c integer)")
|
||||
try:
|
||||
c.execute("insert into test_dict (a,b,c) values (%(a)s, %(b)s, %(c)s)", {"a":1,"b":2,"c":3})
|
||||
c.execute("select a,b,c from test_dict")
|
||||
self.assertEqual((1,2,3), c.fetchone())
|
||||
finally:
|
||||
c.execute("drop table test_dict")
|
||||
|
||||
def test_string(self):
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
c.execute("create table test_dict (a text)")
|
||||
test_value = "I am a test string"
|
||||
try:
|
||||
c.execute("insert into test_dict (a) values (%s)", test_value)
|
||||
c.execute("select a from test_dict")
|
||||
self.assertEqual((test_value,), c.fetchone())
|
||||
finally:
|
||||
c.execute("drop table test_dict")
|
||||
|
||||
def test_integer(self):
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
c.execute("create table test_dict (a integer)")
|
||||
test_value = 12345
|
||||
try:
|
||||
c.execute("insert into test_dict (a) values (%s)", test_value)
|
||||
c.execute("select a from test_dict")
|
||||
self.assertEqual((test_value,), c.fetchone())
|
||||
finally:
|
||||
c.execute("drop table test_dict")
|
||||
|
||||
|
||||
def test_big_blob(self):
|
||||
""" test tons of data """
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
c.execute("create table test_big_blob (b blob)")
|
||||
try:
|
||||
data = "pymysql" * 1024
|
||||
c.execute("insert into test_big_blob (b) values (%s)", (data,))
|
||||
c.execute("select b from test_big_blob")
|
||||
self.assertEqual(data.encode(conn.charset), c.fetchone()[0])
|
||||
finally:
|
||||
c.execute("drop table test_big_blob")
|
||||
|
||||
class TestCursor(base.PyMySQLTestCase):
|
||||
# this test case does not work quite right yet, however,
|
||||
# we substitute in None for the erroneous field which is
|
||||
# compatible with the DB-API 2.0 spec and has not broken
|
||||
# any unit tests for anything we've tried.
|
||||
|
||||
#def test_description(self):
|
||||
# """ test description attribute """
|
||||
# # result is from MySQLdb module
|
||||
# r = (('Host', 254, 11, 60, 60, 0, 0),
|
||||
# ('User', 254, 16, 16, 16, 0, 0),
|
||||
# ('Password', 254, 41, 41, 41, 0, 0),
|
||||
# ('Select_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Insert_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Update_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Delete_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Create_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Drop_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Reload_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Shutdown_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Process_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('File_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Grant_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('References_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Index_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Alter_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Show_db_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Super_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Create_tmp_table_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Lock_tables_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Execute_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Repl_slave_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Repl_client_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Create_view_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Show_view_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Create_routine_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Alter_routine_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Create_user_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Event_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('Trigger_priv', 254, 1, 1, 1, 0, 0),
|
||||
# ('ssl_type', 254, 0, 9, 9, 0, 0),
|
||||
# ('ssl_cipher', 252, 0, 65535, 65535, 0, 0),
|
||||
# ('x509_issuer', 252, 0, 65535, 65535, 0, 0),
|
||||
# ('x509_subject', 252, 0, 65535, 65535, 0, 0),
|
||||
# ('max_questions', 3, 1, 11, 11, 0, 0),
|
||||
# ('max_updates', 3, 1, 11, 11, 0, 0),
|
||||
# ('max_connections', 3, 1, 11, 11, 0, 0),
|
||||
# ('max_user_connections', 3, 1, 11, 11, 0, 0))
|
||||
# conn = self.connections[0]
|
||||
# c = conn.cursor()
|
||||
# c.execute("select * from mysql.user")
|
||||
#
|
||||
# self.assertEqual(r, c.description)
|
||||
|
||||
def test_fetch_no_result(self):
|
||||
""" test a fetchone() with no rows """
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
c.execute("create table test_nr (b varchar(32))")
|
||||
try:
|
||||
data = "pymysql"
|
||||
c.execute("insert into test_nr (b) values (%s)", (data,))
|
||||
self.assertEqual(None, c.fetchone())
|
||||
finally:
|
||||
c.execute("drop table test_nr")
|
||||
|
||||
def test_aggregates(self):
|
||||
""" test aggregate functions """
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
try:
|
||||
c.execute('create table test_aggregates (i integer)')
|
||||
for i in xrange(0, 10):
|
||||
c.execute('insert into test_aggregates (i) values (%s)', (i,))
|
||||
c.execute('select sum(i) from test_aggregates')
|
||||
r, = c.fetchone()
|
||||
self.assertEqual(sum(range(0,10)), r)
|
||||
finally:
|
||||
c.execute('drop table test_aggregates')
|
||||
|
||||
def test_single_tuple(self):
|
||||
""" test a single tuple """
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
try:
|
||||
c.execute("create table mystuff (id integer primary key)")
|
||||
c.execute("insert into mystuff (id) values (1)")
|
||||
c.execute("insert into mystuff (id) values (2)")
|
||||
c.execute("select id from mystuff where id in %s", ((1,),))
|
||||
self.assertEqual([(1,)], list(c.fetchall()))
|
||||
finally:
|
||||
c.execute("drop table mystuff")
|
||||
|
||||
__all__ = ["TestConversion","TestCursor"]
|
||||
|
||||
if __name__ == "__main__":
|
||||
import unittest
|
||||
unittest.main()
|
||||
@ -1,32 +0,0 @@
|
||||
import pymysql
|
||||
from pymysql.tests import base
|
||||
|
||||
class TestExample(base.PyMySQLTestCase):
|
||||
def test_example(self):
|
||||
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='mysql')
|
||||
|
||||
|
||||
cur = conn.cursor()
|
||||
|
||||
cur.execute("SELECT Host,User FROM user")
|
||||
|
||||
# print cur.description
|
||||
|
||||
# r = cur.fetchall()
|
||||
# print r
|
||||
# ...or...
|
||||
u = False
|
||||
|
||||
for r in cur.fetchall():
|
||||
u = u or conn.user in r
|
||||
|
||||
self.assertTrue(u)
|
||||
|
||||
cur.close()
|
||||
conn.close()
|
||||
|
||||
__all__ = ["TestExample"]
|
||||
|
||||
if __name__ == "__main__":
|
||||
import unittest
|
||||
unittest.main()
|
||||
@ -1,268 +0,0 @@
|
||||
import pymysql
|
||||
from pymysql.tests import base
|
||||
|
||||
import sys
|
||||
|
||||
try:
|
||||
import imp
|
||||
reload = imp.reload
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
import datetime
|
||||
|
||||
class TestOldIssues(base.PyMySQLTestCase):
|
||||
def test_issue_3(self):
|
||||
""" undefined methods datetime_or_None, date_or_None """
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
c.execute("create table issue3 (d date, t time, dt datetime, ts timestamp)")
|
||||
try:
|
||||
c.execute("insert into issue3 (d, t, dt, ts) values (%s,%s,%s,%s)", (None, None, None, None))
|
||||
c.execute("select d from issue3")
|
||||
self.assertEqual(None, c.fetchone()[0])
|
||||
c.execute("select t from issue3")
|
||||
self.assertEqual(None, c.fetchone()[0])
|
||||
c.execute("select dt from issue3")
|
||||
self.assertEqual(None, c.fetchone()[0])
|
||||
c.execute("select ts from issue3")
|
||||
self.assertTrue(isinstance(c.fetchone()[0], datetime.datetime))
|
||||
finally:
|
||||
c.execute("drop table issue3")
|
||||
|
||||
def test_issue_4(self):
|
||||
""" can't retrieve TIMESTAMP fields """
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
c.execute("create table issue4 (ts timestamp)")
|
||||
try:
|
||||
c.execute("insert into issue4 (ts) values (now())")
|
||||
c.execute("select ts from issue4")
|
||||
self.assertTrue(isinstance(c.fetchone()[0], datetime.datetime))
|
||||
finally:
|
||||
c.execute("drop table issue4")
|
||||
|
||||
def test_issue_5(self):
|
||||
""" query on information_schema.tables fails """
|
||||
con = self.connections[0]
|
||||
cur = con.cursor()
|
||||
cur.execute("select * from information_schema.tables")
|
||||
|
||||
def test_issue_6(self):
|
||||
""" exception: TypeError: ord() expected a character, but string of length 0 found """
|
||||
conn = pymysql.connect(host="localhost",user="root",passwd="",db="mysql")
|
||||
c = conn.cursor()
|
||||
c.execute("select * from user")
|
||||
conn.close()
|
||||
|
||||
def test_issue_8(self):
|
||||
""" Primary Key and Index error when selecting data """
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
c.execute("""CREATE TABLE `test` (`station` int(10) NOT NULL DEFAULT '0', `dh`
|
||||
datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `echeance` int(1) NOT NULL
|
||||
DEFAULT '0', `me` double DEFAULT NULL, `mo` double DEFAULT NULL, PRIMARY
|
||||
KEY (`station`,`dh`,`echeance`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;""")
|
||||
try:
|
||||
self.assertEqual(0, c.execute("SELECT * FROM test"))
|
||||
c.execute("ALTER TABLE `test` ADD INDEX `idx_station` (`station`)")
|
||||
self.assertEqual(0, c.execute("SELECT * FROM test"))
|
||||
finally:
|
||||
c.execute("drop table test")
|
||||
|
||||
def test_issue_9(self):
|
||||
""" sets DeprecationWarning in Python 2.6 """
|
||||
try:
|
||||
reload(pymysql)
|
||||
except DeprecationWarning:
|
||||
self.fail()
|
||||
|
||||
def test_issue_10(self):
|
||||
""" Allocate a variable to return when the exception handler is permissive """
|
||||
conn = self.connections[0]
|
||||
conn.errorhandler = lambda cursor, errorclass, errorvalue: None
|
||||
cur = conn.cursor()
|
||||
cur.execute( "create table t( n int )" )
|
||||
cur.execute( "create table t( n int )" )
|
||||
|
||||
def test_issue_13(self):
|
||||
""" can't handle large result fields """
|
||||
conn = self.connections[0]
|
||||
cur = conn.cursor()
|
||||
try:
|
||||
cur.execute("create table issue13 (t text)")
|
||||
# ticket says 18k
|
||||
size = 18*1024
|
||||
cur.execute("insert into issue13 (t) values (%s)", ("x" * size,))
|
||||
cur.execute("select t from issue13")
|
||||
# use assert_ so that obscenely huge error messages don't print
|
||||
r = cur.fetchone()[0]
|
||||
self.assert_("x" * size == r)
|
||||
finally:
|
||||
cur.execute("drop table issue13")
|
||||
|
||||
def test_issue_14(self):
|
||||
""" typo in converters.py """
|
||||
self.assertEqual('1', pymysql.converters.escape_item(1, "utf8"))
|
||||
self.assertEqual('1', pymysql.converters.escape_item(1L, "utf8"))
|
||||
|
||||
self.assertEqual('1', pymysql.converters.escape_object(1))
|
||||
self.assertEqual('1', pymysql.converters.escape_object(1L))
|
||||
|
||||
def test_issue_15(self):
|
||||
""" query should be expanded before perform character encoding """
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
c.execute("create table issue15 (t varchar(32))")
|
||||
try:
|
||||
c.execute("insert into issue15 (t) values (%s)", (u'\xe4\xf6\xfc',))
|
||||
c.execute("select t from issue15")
|
||||
self.assertEqual(u'\xe4\xf6\xfc', c.fetchone()[0])
|
||||
finally:
|
||||
c.execute("drop table issue15")
|
||||
|
||||
def test_issue_16(self):
|
||||
""" Patch for string and tuple escaping """
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
c.execute("create table issue16 (name varchar(32) primary key, email varchar(32))")
|
||||
try:
|
||||
c.execute("insert into issue16 (name, email) values ('pete', 'floydophone')")
|
||||
c.execute("select email from issue16 where name=%s", ("pete",))
|
||||
self.assertEqual("floydophone", c.fetchone()[0])
|
||||
finally:
|
||||
c.execute("drop table issue16")
|
||||
|
||||
def test_issue_17(self):
|
||||
""" could not connect mysql use passwod """
|
||||
conn = self.connections[0]
|
||||
host = self.databases[0]["host"]
|
||||
db = self.databases[0]["db"]
|
||||
c = conn.cursor()
|
||||
# grant access to a table to a user with a password
|
||||
try:
|
||||
c.execute("create table issue17 (x varchar(32) primary key)")
|
||||
c.execute("insert into issue17 (x) values ('hello, world!')")
|
||||
c.execute("grant all privileges on %s.issue17 to 'issue17user'@'%%' identified by '1234'" % db)
|
||||
conn.commit()
|
||||
|
||||
conn2 = pymysql.connect(host=host, user="issue17user", passwd="1234", db=db)
|
||||
c2 = conn2.cursor()
|
||||
c2.execute("select x from issue17")
|
||||
self.assertEqual("hello, world!", c2.fetchone()[0])
|
||||
finally:
|
||||
c.execute("drop table issue17")
|
||||
|
||||
def _uni(s, e):
|
||||
# hack for py3
|
||||
if sys.version_info[0] > 2:
|
||||
return unicode(bytes(s, sys.getdefaultencoding()), e)
|
||||
else:
|
||||
return unicode(s, e)
|
||||
|
||||
class TestNewIssues(base.PyMySQLTestCase):
|
||||
def test_issue_34(self):
|
||||
try:
|
||||
pymysql.connect(host="localhost", port=1237, user="root")
|
||||
self.fail()
|
||||
except pymysql.OperationalError, e:
|
||||
self.assertEqual(2003, e.args[0])
|
||||
except:
|
||||
self.fail()
|
||||
|
||||
def test_issue_33(self):
|
||||
conn = pymysql.connect(host="localhost", user="root", db=self.databases[0]["db"], charset="utf8")
|
||||
c = conn.cursor()
|
||||
try:
|
||||
c.execute(_uni("create table hei\xc3\x9fe (name varchar(32))", "utf8"))
|
||||
c.execute(_uni("insert into hei\xc3\x9fe (name) values ('Pi\xc3\xb1ata')", "utf8"))
|
||||
c.execute(_uni("select name from hei\xc3\x9fe", "utf8"))
|
||||
self.assertEqual(_uni("Pi\xc3\xb1ata","utf8"), c.fetchone()[0])
|
||||
finally:
|
||||
c.execute(_uni("drop table hei\xc3\x9fe", "utf8"))
|
||||
|
||||
# Will fail without manual intervention:
|
||||
#def test_issue_35(self):
|
||||
#
|
||||
# conn = self.connections[0]
|
||||
# c = conn.cursor()
|
||||
# print "sudo killall -9 mysqld within the next 10 seconds"
|
||||
# try:
|
||||
# c.execute("select sleep(10)")
|
||||
# self.fail()
|
||||
# except pymysql.OperationalError, e:
|
||||
# self.assertEqual(2013, e.args[0])
|
||||
|
||||
def test_issue_36(self):
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
# kill connections[0]
|
||||
original_count = c.execute("show processlist")
|
||||
kill_id = None
|
||||
for id,user,host,db,command,time,state,info in c.fetchall():
|
||||
if info == "show processlist":
|
||||
kill_id = id
|
||||
break
|
||||
# now nuke the connection
|
||||
conn.kill(kill_id)
|
||||
# make sure this connection has broken
|
||||
try:
|
||||
c.execute("show tables")
|
||||
self.fail()
|
||||
except:
|
||||
pass
|
||||
# check the process list from the other connection
|
||||
self.assertEqual(original_count - 1, self.connections[1].cursor().execute("show processlist"))
|
||||
del self.connections[0]
|
||||
|
||||
def test_issue_37(self):
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
self.assertEqual(1, c.execute("SELECT @foo"))
|
||||
self.assertEqual((None,), c.fetchone())
|
||||
self.assertEqual(0, c.execute("SET @foo = 'bar'"))
|
||||
c.execute("set @foo = 'bar'")
|
||||
|
||||
def test_issue_38(self):
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
datum = "a" * 1024 * 1023 # reduced size for most default mysql installs
|
||||
|
||||
try:
|
||||
c.execute("create table issue38 (id integer, data mediumblob)")
|
||||
c.execute("insert into issue38 values (1, %s)", (datum,))
|
||||
finally:
|
||||
c.execute("drop table issue38")
|
||||
|
||||
def disabled_test_issue_54(self):
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
big_sql = "select * from issue54 where "
|
||||
big_sql += " and ".join("%d=%d" % (i,i) for i in xrange(0, 100000))
|
||||
|
||||
try:
|
||||
c.execute("create table issue54 (id integer primary key)")
|
||||
c.execute("insert into issue54 (id) values (7)")
|
||||
c.execute(big_sql)
|
||||
self.assertEquals(7, c.fetchone()[0])
|
||||
finally:
|
||||
c.execute("drop table issue54")
|
||||
|
||||
class TestGitHubIssues(base.PyMySQLTestCase):
|
||||
def test_issue_66(self):
|
||||
conn = self.connections[0]
|
||||
c = conn.cursor()
|
||||
self.assertEquals(0, conn.insert_id())
|
||||
try:
|
||||
c.execute("create table issue66 (id integer primary key auto_increment, x integer)")
|
||||
c.execute("insert into issue66 (x) values (1)")
|
||||
c.execute("insert into issue66 (x) values (1)")
|
||||
self.assertEquals(2, conn.insert_id())
|
||||
finally:
|
||||
c.execute("drop table issue66")
|
||||
|
||||
__all__ = ["TestOldIssues", "TestNewIssues", "TestGitHubIssues"]
|
||||
|
||||
if __name__ == "__main__":
|
||||
import unittest
|
||||
unittest.main()
|
||||
@ -1,5 +0,0 @@
|
||||
from test_MySQLdb import *
|
||||
|
||||
if __name__ == "__main__":
|
||||
import unittest
|
||||
unittest.main()
|
||||
@ -1,7 +0,0 @@
|
||||
from test_MySQLdb_capabilities import test_MySQLdb as test_capabilities
|
||||
from test_MySQLdb_nonstandard import *
|
||||
from test_MySQLdb_dbapi20 import test_MySQLdb as test_dbapi2
|
||||
|
||||
if __name__ == "__main__":
|
||||
import unittest
|
||||
unittest.main()
|
||||
@ -1,292 +0,0 @@
|
||||
#!/usr/bin/env python -O
|
||||
""" Script to test database capabilities and the DB-API interface
|
||||
for functionality and memory leaks.
|
||||
|
||||
Adapted from a script by M-A Lemburg.
|
||||
|
||||
"""
|
||||
from time import time
|
||||
import array
|
||||
import unittest
|
||||
|
||||
|
||||
class DatabaseTest(unittest.TestCase):
|
||||
|
||||
db_module = None
|
||||
connect_args = ()
|
||||
connect_kwargs = dict(use_unicode=True, charset="utf8")
|
||||
create_table_extra = "ENGINE=INNODB CHARACTER SET UTF8"
|
||||
rows = 10
|
||||
debug = False
|
||||
|
||||
def setUp(self):
|
||||
import gc
|
||||
db = self.db_module.connect(*self.connect_args, **self.connect_kwargs)
|
||||
self.connection = db
|
||||
self.cursor = db.cursor()
|
||||
self.BLOBText = ''.join([chr(i) for i in range(256)] * 100);
|
||||
self.BLOBUText = u''.join([unichr(i) for i in range(16834)])
|
||||
self.BLOBBinary = self.db_module.Binary(''.join([chr(i) for i in range(256)] * 16))
|
||||
|
||||
leak_test = True
|
||||
|
||||
def tearDown(self):
|
||||
if self.leak_test:
|
||||
import gc
|
||||
del self.cursor
|
||||
orphans = gc.collect()
|
||||
self.assertFalse(orphans, "%d orphaned objects found after deleting cursor" % orphans)
|
||||
|
||||
del self.connection
|
||||
orphans = gc.collect()
|
||||
self.assertFalse(orphans, "%d orphaned objects found after deleting connection" % orphans)
|
||||
|
||||
def table_exists(self, name):
|
||||
try:
|
||||
self.cursor.execute('select * from %s where 1=0' % name)
|
||||
except:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
def quote_identifier(self, ident):
|
||||
return '"%s"' % ident
|
||||
|
||||
def new_table_name(self):
|
||||
i = id(self.cursor)
|
||||
while True:
|
||||
name = self.quote_identifier('tb%08x' % i)
|
||||
if not self.table_exists(name):
|
||||
return name
|
||||
i = i + 1
|
||||
|
||||
def create_table(self, columndefs):
|
||||
|
||||
""" Create a table using a list of column definitions given in
|
||||
columndefs.
|
||||
|
||||
generator must be a function taking arguments (row_number,
|
||||
col_number) returning a suitable data object for insertion
|
||||
into the table.
|
||||
|
||||
"""
|
||||
self.table = self.new_table_name()
|
||||
self.cursor.execute('CREATE TABLE %s (%s) %s' %
|
||||
(self.table,
|
||||
',\n'.join(columndefs),
|
||||
self.create_table_extra))
|
||||
|
||||
def check_data_integrity(self, columndefs, generator):
|
||||
# insert
|
||||
self.create_table(columndefs)
|
||||
insert_statement = ('INSERT INTO %s VALUES (%s)' %
|
||||
(self.table,
|
||||
','.join(['%s'] * len(columndefs))))
|
||||
data = [ [ generator(i,j) for j in range(len(columndefs)) ]
|
||||
for i in range(self.rows) ]
|
||||
if self.debug:
|
||||
print data
|
||||
self.cursor.executemany(insert_statement, data)
|
||||
self.connection.commit()
|
||||
# verify
|
||||
self.cursor.execute('select * from %s' % self.table)
|
||||
l = self.cursor.fetchall()
|
||||
if self.debug:
|
||||
print l
|
||||
self.assertEquals(len(l), self.rows)
|
||||
try:
|
||||
for i in range(self.rows):
|
||||
for j in range(len(columndefs)):
|
||||
self.assertEquals(l[i][j], generator(i,j))
|
||||
finally:
|
||||
if not self.debug:
|
||||
self.cursor.execute('drop table %s' % (self.table))
|
||||
|
||||
def test_transactions(self):
|
||||
columndefs = ( 'col1 INT', 'col2 VARCHAR(255)')
|
||||
def generator(row, col):
|
||||
if col == 0: return row
|
||||
else: return ('%i' % (row%10))*255
|
||||
self.create_table(columndefs)
|
||||
insert_statement = ('INSERT INTO %s VALUES (%s)' %
|
||||
(self.table,
|
||||
','.join(['%s'] * len(columndefs))))
|
||||
data = [ [ generator(i,j) for j in range(len(columndefs)) ]
|
||||
for i in range(self.rows) ]
|
||||
self.cursor.executemany(insert_statement, data)
|
||||
# verify
|
||||
self.connection.commit()
|
||||
self.cursor.execute('select * from %s' % self.table)
|
||||
l = self.cursor.fetchall()
|
||||
self.assertEquals(len(l), self.rows)
|
||||
for i in range(self.rows):
|
||||
for j in range(len(columndefs)):
|
||||
self.assertEquals(l[i][j], generator(i,j))
|
||||
delete_statement = 'delete from %s where col1=%%s' % self.table
|
||||
self.cursor.execute(delete_statement, (0,))
|
||||
self.cursor.execute('select col1 from %s where col1=%s' % \
|
||||
(self.table, 0))
|
||||
l = self.cursor.fetchall()
|
||||
self.assertFalse(l, "DELETE didn't work")
|
||||
self.connection.rollback()
|
||||
self.cursor.execute('select col1 from %s where col1=%s' % \
|
||||
(self.table, 0))
|
||||
l = self.cursor.fetchall()
|
||||
self.assertTrue(len(l) == 1, "ROLLBACK didn't work")
|
||||
self.cursor.execute('drop table %s' % (self.table))
|
||||
|
||||
def test_truncation(self):
|
||||
columndefs = ( 'col1 INT', 'col2 VARCHAR(255)')
|
||||
def generator(row, col):
|
||||
if col == 0: return row
|
||||
else: return ('%i' % (row%10))*((255-self.rows/2)+row)
|
||||
self.create_table(columndefs)
|
||||
insert_statement = ('INSERT INTO %s VALUES (%s)' %
|
||||
(self.table,
|
||||
','.join(['%s'] * len(columndefs))))
|
||||
|
||||
try:
|
||||
self.cursor.execute(insert_statement, (0, '0'*256))
|
||||
except Warning:
|
||||
if self.debug: print self.cursor.messages
|
||||
except self.connection.DataError:
|
||||
pass
|
||||
else:
|
||||
self.fail("Over-long column did not generate warnings/exception with single insert")
|
||||
|
||||
self.connection.rollback()
|
||||
|
||||
try:
|
||||
for i in range(self.rows):
|
||||
data = []
|
||||
for j in range(len(columndefs)):
|
||||
data.append(generator(i,j))
|
||||
self.cursor.execute(insert_statement,tuple(data))
|
||||
except Warning:
|
||||
if self.debug: print self.cursor.messages
|
||||
except self.connection.DataError:
|
||||
pass
|
||||
else:
|
||||
self.fail("Over-long columns did not generate warnings/exception with execute()")
|
||||
|
||||
self.connection.rollback()
|
||||
|
||||
try:
|
||||
data = [ [ generator(i,j) for j in range(len(columndefs)) ]
|
||||
for i in range(self.rows) ]
|
||||
self.cursor.executemany(insert_statement, data)
|
||||
except Warning:
|
||||
if self.debug: print self.cursor.messages
|
||||
except self.connection.DataError:
|
||||
pass
|
||||
else:
|
||||
self.fail("Over-long columns did not generate warnings/exception with executemany()")
|
||||
|
||||
self.connection.rollback()
|
||||
self.cursor.execute('drop table %s' % (self.table))
|
||||
|
||||
def test_CHAR(self):
|
||||
# Character data
|
||||
def generator(row,col):
|
||||
return ('%i' % ((row+col) % 10)) * 255
|
||||
self.check_data_integrity(
|
||||
('col1 char(255)','col2 char(255)'),
|
||||
generator)
|
||||
|
||||
def test_INT(self):
|
||||
# Number data
|
||||
def generator(row,col):
|
||||
return row*row
|
||||
self.check_data_integrity(
|
||||
('col1 INT',),
|
||||
generator)
|
||||
|
||||
def test_DECIMAL(self):
|
||||
# DECIMAL
|
||||
def generator(row,col):
|
||||
from decimal import Decimal
|
||||
return Decimal("%d.%02d" % (row, col))
|
||||
self.check_data_integrity(
|
||||
('col1 DECIMAL(5,2)',),
|
||||
generator)
|
||||
|
||||
def test_DATE(self):
|
||||
ticks = time()
|
||||
def generator(row,col):
|
||||
return self.db_module.DateFromTicks(ticks+row*86400-col*1313)
|
||||
self.check_data_integrity(
|
||||
('col1 DATE',),
|
||||
generator)
|
||||
|
||||
def test_TIME(self):
|
||||
ticks = time()
|
||||
def generator(row,col):
|
||||
return self.db_module.TimeFromTicks(ticks+row*86400-col*1313)
|
||||
self.check_data_integrity(
|
||||
('col1 TIME',),
|
||||
generator)
|
||||
|
||||
def test_DATETIME(self):
|
||||
ticks = time()
|
||||
def generator(row,col):
|
||||
return self.db_module.TimestampFromTicks(ticks+row*86400-col*1313)
|
||||
self.check_data_integrity(
|
||||
('col1 DATETIME',),
|
||||
generator)
|
||||
|
||||
def test_TIMESTAMP(self):
|
||||
ticks = time()
|
||||
def generator(row,col):
|
||||
return self.db_module.TimestampFromTicks(ticks+row*86400-col*1313)
|
||||
self.check_data_integrity(
|
||||
('col1 TIMESTAMP',),
|
||||
generator)
|
||||
|
||||
def test_fractional_TIMESTAMP(self):
|
||||
ticks = time()
|
||||
def generator(row,col):
|
||||
return self.db_module.TimestampFromTicks(ticks+row*86400-col*1313+row*0.7*col/3.0)
|
||||
self.check_data_integrity(
|
||||
('col1 TIMESTAMP',),
|
||||
generator)
|
||||
|
||||
def test_LONG(self):
|
||||
def generator(row,col):
|
||||
if col == 0:
|
||||
return row
|
||||
else:
|
||||
return self.BLOBUText # 'BLOB Text ' * 1024
|
||||
self.check_data_integrity(
|
||||
('col1 INT', 'col2 LONG'),
|
||||
generator)
|
||||
|
||||
def test_TEXT(self):
|
||||
def generator(row,col):
|
||||
if col == 0:
|
||||
return row
|
||||
else:
|
||||
return self.BLOBUText[:5192] # 'BLOB Text ' * 1024
|
||||
self.check_data_integrity(
|
||||
('col1 INT', 'col2 TEXT'),
|
||||
generator)
|
||||
|
||||
def test_LONG_BYTE(self):
|
||||
def generator(row,col):
|
||||
if col == 0:
|
||||
return row
|
||||
else:
|
||||
return self.BLOBBinary # 'BLOB\000Binary ' * 1024
|
||||
self.check_data_integrity(
|
||||
('col1 INT','col2 LONG BYTE'),
|
||||
generator)
|
||||
|
||||
def test_BLOB(self):
|
||||
def generator(row,col):
|
||||
if col == 0:
|
||||
return row
|
||||
else:
|
||||
return self.BLOBBinary # 'BLOB\000Binary ' * 1024
|
||||
self.check_data_integrity(
|
||||
('col1 INT','col2 BLOB'),
|
||||
generator)
|
||||
|
||||
@ -1,853 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
''' Python DB API 2.0 driver compliance unit test suite.
|
||||
|
||||
This software is Public Domain and may be used without restrictions.
|
||||
|
||||
"Now we have booze and barflies entering the discussion, plus rumours of
|
||||
DBAs on drugs... and I won't tell you what flashes through my mind each
|
||||
time I read the subject line with 'Anal Compliance' in it. All around
|
||||
this is turning out to be a thoroughly unwholesome unit test."
|
||||
|
||||
-- Ian Bicking
|
||||
'''
|
||||
|
||||
__rcs_id__ = '$Id$'
|
||||
__version__ = '$Revision$'[11:-2]
|
||||
__author__ = 'Stuart Bishop <zen@shangri-la.dropbear.id.au>'
|
||||
|
||||
import unittest
|
||||
import time
|
||||
|
||||
# $Log$
|
||||
# Revision 1.1.2.1 2006/02/25 03:44:32 adustman
|
||||
# Generic DB-API unit test module
|
||||
#
|
||||
# Revision 1.10 2003/10/09 03:14:14 zenzen
|
||||
# Add test for DB API 2.0 optional extension, where database exceptions
|
||||
# are exposed as attributes on the Connection object.
|
||||
#
|
||||
# Revision 1.9 2003/08/13 01:16:36 zenzen
|
||||
# Minor tweak from Stefan Fleiter
|
||||
#
|
||||
# Revision 1.8 2003/04/10 00:13:25 zenzen
|
||||
# Changes, as per suggestions by M.-A. Lemburg
|
||||
# - Add a table prefix, to ensure namespace collisions can always be avoided
|
||||
#
|
||||
# Revision 1.7 2003/02/26 23:33:37 zenzen
|
||||
# Break out DDL into helper functions, as per request by David Rushby
|
||||
#
|
||||
# Revision 1.6 2003/02/21 03:04:33 zenzen
|
||||
# Stuff from Henrik Ekelund:
|
||||
# added test_None
|
||||
# added test_nextset & hooks
|
||||
#
|
||||
# Revision 1.5 2003/02/17 22:08:43 zenzen
|
||||
# Implement suggestions and code from Henrik Eklund - test that cursor.arraysize
|
||||
# defaults to 1 & generic cursor.callproc test added
|
||||
#
|
||||
# Revision 1.4 2003/02/15 00:16:33 zenzen
|
||||
# Changes, as per suggestions and bug reports by M.-A. Lemburg,
|
||||
# Matthew T. Kromer, Federico Di Gregorio and Daniel Dittmar
|
||||
# - Class renamed
|
||||
# - Now a subclass of TestCase, to avoid requiring the driver stub
|
||||
# to use multiple inheritance
|
||||
# - Reversed the polarity of buggy test in test_description
|
||||
# - Test exception heirarchy correctly
|
||||
# - self.populate is now self._populate(), so if a driver stub
|
||||
# overrides self.ddl1 this change propogates
|
||||
# - VARCHAR columns now have a width, which will hopefully make the
|
||||
# DDL even more portible (this will be reversed if it causes more problems)
|
||||
# - cursor.rowcount being checked after various execute and fetchXXX methods
|
||||
# - Check for fetchall and fetchmany returning empty lists after results
|
||||
# are exhausted (already checking for empty lists if select retrieved
|
||||
# nothing
|
||||
# - Fix bugs in test_setoutputsize_basic and test_setinputsizes
|
||||
#
|
||||
|
||||
class DatabaseAPI20Test(unittest.TestCase):
|
||||
''' Test a database self.driver for DB API 2.0 compatibility.
|
||||
This implementation tests Gadfly, but the TestCase
|
||||
is structured so that other self.drivers can subclass this
|
||||
test case to ensure compiliance with the DB-API. It is
|
||||
expected that this TestCase may be expanded in the future
|
||||
if ambiguities or edge conditions are discovered.
|
||||
|
||||
The 'Optional Extensions' are not yet being tested.
|
||||
|
||||
self.drivers should subclass this test, overriding setUp, tearDown,
|
||||
self.driver, connect_args and connect_kw_args. Class specification
|
||||
should be as follows:
|
||||
|
||||
import dbapi20
|
||||
class mytest(dbapi20.DatabaseAPI20Test):
|
||||
[...]
|
||||
|
||||
Don't 'import DatabaseAPI20Test from dbapi20', or you will
|
||||
confuse the unit tester - just 'import dbapi20'.
|
||||
'''
|
||||
|
||||
# The self.driver module. This should be the module where the 'connect'
|
||||
# method is to be found
|
||||
driver = None
|
||||
connect_args = () # List of arguments to pass to connect
|
||||
connect_kw_args = {} # Keyword arguments for connect
|
||||
table_prefix = 'dbapi20test_' # If you need to specify a prefix for tables
|
||||
|
||||
ddl1 = 'create table %sbooze (name varchar(20))' % table_prefix
|
||||
ddl2 = 'create table %sbarflys (name varchar(20))' % table_prefix
|
||||
xddl1 = 'drop table %sbooze' % table_prefix
|
||||
xddl2 = 'drop table %sbarflys' % table_prefix
|
||||
|
||||
lowerfunc = 'lower' # Name of stored procedure to convert string->lowercase
|
||||
|
||||
# Some drivers may need to override these helpers, for example adding
|
||||
# a 'commit' after the execute.
|
||||
def executeDDL1(self,cursor):
|
||||
cursor.execute(self.ddl1)
|
||||
|
||||
def executeDDL2(self,cursor):
|
||||
cursor.execute(self.ddl2)
|
||||
|
||||
def setUp(self):
|
||||
''' self.drivers should override this method to perform required setup
|
||||
if any is necessary, such as creating the database.
|
||||
'''
|
||||
pass
|
||||
|
||||
def tearDown(self):
|
||||
''' self.drivers should override this method to perform required cleanup
|
||||
if any is necessary, such as deleting the test database.
|
||||
The default drops the tables that may be created.
|
||||
'''
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
for ddl in (self.xddl1,self.xddl2):
|
||||
try:
|
||||
cur.execute(ddl)
|
||||
con.commit()
|
||||
except self.driver.Error:
|
||||
# Assume table didn't exist. Other tests will check if
|
||||
# execute is busted.
|
||||
pass
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def _connect(self):
|
||||
try:
|
||||
return self.driver.connect(
|
||||
*self.connect_args,**self.connect_kw_args
|
||||
)
|
||||
except AttributeError:
|
||||
self.fail("No connect method found in self.driver module")
|
||||
|
||||
def test_connect(self):
|
||||
con = self._connect()
|
||||
con.close()
|
||||
|
||||
def test_apilevel(self):
|
||||
try:
|
||||
# Must exist
|
||||
apilevel = self.driver.apilevel
|
||||
# Must equal 2.0
|
||||
self.assertEqual(apilevel,'2.0')
|
||||
except AttributeError:
|
||||
self.fail("Driver doesn't define apilevel")
|
||||
|
||||
def test_threadsafety(self):
|
||||
try:
|
||||
# Must exist
|
||||
threadsafety = self.driver.threadsafety
|
||||
# Must be a valid value
|
||||
self.assertTrue(threadsafety in (0,1,2,3))
|
||||
except AttributeError:
|
||||
self.fail("Driver doesn't define threadsafety")
|
||||
|
||||
def test_paramstyle(self):
|
||||
try:
|
||||
# Must exist
|
||||
paramstyle = self.driver.paramstyle
|
||||
# Must be a valid value
|
||||
self.assertTrue(paramstyle in (
|
||||
'qmark','numeric','named','format','pyformat'
|
||||
))
|
||||
except AttributeError:
|
||||
self.fail("Driver doesn't define paramstyle")
|
||||
|
||||
def test_Exceptions(self):
|
||||
# Make sure required exceptions exist, and are in the
|
||||
# defined heirarchy.
|
||||
self.assertTrue(issubclass(self.driver.Warning,StandardError))
|
||||
self.assertTrue(issubclass(self.driver.Error,StandardError))
|
||||
self.assertTrue(
|
||||
issubclass(self.driver.InterfaceError,self.driver.Error)
|
||||
)
|
||||
self.assertTrue(
|
||||
issubclass(self.driver.DatabaseError,self.driver.Error)
|
||||
)
|
||||
self.assertTrue(
|
||||
issubclass(self.driver.OperationalError,self.driver.Error)
|
||||
)
|
||||
self.assertTrue(
|
||||
issubclass(self.driver.IntegrityError,self.driver.Error)
|
||||
)
|
||||
self.assertTrue(
|
||||
issubclass(self.driver.InternalError,self.driver.Error)
|
||||
)
|
||||
self.assertTrue(
|
||||
issubclass(self.driver.ProgrammingError,self.driver.Error)
|
||||
)
|
||||
self.assertTrue(
|
||||
issubclass(self.driver.NotSupportedError,self.driver.Error)
|
||||
)
|
||||
|
||||
def test_ExceptionsAsConnectionAttributes(self):
|
||||
# OPTIONAL EXTENSION
|
||||
# Test for the optional DB API 2.0 extension, where the exceptions
|
||||
# are exposed as attributes on the Connection object
|
||||
# I figure this optional extension will be implemented by any
|
||||
# driver author who is using this test suite, so it is enabled
|
||||
# by default.
|
||||
con = self._connect()
|
||||
drv = self.driver
|
||||
self.assertTrue(con.Warning is drv.Warning)
|
||||
self.assertTrue(con.Error is drv.Error)
|
||||
self.assertTrue(con.InterfaceError is drv.InterfaceError)
|
||||
self.assertTrue(con.DatabaseError is drv.DatabaseError)
|
||||
self.assertTrue(con.OperationalError is drv.OperationalError)
|
||||
self.assertTrue(con.IntegrityError is drv.IntegrityError)
|
||||
self.assertTrue(con.InternalError is drv.InternalError)
|
||||
self.assertTrue(con.ProgrammingError is drv.ProgrammingError)
|
||||
self.assertTrue(con.NotSupportedError is drv.NotSupportedError)
|
||||
|
||||
|
||||
def test_commit(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
# Commit must work, even if it doesn't do anything
|
||||
con.commit()
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_rollback(self):
|
||||
con = self._connect()
|
||||
# If rollback is defined, it should either work or throw
|
||||
# the documented exception
|
||||
if hasattr(con,'rollback'):
|
||||
try:
|
||||
con.rollback()
|
||||
except self.driver.NotSupportedError:
|
||||
pass
|
||||
|
||||
def test_cursor(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_cursor_isolation(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
# Make sure cursors created from the same connection have
|
||||
# the documented transaction isolation level
|
||||
cur1 = con.cursor()
|
||||
cur2 = con.cursor()
|
||||
self.executeDDL1(cur1)
|
||||
cur1.execute("insert into %sbooze values ('Victoria Bitter')" % (
|
||||
self.table_prefix
|
||||
))
|
||||
cur2.execute("select name from %sbooze" % self.table_prefix)
|
||||
booze = cur2.fetchall()
|
||||
self.assertEqual(len(booze),1)
|
||||
self.assertEqual(len(booze[0]),1)
|
||||
self.assertEqual(booze[0][0],'Victoria Bitter')
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_description(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
self.executeDDL1(cur)
|
||||
self.assertEqual(cur.description,None,
|
||||
'cursor.description should be none after executing a '
|
||||
'statement that can return no rows (such as DDL)'
|
||||
)
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
self.assertEqual(len(cur.description),1,
|
||||
'cursor.description describes too many columns'
|
||||
)
|
||||
self.assertEqual(len(cur.description[0]),7,
|
||||
'cursor.description[x] tuples must have 7 elements'
|
||||
)
|
||||
self.assertEqual(cur.description[0][0].lower(),'name',
|
||||
'cursor.description[x][0] must return column name'
|
||||
)
|
||||
self.assertEqual(cur.description[0][1],self.driver.STRING,
|
||||
'cursor.description[x][1] must return column type. Got %r'
|
||||
% cur.description[0][1]
|
||||
)
|
||||
|
||||
# Make sure self.description gets reset
|
||||
self.executeDDL2(cur)
|
||||
self.assertEqual(cur.description,None,
|
||||
'cursor.description not being set to None when executing '
|
||||
'no-result statements (eg. DDL)'
|
||||
)
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_rowcount(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
self.executeDDL1(cur)
|
||||
self.assertEqual(cur.rowcount,-1,
|
||||
'cursor.rowcount should be -1 after executing no-result '
|
||||
'statements'
|
||||
)
|
||||
cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
|
||||
self.table_prefix
|
||||
))
|
||||
self.assertTrue(cur.rowcount in (-1,1),
|
||||
'cursor.rowcount should == number or rows inserted, or '
|
||||
'set to -1 after executing an insert statement'
|
||||
)
|
||||
cur.execute("select name from %sbooze" % self.table_prefix)
|
||||
self.assertTrue(cur.rowcount in (-1,1),
|
||||
'cursor.rowcount should == number of rows returned, or '
|
||||
'set to -1 after executing a select statement'
|
||||
)
|
||||
self.executeDDL2(cur)
|
||||
self.assertEqual(cur.rowcount,-1,
|
||||
'cursor.rowcount not being reset to -1 after executing '
|
||||
'no-result statements'
|
||||
)
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
lower_func = 'lower'
|
||||
def test_callproc(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
if self.lower_func and hasattr(cur,'callproc'):
|
||||
r = cur.callproc(self.lower_func,('FOO',))
|
||||
self.assertEqual(len(r),1)
|
||||
self.assertEqual(r[0],'FOO')
|
||||
r = cur.fetchall()
|
||||
self.assertEqual(len(r),1,'callproc produced no result set')
|
||||
self.assertEqual(len(r[0]),1,
|
||||
'callproc produced invalid result set'
|
||||
)
|
||||
self.assertEqual(r[0][0],'foo',
|
||||
'callproc produced invalid results'
|
||||
)
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_close(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
# cursor.execute should raise an Error if called after connection
|
||||
# closed
|
||||
self.assertRaises(self.driver.Error,self.executeDDL1,cur)
|
||||
|
||||
# connection.commit should raise an Error if called after connection'
|
||||
# closed.'
|
||||
self.assertRaises(self.driver.Error,con.commit)
|
||||
|
||||
# connection.close should raise an Error if called more than once
|
||||
self.assertRaises(self.driver.Error,con.close)
|
||||
|
||||
def test_execute(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
self._paraminsert(cur)
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def _paraminsert(self,cur):
|
||||
self.executeDDL1(cur)
|
||||
cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
|
||||
self.table_prefix
|
||||
))
|
||||
self.assertTrue(cur.rowcount in (-1,1))
|
||||
|
||||
if self.driver.paramstyle == 'qmark':
|
||||
cur.execute(
|
||||
'insert into %sbooze values (?)' % self.table_prefix,
|
||||
("Cooper's",)
|
||||
)
|
||||
elif self.driver.paramstyle == 'numeric':
|
||||
cur.execute(
|
||||
'insert into %sbooze values (:1)' % self.table_prefix,
|
||||
("Cooper's",)
|
||||
)
|
||||
elif self.driver.paramstyle == 'named':
|
||||
cur.execute(
|
||||
'insert into %sbooze values (:beer)' % self.table_prefix,
|
||||
{'beer':"Cooper's"}
|
||||
)
|
||||
elif self.driver.paramstyle == 'format':
|
||||
cur.execute(
|
||||
'insert into %sbooze values (%%s)' % self.table_prefix,
|
||||
("Cooper's",)
|
||||
)
|
||||
elif self.driver.paramstyle == 'pyformat':
|
||||
cur.execute(
|
||||
'insert into %sbooze values (%%(beer)s)' % self.table_prefix,
|
||||
{'beer':"Cooper's"}
|
||||
)
|
||||
else:
|
||||
self.fail('Invalid paramstyle')
|
||||
self.assertTrue(cur.rowcount in (-1,1))
|
||||
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
res = cur.fetchall()
|
||||
self.assertEqual(len(res),2,'cursor.fetchall returned too few rows')
|
||||
beers = [res[0][0],res[1][0]]
|
||||
beers.sort()
|
||||
self.assertEqual(beers[0],"Cooper's",
|
||||
'cursor.fetchall retrieved incorrect data, or data inserted '
|
||||
'incorrectly'
|
||||
)
|
||||
self.assertEqual(beers[1],"Victoria Bitter",
|
||||
'cursor.fetchall retrieved incorrect data, or data inserted '
|
||||
'incorrectly'
|
||||
)
|
||||
|
||||
def test_executemany(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
self.executeDDL1(cur)
|
||||
largs = [ ("Cooper's",) , ("Boag's",) ]
|
||||
margs = [ {'beer': "Cooper's"}, {'beer': "Boag's"} ]
|
||||
if self.driver.paramstyle == 'qmark':
|
||||
cur.executemany(
|
||||
'insert into %sbooze values (?)' % self.table_prefix,
|
||||
largs
|
||||
)
|
||||
elif self.driver.paramstyle == 'numeric':
|
||||
cur.executemany(
|
||||
'insert into %sbooze values (:1)' % self.table_prefix,
|
||||
largs
|
||||
)
|
||||
elif self.driver.paramstyle == 'named':
|
||||
cur.executemany(
|
||||
'insert into %sbooze values (:beer)' % self.table_prefix,
|
||||
margs
|
||||
)
|
||||
elif self.driver.paramstyle == 'format':
|
||||
cur.executemany(
|
||||
'insert into %sbooze values (%%s)' % self.table_prefix,
|
||||
largs
|
||||
)
|
||||
elif self.driver.paramstyle == 'pyformat':
|
||||
cur.executemany(
|
||||
'insert into %sbooze values (%%(beer)s)' % (
|
||||
self.table_prefix
|
||||
),
|
||||
margs
|
||||
)
|
||||
else:
|
||||
self.fail('Unknown paramstyle')
|
||||
self.assertTrue(cur.rowcount in (-1,2),
|
||||
'insert using cursor.executemany set cursor.rowcount to '
|
||||
'incorrect value %r' % cur.rowcount
|
||||
)
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
res = cur.fetchall()
|
||||
self.assertEqual(len(res),2,
|
||||
'cursor.fetchall retrieved incorrect number of rows'
|
||||
)
|
||||
beers = [res[0][0],res[1][0]]
|
||||
beers.sort()
|
||||
self.assertEqual(beers[0],"Boag's",'incorrect data retrieved')
|
||||
self.assertEqual(beers[1],"Cooper's",'incorrect data retrieved')
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_fetchone(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
|
||||
# cursor.fetchone should raise an Error if called before
|
||||
# executing a select-type query
|
||||
self.assertRaises(self.driver.Error,cur.fetchone)
|
||||
|
||||
# cursor.fetchone should raise an Error if called after
|
||||
# executing a query that cannnot return rows
|
||||
self.executeDDL1(cur)
|
||||
self.assertRaises(self.driver.Error,cur.fetchone)
|
||||
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
self.assertEqual(cur.fetchone(),None,
|
||||
'cursor.fetchone should return None if a query retrieves '
|
||||
'no rows'
|
||||
)
|
||||
self.assertTrue(cur.rowcount in (-1,0))
|
||||
|
||||
# cursor.fetchone should raise an Error if called after
|
||||
# executing a query that cannnot return rows
|
||||
cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
|
||||
self.table_prefix
|
||||
))
|
||||
self.assertRaises(self.driver.Error,cur.fetchone)
|
||||
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
r = cur.fetchone()
|
||||
self.assertEqual(len(r),1,
|
||||
'cursor.fetchone should have retrieved a single row'
|
||||
)
|
||||
self.assertEqual(r[0],'Victoria Bitter',
|
||||
'cursor.fetchone retrieved incorrect data'
|
||||
)
|
||||
self.assertEqual(cur.fetchone(),None,
|
||||
'cursor.fetchone should return None if no more rows available'
|
||||
)
|
||||
self.assertTrue(cur.rowcount in (-1,1))
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
samples = [
|
||||
'Carlton Cold',
|
||||
'Carlton Draft',
|
||||
'Mountain Goat',
|
||||
'Redback',
|
||||
'Victoria Bitter',
|
||||
'XXXX'
|
||||
]
|
||||
|
||||
def _populate(self):
|
||||
''' Return a list of sql commands to setup the DB for the fetch
|
||||
tests.
|
||||
'''
|
||||
populate = [
|
||||
"insert into %sbooze values ('%s')" % (self.table_prefix,s)
|
||||
for s in self.samples
|
||||
]
|
||||
return populate
|
||||
|
||||
def test_fetchmany(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
|
||||
# cursor.fetchmany should raise an Error if called without
|
||||
#issuing a query
|
||||
self.assertRaises(self.driver.Error,cur.fetchmany,4)
|
||||
|
||||
self.executeDDL1(cur)
|
||||
for sql in self._populate():
|
||||
cur.execute(sql)
|
||||
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
r = cur.fetchmany()
|
||||
self.assertEqual(len(r),1,
|
||||
'cursor.fetchmany retrieved incorrect number of rows, '
|
||||
'default of arraysize is one.'
|
||||
)
|
||||
cur.arraysize=10
|
||||
r = cur.fetchmany(3) # Should get 3 rows
|
||||
self.assertEqual(len(r),3,
|
||||
'cursor.fetchmany retrieved incorrect number of rows'
|
||||
)
|
||||
r = cur.fetchmany(4) # Should get 2 more
|
||||
self.assertEqual(len(r),2,
|
||||
'cursor.fetchmany retrieved incorrect number of rows'
|
||||
)
|
||||
r = cur.fetchmany(4) # Should be an empty sequence
|
||||
self.assertEqual(len(r),0,
|
||||
'cursor.fetchmany should return an empty sequence after '
|
||||
'results are exhausted'
|
||||
)
|
||||
self.assertTrue(cur.rowcount in (-1,6))
|
||||
|
||||
# Same as above, using cursor.arraysize
|
||||
cur.arraysize=4
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
r = cur.fetchmany() # Should get 4 rows
|
||||
self.assertEqual(len(r),4,
|
||||
'cursor.arraysize not being honoured by fetchmany'
|
||||
)
|
||||
r = cur.fetchmany() # Should get 2 more
|
||||
self.assertEqual(len(r),2)
|
||||
r = cur.fetchmany() # Should be an empty sequence
|
||||
self.assertEqual(len(r),0)
|
||||
self.assertTrue(cur.rowcount in (-1,6))
|
||||
|
||||
cur.arraysize=6
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
rows = cur.fetchmany() # Should get all rows
|
||||
self.assertTrue(cur.rowcount in (-1,6))
|
||||
self.assertEqual(len(rows),6)
|
||||
self.assertEqual(len(rows),6)
|
||||
rows = [r[0] for r in rows]
|
||||
rows.sort()
|
||||
|
||||
# Make sure we get the right data back out
|
||||
for i in range(0,6):
|
||||
self.assertEqual(rows[i],self.samples[i],
|
||||
'incorrect data retrieved by cursor.fetchmany'
|
||||
)
|
||||
|
||||
rows = cur.fetchmany() # Should return an empty list
|
||||
self.assertEqual(len(rows),0,
|
||||
'cursor.fetchmany should return an empty sequence if '
|
||||
'called after the whole result set has been fetched'
|
||||
)
|
||||
self.assertTrue(cur.rowcount in (-1,6))
|
||||
|
||||
self.executeDDL2(cur)
|
||||
cur.execute('select name from %sbarflys' % self.table_prefix)
|
||||
r = cur.fetchmany() # Should get empty sequence
|
||||
self.assertEqual(len(r),0,
|
||||
'cursor.fetchmany should return an empty sequence if '
|
||||
'query retrieved no rows'
|
||||
)
|
||||
self.assertTrue(cur.rowcount in (-1,0))
|
||||
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_fetchall(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
# cursor.fetchall should raise an Error if called
|
||||
# without executing a query that may return rows (such
|
||||
# as a select)
|
||||
self.assertRaises(self.driver.Error, cur.fetchall)
|
||||
|
||||
self.executeDDL1(cur)
|
||||
for sql in self._populate():
|
||||
cur.execute(sql)
|
||||
|
||||
# cursor.fetchall should raise an Error if called
|
||||
# after executing a a statement that cannot return rows
|
||||
self.assertRaises(self.driver.Error,cur.fetchall)
|
||||
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
rows = cur.fetchall()
|
||||
self.assertTrue(cur.rowcount in (-1,len(self.samples)))
|
||||
self.assertEqual(len(rows),len(self.samples),
|
||||
'cursor.fetchall did not retrieve all rows'
|
||||
)
|
||||
rows = [r[0] for r in rows]
|
||||
rows.sort()
|
||||
for i in range(0,len(self.samples)):
|
||||
self.assertEqual(rows[i],self.samples[i],
|
||||
'cursor.fetchall retrieved incorrect rows'
|
||||
)
|
||||
rows = cur.fetchall()
|
||||
self.assertEqual(
|
||||
len(rows),0,
|
||||
'cursor.fetchall should return an empty list if called '
|
||||
'after the whole result set has been fetched'
|
||||
)
|
||||
self.assertTrue(cur.rowcount in (-1,len(self.samples)))
|
||||
|
||||
self.executeDDL2(cur)
|
||||
cur.execute('select name from %sbarflys' % self.table_prefix)
|
||||
rows = cur.fetchall()
|
||||
self.assertTrue(cur.rowcount in (-1,0))
|
||||
self.assertEqual(len(rows),0,
|
||||
'cursor.fetchall should return an empty list if '
|
||||
'a select query returns no rows'
|
||||
)
|
||||
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_mixedfetch(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
self.executeDDL1(cur)
|
||||
for sql in self._populate():
|
||||
cur.execute(sql)
|
||||
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
rows1 = cur.fetchone()
|
||||
rows23 = cur.fetchmany(2)
|
||||
rows4 = cur.fetchone()
|
||||
rows56 = cur.fetchall()
|
||||
self.assertTrue(cur.rowcount in (-1,6))
|
||||
self.assertEqual(len(rows23),2,
|
||||
'fetchmany returned incorrect number of rows'
|
||||
)
|
||||
self.assertEqual(len(rows56),2,
|
||||
'fetchall returned incorrect number of rows'
|
||||
)
|
||||
|
||||
rows = [rows1[0]]
|
||||
rows.extend([rows23[0][0],rows23[1][0]])
|
||||
rows.append(rows4[0])
|
||||
rows.extend([rows56[0][0],rows56[1][0]])
|
||||
rows.sort()
|
||||
for i in range(0,len(self.samples)):
|
||||
self.assertEqual(rows[i],self.samples[i],
|
||||
'incorrect data retrieved or inserted'
|
||||
)
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def help_nextset_setUp(self,cur):
|
||||
''' Should create a procedure called deleteme
|
||||
that returns two result sets, first the
|
||||
number of rows in booze then "name from booze"
|
||||
'''
|
||||
raise NotImplementedError,'Helper not implemented'
|
||||
#sql="""
|
||||
# create procedure deleteme as
|
||||
# begin
|
||||
# select count(*) from booze
|
||||
# select name from booze
|
||||
# end
|
||||
#"""
|
||||
#cur.execute(sql)
|
||||
|
||||
def help_nextset_tearDown(self,cur):
|
||||
'If cleaning up is needed after nextSetTest'
|
||||
raise NotImplementedError,'Helper not implemented'
|
||||
#cur.execute("drop procedure deleteme")
|
||||
|
||||
def test_nextset(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
if not hasattr(cur,'nextset'):
|
||||
return
|
||||
|
||||
try:
|
||||
self.executeDDL1(cur)
|
||||
sql=self._populate()
|
||||
for sql in self._populate():
|
||||
cur.execute(sql)
|
||||
|
||||
self.help_nextset_setUp(cur)
|
||||
|
||||
cur.callproc('deleteme')
|
||||
numberofrows=cur.fetchone()
|
||||
assert numberofrows[0]== len(self.samples)
|
||||
assert cur.nextset()
|
||||
names=cur.fetchall()
|
||||
assert len(names) == len(self.samples)
|
||||
s=cur.nextset()
|
||||
assert s == None,'No more return sets, should return None'
|
||||
finally:
|
||||
self.help_nextset_tearDown(cur)
|
||||
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_nextset(self):
|
||||
raise NotImplementedError,'Drivers need to override this test'
|
||||
|
||||
def test_arraysize(self):
|
||||
# Not much here - rest of the tests for this are in test_fetchmany
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
self.assertTrue(hasattr(cur,'arraysize'),
|
||||
'cursor.arraysize must be defined'
|
||||
)
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_setinputsizes(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
cur.setinputsizes( (25,) )
|
||||
self._paraminsert(cur) # Make sure cursor still works
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_setoutputsize_basic(self):
|
||||
# Basic test is to make sure setoutputsize doesn't blow up
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
cur.setoutputsize(1000)
|
||||
cur.setoutputsize(2000,0)
|
||||
self._paraminsert(cur) # Make sure the cursor still works
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_setoutputsize(self):
|
||||
# Real test for setoutputsize is driver dependant
|
||||
raise NotImplementedError,'Driver need to override this test'
|
||||
|
||||
def test_None(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
self.executeDDL1(cur)
|
||||
cur.execute('insert into %sbooze values (NULL)' % self.table_prefix)
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
r = cur.fetchall()
|
||||
self.assertEqual(len(r),1)
|
||||
self.assertEqual(len(r[0]),1)
|
||||
self.assertEqual(r[0][0],None,'NULL value not returned as None')
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_Date(self):
|
||||
d1 = self.driver.Date(2002,12,25)
|
||||
d2 = self.driver.DateFromTicks(time.mktime((2002,12,25,0,0,0,0,0,0)))
|
||||
# Can we assume this? API doesn't specify, but it seems implied
|
||||
# self.assertEqual(str(d1),str(d2))
|
||||
|
||||
def test_Time(self):
|
||||
t1 = self.driver.Time(13,45,30)
|
||||
t2 = self.driver.TimeFromTicks(time.mktime((2001,1,1,13,45,30,0,0,0)))
|
||||
# Can we assume this? API doesn't specify, but it seems implied
|
||||
# self.assertEqual(str(t1),str(t2))
|
||||
|
||||
def test_Timestamp(self):
|
||||
t1 = self.driver.Timestamp(2002,12,25,13,45,30)
|
||||
t2 = self.driver.TimestampFromTicks(
|
||||
time.mktime((2002,12,25,13,45,30,0,0,0))
|
||||
)
|
||||
# Can we assume this? API doesn't specify, but it seems implied
|
||||
# self.assertEqual(str(t1),str(t2))
|
||||
|
||||
def test_Binary(self):
|
||||
b = self.driver.Binary('Something')
|
||||
b = self.driver.Binary('')
|
||||
|
||||
def test_STRING(self):
|
||||
self.assertTrue(hasattr(self.driver,'STRING'),
|
||||
'module.STRING must be defined'
|
||||
)
|
||||
|
||||
def test_BINARY(self):
|
||||
self.assertTrue(hasattr(self.driver,'BINARY'),
|
||||
'module.BINARY must be defined.'
|
||||
)
|
||||
|
||||
def test_NUMBER(self):
|
||||
self.assertTrue(hasattr(self.driver,'NUMBER'),
|
||||
'module.NUMBER must be defined.'
|
||||
)
|
||||
|
||||
def test_DATETIME(self):
|
||||
self.assertTrue(hasattr(self.driver,'DATETIME'),
|
||||
'module.DATETIME must be defined.'
|
||||
)
|
||||
|
||||
def test_ROWID(self):
|
||||
self.assertTrue(hasattr(self.driver,'ROWID'),
|
||||
'module.ROWID must be defined.'
|
||||
)
|
||||
|
||||
@ -1,115 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
import capabilities
|
||||
import unittest
|
||||
import pymysql
|
||||
from pymysql.tests import base
|
||||
import warnings
|
||||
|
||||
warnings.filterwarnings('error')
|
||||
|
||||
class test_MySQLdb(capabilities.DatabaseTest):
|
||||
|
||||
db_module = pymysql
|
||||
connect_args = ()
|
||||
connect_kwargs = base.PyMySQLTestCase.databases[0].copy()
|
||||
connect_kwargs.update(dict(read_default_file='~/.my.cnf',
|
||||
use_unicode=True,
|
||||
charset='utf8', sql_mode="ANSI,STRICT_TRANS_TABLES,TRADITIONAL"))
|
||||
|
||||
create_table_extra = "ENGINE=INNODB CHARACTER SET UTF8"
|
||||
leak_test = False
|
||||
|
||||
def quote_identifier(self, ident):
|
||||
return "`%s`" % ident
|
||||
|
||||
def test_TIME(self):
|
||||
from datetime import timedelta
|
||||
def generator(row,col):
|
||||
return timedelta(0, row*8000)
|
||||
self.check_data_integrity(
|
||||
('col1 TIME',),
|
||||
generator)
|
||||
|
||||
def test_TINYINT(self):
|
||||
# Number data
|
||||
def generator(row,col):
|
||||
v = (row*row) % 256
|
||||
if v > 127:
|
||||
v = v-256
|
||||
return v
|
||||
self.check_data_integrity(
|
||||
('col1 TINYINT',),
|
||||
generator)
|
||||
|
||||
def test_stored_procedures(self):
|
||||
db = self.connection
|
||||
c = self.cursor
|
||||
try:
|
||||
self.create_table(('pos INT', 'tree CHAR(20)'))
|
||||
c.executemany("INSERT INTO %s (pos,tree) VALUES (%%s,%%s)" % self.table,
|
||||
list(enumerate('ash birch cedar larch pine'.split())))
|
||||
db.commit()
|
||||
|
||||
c.execute("""
|
||||
CREATE PROCEDURE test_sp(IN t VARCHAR(255))
|
||||
BEGIN
|
||||
SELECT pos FROM %s WHERE tree = t;
|
||||
END
|
||||
""" % self.table)
|
||||
db.commit()
|
||||
|
||||
c.callproc('test_sp', ('larch',))
|
||||
rows = c.fetchall()
|
||||
self.assertEquals(len(rows), 1)
|
||||
self.assertEquals(rows[0][0], 3)
|
||||
c.nextset()
|
||||
finally:
|
||||
c.execute("DROP PROCEDURE IF EXISTS test_sp")
|
||||
c.execute('drop table %s' % (self.table))
|
||||
|
||||
def test_small_CHAR(self):
|
||||
# Character data
|
||||
def generator(row,col):
|
||||
i = ((row+1)*(col+1)+62)%256
|
||||
if i == 62: return ''
|
||||
if i == 63: return None
|
||||
return chr(i)
|
||||
self.check_data_integrity(
|
||||
('col1 char(1)','col2 char(1)'),
|
||||
generator)
|
||||
|
||||
def test_bug_2671682(self):
|
||||
from pymysql.constants import ER
|
||||
try:
|
||||
self.cursor.execute("describe some_non_existent_table");
|
||||
except self.connection.ProgrammingError, msg:
|
||||
self.assertTrue(msg.args[0] == ER.NO_SUCH_TABLE)
|
||||
|
||||
def test_insert_values(self):
|
||||
from pymysql.cursors import insert_values
|
||||
query = """INSERT FOO (a, b, c) VALUES (a, b, c)"""
|
||||
matched = insert_values.search(query)
|
||||
self.assertTrue(matched)
|
||||
values = matched.group(1)
|
||||
self.assertTrue(values == "(a, b, c)")
|
||||
|
||||
def test_ping(self):
|
||||
self.connection.ping()
|
||||
|
||||
def test_literal_int(self):
|
||||
self.assertTrue("2" == self.connection.literal(2))
|
||||
|
||||
def test_literal_float(self):
|
||||
self.assertTrue("3.1415" == self.connection.literal(3.1415))
|
||||
|
||||
def test_literal_string(self):
|
||||
self.assertTrue("'foo'" == self.connection.literal("foo"))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if test_MySQLdb.leak_test:
|
||||
import gc
|
||||
gc.enable()
|
||||
gc.set_debug(gc.DEBUG_LEAK)
|
||||
unittest.main()
|
||||
|
||||
@ -1,205 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
import dbapi20
|
||||
import unittest
|
||||
import pymysql
|
||||
from pymysql.tests import base
|
||||
|
||||
class test_MySQLdb(dbapi20.DatabaseAPI20Test):
|
||||
driver = pymysql
|
||||
connect_args = ()
|
||||
connect_kw_args = base.PyMySQLTestCase.databases[0].copy()
|
||||
connect_kw_args.update(dict(read_default_file='~/.my.cnf',
|
||||
charset='utf8',
|
||||
sql_mode="ANSI,STRICT_TRANS_TABLES,TRADITIONAL"))
|
||||
|
||||
def test_setoutputsize(self): pass
|
||||
def test_setoutputsize_basic(self): pass
|
||||
def test_nextset(self): pass
|
||||
|
||||
"""The tests on fetchone and fetchall and rowcount bogusly
|
||||
test for an exception if the statement cannot return a
|
||||
result set. MySQL always returns a result set; it's just that
|
||||
some things return empty result sets."""
|
||||
|
||||
def test_fetchall(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
# cursor.fetchall should raise an Error if called
|
||||
# without executing a query that may return rows (such
|
||||
# as a select)
|
||||
self.assertRaises(self.driver.Error, cur.fetchall)
|
||||
|
||||
self.executeDDL1(cur)
|
||||
for sql in self._populate():
|
||||
cur.execute(sql)
|
||||
|
||||
# cursor.fetchall should raise an Error if called
|
||||
# after executing a a statement that cannot return rows
|
||||
## self.assertRaises(self.driver.Error,cur.fetchall)
|
||||
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
rows = cur.fetchall()
|
||||
self.assertTrue(cur.rowcount in (-1,len(self.samples)))
|
||||
self.assertEqual(len(rows),len(self.samples),
|
||||
'cursor.fetchall did not retrieve all rows'
|
||||
)
|
||||
rows = [r[0] for r in rows]
|
||||
rows.sort()
|
||||
for i in range(0,len(self.samples)):
|
||||
self.assertEqual(rows[i],self.samples[i],
|
||||
'cursor.fetchall retrieved incorrect rows'
|
||||
)
|
||||
rows = cur.fetchall()
|
||||
self.assertEqual(
|
||||
len(rows),0,
|
||||
'cursor.fetchall should return an empty list if called '
|
||||
'after the whole result set has been fetched'
|
||||
)
|
||||
self.assertTrue(cur.rowcount in (-1,len(self.samples)))
|
||||
|
||||
self.executeDDL2(cur)
|
||||
cur.execute('select name from %sbarflys' % self.table_prefix)
|
||||
rows = cur.fetchall()
|
||||
self.assertTrue(cur.rowcount in (-1,0))
|
||||
self.assertEqual(len(rows),0,
|
||||
'cursor.fetchall should return an empty list if '
|
||||
'a select query returns no rows'
|
||||
)
|
||||
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_fetchone(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
|
||||
# cursor.fetchone should raise an Error if called before
|
||||
# executing a select-type query
|
||||
self.assertRaises(self.driver.Error,cur.fetchone)
|
||||
|
||||
# cursor.fetchone should raise an Error if called after
|
||||
# executing a query that cannnot return rows
|
||||
self.executeDDL1(cur)
|
||||
## self.assertRaises(self.driver.Error,cur.fetchone)
|
||||
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
self.assertEqual(cur.fetchone(),None,
|
||||
'cursor.fetchone should return None if a query retrieves '
|
||||
'no rows'
|
||||
)
|
||||
self.assertTrue(cur.rowcount in (-1,0))
|
||||
|
||||
# cursor.fetchone should raise an Error if called after
|
||||
# executing a query that cannnot return rows
|
||||
cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
|
||||
self.table_prefix
|
||||
))
|
||||
## self.assertRaises(self.driver.Error,cur.fetchone)
|
||||
|
||||
cur.execute('select name from %sbooze' % self.table_prefix)
|
||||
r = cur.fetchone()
|
||||
self.assertEqual(len(r),1,
|
||||
'cursor.fetchone should have retrieved a single row'
|
||||
)
|
||||
self.assertEqual(r[0],'Victoria Bitter',
|
||||
'cursor.fetchone retrieved incorrect data'
|
||||
)
|
||||
## self.assertEqual(cur.fetchone(),None,
|
||||
## 'cursor.fetchone should return None if no more rows available'
|
||||
## )
|
||||
self.assertTrue(cur.rowcount in (-1,1))
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
# Same complaint as for fetchall and fetchone
|
||||
def test_rowcount(self):
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
self.executeDDL1(cur)
|
||||
## self.assertEqual(cur.rowcount,-1,
|
||||
## 'cursor.rowcount should be -1 after executing no-result '
|
||||
## 'statements'
|
||||
## )
|
||||
cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
|
||||
self.table_prefix
|
||||
))
|
||||
## self.assertTrue(cur.rowcount in (-1,1),
|
||||
## 'cursor.rowcount should == number or rows inserted, or '
|
||||
## 'set to -1 after executing an insert statement'
|
||||
## )
|
||||
cur.execute("select name from %sbooze" % self.table_prefix)
|
||||
self.assertTrue(cur.rowcount in (-1,1),
|
||||
'cursor.rowcount should == number of rows returned, or '
|
||||
'set to -1 after executing a select statement'
|
||||
)
|
||||
self.executeDDL2(cur)
|
||||
## self.assertEqual(cur.rowcount,-1,
|
||||
## 'cursor.rowcount not being reset to -1 after executing '
|
||||
## 'no-result statements'
|
||||
## )
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
def test_callproc(self):
|
||||
pass # performed in test_MySQL_capabilities
|
||||
|
||||
def help_nextset_setUp(self,cur):
|
||||
''' Should create a procedure called deleteme
|
||||
that returns two result sets, first the
|
||||
number of rows in booze then "name from booze"
|
||||
'''
|
||||
sql="""
|
||||
create procedure deleteme()
|
||||
begin
|
||||
select count(*) from %(tp)sbooze;
|
||||
select name from %(tp)sbooze;
|
||||
end
|
||||
""" % dict(tp=self.table_prefix)
|
||||
cur.execute(sql)
|
||||
|
||||
def help_nextset_tearDown(self,cur):
|
||||
'If cleaning up is needed after nextSetTest'
|
||||
cur.execute("drop procedure deleteme")
|
||||
|
||||
def test_nextset(self):
|
||||
from warnings import warn
|
||||
con = self._connect()
|
||||
try:
|
||||
cur = con.cursor()
|
||||
if not hasattr(cur,'nextset'):
|
||||
return
|
||||
|
||||
try:
|
||||
self.executeDDL1(cur)
|
||||
sql=self._populate()
|
||||
for sql in self._populate():
|
||||
cur.execute(sql)
|
||||
|
||||
self.help_nextset_setUp(cur)
|
||||
|
||||
cur.callproc('deleteme')
|
||||
numberofrows=cur.fetchone()
|
||||
assert numberofrows[0]== len(self.samples)
|
||||
assert cur.nextset()
|
||||
names=cur.fetchall()
|
||||
assert len(names) == len(self.samples)
|
||||
s=cur.nextset()
|
||||
if s:
|
||||
empty = cur.fetchall()
|
||||
self.assertEquals(len(empty), 0,
|
||||
"non-empty result set after other result sets")
|
||||
#warn("Incompatibility: MySQL returns an empty result set for the CALL itself",
|
||||
# Warning)
|
||||
#assert s == None,'No more return sets, should return None'
|
||||
finally:
|
||||
self.help_nextset_tearDown(cur)
|
||||
|
||||
finally:
|
||||
con.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
@ -1,90 +0,0 @@
|
||||
import unittest
|
||||
|
||||
import pymysql
|
||||
_mysql = pymysql
|
||||
from pymysql.constants import FIELD_TYPE
|
||||
from pymysql.tests import base
|
||||
|
||||
|
||||
class TestDBAPISet(unittest.TestCase):
|
||||
def test_set_equality(self):
|
||||
self.assertTrue(pymysql.STRING == pymysql.STRING)
|
||||
|
||||
def test_set_inequality(self):
|
||||
self.assertTrue(pymysql.STRING != pymysql.NUMBER)
|
||||
|
||||
def test_set_equality_membership(self):
|
||||
self.assertTrue(FIELD_TYPE.VAR_STRING == pymysql.STRING)
|
||||
|
||||
def test_set_inequality_membership(self):
|
||||
self.assertTrue(FIELD_TYPE.DATE != pymysql.STRING)
|
||||
|
||||
|
||||
class CoreModule(unittest.TestCase):
|
||||
"""Core _mysql module features."""
|
||||
|
||||
def test_NULL(self):
|
||||
"""Should have a NULL constant."""
|
||||
self.assertEqual(_mysql.NULL, 'NULL')
|
||||
|
||||
def test_version(self):
|
||||
"""Version information sanity."""
|
||||
self.assertTrue(isinstance(_mysql.__version__, str))
|
||||
|
||||
self.assertTrue(isinstance(_mysql.version_info, tuple))
|
||||
self.assertEqual(len(_mysql.version_info), 5)
|
||||
|
||||
def test_client_info(self):
|
||||
self.assertTrue(isinstance(_mysql.get_client_info(), str))
|
||||
|
||||
def test_thread_safe(self):
|
||||
self.assertTrue(isinstance(_mysql.thread_safe(), int))
|
||||
|
||||
|
||||
class CoreAPI(unittest.TestCase):
|
||||
"""Test _mysql interaction internals."""
|
||||
|
||||
def setUp(self):
|
||||
kwargs = base.PyMySQLTestCase.databases[0].copy()
|
||||
kwargs["read_default_file"] = "~/.my.cnf"
|
||||
self.conn = _mysql.connect(**kwargs)
|
||||
|
||||
def tearDown(self):
|
||||
self.conn.close()
|
||||
|
||||
def test_thread_id(self):
|
||||
tid = self.conn.thread_id()
|
||||
self.assertTrue(isinstance(tid, int),
|
||||
"thread_id didn't return an int.")
|
||||
|
||||
self.assertRaises(TypeError, self.conn.thread_id, ('evil',),
|
||||
"thread_id shouldn't accept arguments.")
|
||||
|
||||
def test_affected_rows(self):
|
||||
self.assertEquals(self.conn.affected_rows(), 0,
|
||||
"Should return 0 before we do anything.")
|
||||
|
||||
|
||||
#def test_debug(self):
|
||||
## FIXME Only actually tests if you lack SUPER
|
||||
#self.assertRaises(pymysql.OperationalError,
|
||||
#self.conn.dump_debug_info)
|
||||
|
||||
def test_charset_name(self):
|
||||
self.assertTrue(isinstance(self.conn.character_set_name(), str),
|
||||
"Should return a string.")
|
||||
|
||||
def test_host_info(self):
|
||||
self.assertTrue(isinstance(self.conn.get_host_info(), str),
|
||||
"Should return a string.")
|
||||
|
||||
def test_proto_info(self):
|
||||
self.assertTrue(isinstance(self.conn.get_proto_info(), int),
|
||||
"Should return an int.")
|
||||
|
||||
def test_server_info(self):
|
||||
self.assertTrue(isinstance(self.conn.get_server_info(), basestring),
|
||||
"Should return an str.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
@ -1,16 +0,0 @@
|
||||
from time import localtime
|
||||
from datetime import date, datetime, time, timedelta
|
||||
|
||||
Date = date
|
||||
Time = time
|
||||
TimeDelta = timedelta
|
||||
Timestamp = datetime
|
||||
|
||||
def DateFromTicks(ticks):
|
||||
return date(*localtime(ticks)[:3])
|
||||
|
||||
def TimeFromTicks(ticks):
|
||||
return time(*localtime(ticks)[3:6])
|
||||
|
||||
def TimestampFromTicks(ticks):
|
||||
return datetime(*localtime(ticks)[:6])
|
||||
@ -1,19 +0,0 @@
|
||||
import struct
|
||||
|
||||
def byte2int(b):
|
||||
if isinstance(b, int):
|
||||
return b
|
||||
else:
|
||||
return struct.unpack("!B", b)[0]
|
||||
|
||||
def int2byte(i):
|
||||
return struct.pack("!B", i)
|
||||
|
||||
def join_bytes(bs):
|
||||
if len(bs) == 0:
|
||||
return ""
|
||||
else:
|
||||
rv = bs[0]
|
||||
for b in bs[1:]:
|
||||
rv += b
|
||||
return rv
|
||||
@ -0,0 +1,18 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
@ -1,3 +1,21 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
[globals]
|
||||
#global settings in cloudstack
|
||||
expunge.delay=60
|
||||
|
||||
@ -1,3 +1,22 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
|
||||
#!/usr/bin/env python
|
||||
try:
|
||||
import unittest2 as unittest
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
@ -1,3 +1,21 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
[globals]
|
||||
#global settings in cloudstack
|
||||
expunge.delay=60
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
@ -1,3 +1,22 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
|
||||
{
|
||||
"zones": [
|
||||
{
|
||||
|
||||
@ -1,3 +1,21 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
[globals]
|
||||
expunge.delay=60
|
||||
expunge.interval=60
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
@ -34,9 +34,10 @@ setup(name="Marvin",
|
||||
long_description="Marvin is the cloudstack testclient written around the python unittest framework",
|
||||
platforms=("Any",),
|
||||
url="http://jenkins.cloudstack.org:8080/job/marvin",
|
||||
packages=["marvin", "marvin.cloudstackAPI", "marvin.sandbox", "marvin.sandbox.advanced", "marvin.sandbox.basic", "marvin.pymysql", "marvin.pymysql.constants", "marvin.pymysql.tests"],
|
||||
packages=["marvin", "marvin.cloudstackAPI", "marvin.sandbox", "marvin.sandbox.advanced", "marvin.sandbox.basic"],
|
||||
license="LICENSE.txt",
|
||||
install_requires=[
|
||||
"pymysql",
|
||||
"paramiko",
|
||||
"nose",
|
||||
"unittest-xml-reporting"
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2007 Mockito contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@ -1,11 +0,0 @@
|
||||
Mockito license - MIT.
|
||||
|
||||
Libraries used:
|
||||
|
||||
Cglib - Apache License 2.0
|
||||
ASM - BSD license
|
||||
|
||||
Mockito all distribution:
|
||||
|
||||
Objenesis - MIT license
|
||||
Hamcrest - BSD license
|
||||
@ -1,11 +0,0 @@
|
||||
To use mockito either:
|
||||
|
||||
- put 'mockito-all-x.jar' on your path (runtime dependencies: Objenesis and Hamcrest-core are expanded into single, 'all' jar)
|
||||
|
||||
- or put all jars from 'separate-jars' folder on your path. You need mockito-core, objenesis and hamcrest-core.
|
||||
Instead of hamcrest-core you might use latest junit that includes hamcrest-core in the jar.
|
||||
|
||||
All jars (even the dependencies) contain java source inside.
|
||||
However, for convenience of some IDEs there are also source distributions in 'sources' folder
|
||||
|
||||
springsource distributions of hamcrest/objenesis are used only because they are OSGI-fied
|
||||
@ -1,506 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:27 CEST 2010 -->
|
||||
<TITLE>
|
||||
All Classes (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white">
|
||||
<FONT size="+1" CLASS="FrameHeadingFont">
|
||||
<B>All Classes</B></FONT>
|
||||
<BR>
|
||||
|
||||
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
|
||||
<TR>
|
||||
<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/mockito/internal/creation/AbstractMockitoMethodProxy.html" title="class in org.mockito.internal.creation" target="classFrame">AbstractMockitoMethodProxy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/AccessibilityChanger.html" title="class in org.mockito.internal.util.reflection" target="classFrame">AccessibilityChanger</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/AdditionalMatchers.html" title="class in org.mockito" target="classFrame">AdditionalMatchers</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/AllInvocationsFinder.html" title="class in org.mockito.internal.invocation" target="classFrame">AllInvocationsFinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/And.html" title="class in org.mockito.internal.matchers" target="classFrame">And</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/configuration/AnnotationEngine.html" title="interface in org.mockito.configuration" target="classFrame"><I>AnnotationEngine</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing" target="classFrame"><I>Answer</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/AnswerReturnValuesAdapter.html" title="class in org.mockito.internal.stubbing.answers" target="classFrame">AnswerReturnValuesAdapter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/Answers.html" title="enum in org.mockito" target="classFrame">Answers</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/Answers.html" title="enum in org.mockito.internal.stubbing.defaultanswers" target="classFrame">Answers</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/AnswersValidator.html" title="class in org.mockito.internal.stubbing.answers" target="classFrame">AnswersValidator</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Any.html" title="class in org.mockito.internal.matchers" target="classFrame">Any</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/AnyVararg.html" title="class in org.mockito.internal.matchers" target="classFrame">AnyVararg</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/ArgumentCaptor.html" title="class in org.mockito" target="classFrame">ArgumentCaptor</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/ArgumentMatcher.html" title="class in org.mockito" target="classFrame">ArgumentMatcher</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/ArgumentMatcherStorage.html" title="interface in org.mockito.internal.progress" target="classFrame"><I>ArgumentMatcherStorage</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/ArgumentMatcherStorageImpl.html" title="class in org.mockito.internal.progress" target="classFrame">ArgumentMatcherStorageImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/argumentmatching/ArgumentMatchingTool.html" title="class in org.mockito.internal.verification.argumentmatching" target="classFrame">ArgumentMatchingTool</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/ArgumentsAreDifferent.html" title="class in org.mockito.exceptions.verification" target="classFrame">ArgumentsAreDifferent</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/junit/ArgumentsAreDifferent.html" title="class in org.mockito.exceptions.verification.junit" target="classFrame">ArgumentsAreDifferent</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/ArgumentsComparator.html" title="class in org.mockito.internal.invocation" target="classFrame">ArgumentsComparator</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/ArrayEquals.html" title="class in org.mockito.internal.matchers" target="classFrame">ArrayEquals</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/ArrayUtils.html" title="class in org.mockito.internal.util" target="classFrame">ArrayUtils</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/AtLeast.html" title="class in org.mockito.internal.verification" target="classFrame">AtLeast</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/AtLeastDiscrepancy.html" title="class in org.mockito.internal.verification.checkers" target="classFrame">AtLeastDiscrepancy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/AtLeastXNumberOfInvocationsChecker.html" title="class in org.mockito.internal.verification.checkers" target="classFrame">AtLeastXNumberOfInvocationsChecker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/AtLeastXNumberOfInvocationsInOrderChecker.html" title="class in org.mockito.internal.verification.checkers" target="classFrame">AtLeastXNumberOfInvocationsInOrderChecker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/AtMost.html" title="class in org.mockito.internal.verification" target="classFrame">AtMost</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/BaseStubbing.html" title="class in org.mockito.internal.stubbing" target="classFrame">BaseStubbing</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/BDDMockito.html" title="class in org.mockito" target="classFrame">BDDMockito</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito" target="classFrame"><I>BDDMockito.BDDMyOngoingStubbing</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="class in org.mockito" target="classFrame">BDDMockito.BDDOngoingStubbingImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito" target="classFrame"><I>BDDMockito.BDDStubber</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/BDDMockito.BDDStubberImpl.html" title="class in org.mockito" target="classFrame">BDDMockito.BDDStubberImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/CallsRealMethods.html" title="class in org.mockito.internal.stubbing.answers" target="classFrame">CallsRealMethods</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/Captor.html" title="annotation in org.mockito" target="classFrame">Captor</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/CapturesArgumensFromInvocation.html" title="interface in org.mockito.internal.invocation" target="classFrame"><I>CapturesArgumensFromInvocation</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/CapturesArguments.html" title="interface in org.mockito.internal.matchers" target="classFrame"><I>CapturesArguments</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/CapturingMatcher.html" title="class in org.mockito.internal.matchers" target="classFrame">CapturingMatcher</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/cglib/CGLIBHacker.html" title="class in org.mockito.internal.creation.cglib" target="classFrame">CGLIBHacker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/realmethod/CGLIBProxyRealMethod.html" title="class in org.mockito.internal.invocation.realmethod" target="classFrame">CGLIBProxyRealMethod</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/jmock/ClassImposterizer.html" title="class in org.mockito.internal.creation.jmock" target="classFrame">ClassImposterizer</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/jmock/ClassImposterizer.ClassWithSuperclassToWorkAroundCglibBug.html" title="class in org.mockito.internal.creation.jmock" target="classFrame">ClassImposterizer.ClassWithSuperclassToWorkAroundCglibBug</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/ClassNameFinder.html" title="class in org.mockito.internal.creation" target="classFrame">ClassNameFinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/configuration/ClassPathLoader.html" title="class in org.mockito.internal.configuration" target="classFrame">ClassPathLoader</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/ClonesArguments.html" title="class in org.mockito.internal.stubbing.answers" target="classFrame">ClonesArguments</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/listeners/CollectCreatedMocks.html" title="class in org.mockito.internal.listeners" target="classFrame">CollectCreatedMocks</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/CompareEqual.html" title="class in org.mockito.internal.matchers" target="classFrame">CompareEqual</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/CompareTo.html" title="class in org.mockito.internal.matchers" target="classFrame">CompareTo</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/exceptions/base/ConditionalStackTraceFilter.html" title="class in org.mockito.internal.exceptions.base" target="classFrame">ConditionalStackTraceFilter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/ConsecutiveStubbing.html" title="class in org.mockito.internal.stubbing" target="classFrame">ConsecutiveStubbing</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/ConsoleMockitoLogger.html" title="class in org.mockito.internal.util" target="classFrame">ConsoleMockitoLogger</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/runners/ConsoleSpammingMockitoJUnitRunner.html" title="class in org.mockito.runners" target="classFrame">ConsoleSpammingMockitoJUnitRunner</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Contains.html" title="class in org.mockito.internal.matchers" target="classFrame">Contains</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/ContainsExtraTypeInformation.html" title="interface in org.mockito.internal.matchers" target="classFrame"><I>ContainsExtraTypeInformation</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/Decamelizer.html" title="class in org.mockito.internal.util" target="classFrame">Decamelizer</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/configuration/DefaultAnnotationEngine.html" title="class in org.mockito.internal.configuration" target="classFrame">DefaultAnnotationEngine</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/configuration/DefaultInjectionEngine.html" title="class in org.mockito.internal.configuration" target="classFrame">DefaultInjectionEngine</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/configuration/DefaultMockitoConfiguration.html" title="class in org.mockito.configuration" target="classFrame">DefaultMockitoConfiguration</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/DelegatingMethod.html" title="class in org.mockito.internal.creation" target="classFrame">DelegatingMethod</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/DelegatingMockitoMethodProxy.html" title="class in org.mockito.internal.creation" target="classFrame">DelegatingMockitoMethodProxy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/stubbing/DeprecatedOngoingStubbing.html" title="interface in org.mockito.stubbing" target="classFrame"><I>DeprecatedOngoingStubbing</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/Discrepancy.html" title="class in org.mockito.exceptions" target="classFrame">Discrepancy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/DoesNothing.html" title="class in org.mockito.internal.stubbing.answers" target="classFrame">DoesNothing</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/EndsWith.html" title="class in org.mockito.internal.matchers" target="classFrame">EndsWith</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Equality.html" title="class in org.mockito.internal.matchers" target="classFrame">Equality</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Equals.html" title="class in org.mockito.internal.matchers" target="classFrame">Equals</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/EqualsWithDelta.html" title="class in org.mockito.internal.matchers" target="classFrame">EqualsWithDelta</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/exceptions/ExceptionIncludingMockitoWarnings.html" title="class in org.mockito.internal.exceptions" target="classFrame">ExceptionIncludingMockitoWarnings</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/FieldCopier.html" title="class in org.mockito.internal.util.reflection" target="classFrame">FieldCopier</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/FieldReader.html" title="class in org.mockito.internal.util.reflection" target="classFrame">FieldReader</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/FieldSetter.html" title="class in org.mockito.internal.util.reflection" target="classFrame">FieldSetter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/realmethod/FilteredCGLIBProxyRealMethod.html" title="class in org.mockito.internal.invocation.realmethod" target="classFrame">FilteredCGLIBProxyRealMethod</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Find.html" title="class in org.mockito.internal.matchers" target="classFrame">Find</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/FindingsListener.html" title="interface in org.mockito.internal.debugging" target="classFrame"><I>FindingsListener</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/util/FrameworkUsageValidator.html" title="class in org.mockito.internal.runners.util" target="classFrame">FrameworkUsageValidator</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/GenericMaster.html" title="class in org.mockito.internal.util.reflection" target="classFrame">GenericMaster</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/configuration/GlobalConfiguration.html" title="class in org.mockito.internal.configuration" target="classFrame">GlobalConfiguration</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/GloballyConfiguredAnswer.html" title="class in org.mockito.internal.stubbing.defaultanswers" target="classFrame">GloballyConfiguredAnswer</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/GreaterOrEqual.html" title="class in org.mockito.internal.matchers" target="classFrame">GreaterOrEqual</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/GreaterThan.html" title="class in org.mockito.internal.matchers" target="classFrame">GreaterThan</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/HandyReturnValues.html" title="class in org.mockito.internal.progress" target="classFrame">HandyReturnValues</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/realmethod/HasCGLIBMethodProxy.html" title="interface in org.mockito.internal.invocation.realmethod" target="classFrame"><I>HasCGLIBMethodProxy</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/IdentitySet.html" title="class in org.mockito.internal.util" target="classFrame">IdentitySet</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/configuration/IMockitoConfiguration.html" title="interface in org.mockito.configuration" target="classFrame"><I>IMockitoConfiguration</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/configuration/InjectingAnnotationEngine.html" title="class in org.mockito.internal.configuration" target="classFrame">InjectingAnnotationEngine</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/InjectMocks.html" title="annotation in org.mockito" target="classFrame">InjectMocks</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/InOrder.html" title="interface in org.mockito" target="classFrame"><I>InOrder</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/api/InOrderContext.html" title="interface in org.mockito.internal.verification.api" target="classFrame"><I>InOrderContext</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/InOrderContextImpl.html" title="class in org.mockito.internal.verification" target="classFrame">InOrderContextImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/InOrderImpl.html" title="class in org.mockito.internal" target="classFrame">InOrderImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/InOrderWrapper.html" title="class in org.mockito.internal.verification" target="classFrame">InOrderWrapper</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/InstanceOf.html" title="class in org.mockito.internal.matchers" target="classFrame">InstanceOf</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/InvalidUseOfMatchersException.html" title="class in org.mockito.exceptions.misusing" target="classFrame">InvalidUseOfMatchersException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/Invocation.html" title="class in org.mockito.internal.invocation" target="classFrame">Invocation</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/InvocationContainer.html" title="interface in org.mockito.internal.stubbing" target="classFrame"><I>InvocationContainer</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/InvocationContainerImpl.html" title="class in org.mockito.internal.stubbing" target="classFrame">InvocationContainerImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/InvocationMarker.html" title="class in org.mockito.internal.invocation" target="classFrame">InvocationMarker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/InvocationMatcher.html" title="class in org.mockito.internal.invocation" target="classFrame">InvocationMatcher</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/invocation/InvocationOnMock.html" title="interface in org.mockito.invocation" target="classFrame"><I>InvocationOnMock</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/InvocationsFinder.html" title="class in org.mockito.internal.invocation" target="classFrame">InvocationsFinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/IOngoingStubbing.html" title="interface in org.mockito.internal.progress" target="classFrame"><I>IOngoingStubbing</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/JUnit44RunnerImpl.html" title="class in org.mockito.internal.runners" target="classFrame">JUnit44RunnerImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/JUnit45AndHigherRunnerImpl.html" title="class in org.mockito.internal.runners" target="classFrame">JUnit45AndHigherRunnerImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/junit/JUnitFailureHacker.html" title="class in org.mockito.internal.util.junit" target="classFrame">JUnitFailureHacker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/junit/JUnitTool.html" title="class in org.mockito.exceptions.verification.junit" target="classFrame">JUnitTool</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/LenientCopyTool.html" title="class in org.mockito.internal.util.reflection" target="classFrame">LenientCopyTool</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/LessOrEqual.html" title="class in org.mockito.internal.matchers" target="classFrame">LessOrEqual</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/LessThan.html" title="class in org.mockito.internal.matchers" target="classFrame">LessThan</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/ListUtil.html" title="class in org.mockito.internal.util" target="classFrame">ListUtil</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/ListUtil.Filter.html" title="interface in org.mockito.internal.util" target="classFrame"><I>ListUtil.Filter</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/Localized.html" title="class in org.mockito.internal.debugging" target="classFrame">Localized</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/LocalizedMatcher.html" title="class in org.mockito.internal.matchers" target="classFrame">LocalizedMatcher</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/Location.html" title="class in org.mockito.internal.debugging" target="classFrame">Location</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/LoggingListener.html" title="class in org.mockito.internal.debugging" target="classFrame">LoggingListener</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/MatcherDecorator.html" title="interface in org.mockito.internal.matchers" target="classFrame"><I>MatcherDecorator</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/Matchers.html" title="class in org.mockito" target="classFrame">Matchers</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/MatchersBinder.html" title="class in org.mockito.internal.invocation" target="classFrame">MatchersBinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/MatchersPrinter.html" title="class in org.mockito.internal.matchers" target="classFrame">MatchersPrinter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Matches.html" title="class in org.mockito.internal.matchers" target="classFrame">Matches</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/MethodInterceptorFilter.html" title="class in org.mockito.internal.creation" target="classFrame">MethodInterceptorFilter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/MissingInvocationChecker.html" title="class in org.mockito.internal.verification.checkers" target="classFrame">MissingInvocationChecker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/MissingInvocationInOrderChecker.html" title="class in org.mockito.internal.verification.checkers" target="classFrame">MissingInvocationInOrderChecker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/MissingMethodInvocationException.html" title="class in org.mockito.exceptions.misusing" target="classFrame">MissingMethodInvocationException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/Mock.html" title="annotation in org.mockito" target="classFrame">Mock</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/MockAwareVerificationMode.html" title="class in org.mockito.internal.verification" target="classFrame">MockAwareVerificationMode</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/MockCreationValidator.html" title="class in org.mockito.internal.util" target="classFrame">MockCreationValidator</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/MockHandler.html" title="class in org.mockito.internal" target="classFrame">MockHandler</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/MockHandlerInterface.html" title="interface in org.mockito.internal" target="classFrame"><I>MockHandlerInterface</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/MockingProgress.html" title="interface in org.mockito.internal.progress" target="classFrame"><I>MockingProgress</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/MockingProgressImpl.html" title="class in org.mockito.internal.progress" target="classFrame">MockingProgressImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/listeners/MockingProgressListener.html" title="interface in org.mockito.internal.listeners" target="classFrame"><I>MockingProgressListener</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/listeners/MockingStartedListener.html" title="interface in org.mockito.internal.listeners" target="classFrame"><I>MockingStartedListener</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/Mockito.html" title="class in org.mockito" target="classFrame">Mockito</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/MockitoAnnotations.html" title="class in org.mockito" target="classFrame">MockitoAnnotations</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/MockitoAnnotations.Mock.html" title="annotation in org.mockito" target="classFrame">MockitoAnnotations.Mock</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/base/MockitoAssertionError.html" title="class in org.mockito.exceptions.base" target="classFrame">MockitoAssertionError</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/MockitoConfigurationException.html" title="class in org.mockito.exceptions.misusing" target="classFrame">MockitoConfigurationException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/MockitoCore.html" title="class in org.mockito.internal" target="classFrame">MockitoCore</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/MockitoDebugger.html" title="interface in org.mockito" target="classFrame"><I>MockitoDebugger</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/MockitoDebuggerImpl.html" title="class in org.mockito.internal.debugging" target="classFrame">MockitoDebuggerImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/base/MockitoException.html" title="class in org.mockito.exceptions.base" target="classFrame">MockitoException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/MockitoInvocationHandler.html" title="interface in org.mockito.internal" target="classFrame"><I>MockitoInvocationHandler</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/runners/MockitoJUnit44Runner.html" title="class in org.mockito.runners" target="classFrame">MockitoJUnit44Runner</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/runners/MockitoJUnitRunner.html" title="class in org.mockito.runners" target="classFrame">MockitoJUnitRunner</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/MockitoLogger.html" title="interface in org.mockito.internal.util" target="classFrame"><I>MockitoLogger</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/MockitoMethod.html" title="interface in org.mockito.internal.invocation" target="classFrame"><I>MockitoMethod</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/MockitoMethodProxy.html" title="interface in org.mockito.internal.creation" target="classFrame"><I>MockitoMethodProxy</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/cglib/MockitoNamingPolicy.html" title="class in org.mockito.internal.creation.cglib" target="classFrame">MockitoNamingPolicy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/MockName.html" title="class in org.mockito.internal.util" target="classFrame">MockName</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/MockSettings.html" title="interface in org.mockito" target="classFrame"><I>MockSettings</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/MockSettingsImpl.html" title="class in org.mockito.internal.creation" target="classFrame">MockSettingsImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/MockUtil.html" title="class in org.mockito.internal.util" target="classFrame">MockUtil</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/NeverWantedButInvoked.html" title="class in org.mockito.exceptions.verification" target="classFrame">NeverWantedButInvoked</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/NoInteractionsWanted.html" title="class in org.mockito.exceptions.verification" target="classFrame">NoInteractionsWanted</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/NoMoreInteractions.html" title="class in org.mockito.internal.verification" target="classFrame">NoMoreInteractions</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Not.html" title="class in org.mockito.internal.matchers" target="classFrame">Not</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/NotAMockException.html" title="class in org.mockito.exceptions.misusing" target="classFrame">NotAMockException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/NotNull.html" title="class in org.mockito.internal.matchers" target="classFrame">NotNull</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Null.html" title="class in org.mockito.internal.matchers" target="classFrame">Null</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/NullInsteadOfMockException.html" title="class in org.mockito.exceptions.misusing" target="classFrame">NullInsteadOfMockException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/NumberOfInvocationsChecker.html" title="class in org.mockito.internal.verification.checkers" target="classFrame">NumberOfInvocationsChecker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/NumberOfInvocationsInOrderChecker.html" title="class in org.mockito.internal.verification.checkers" target="classFrame">NumberOfInvocationsInOrderChecker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/ObjectMethodsGuru.html" title="class in org.mockito.internal.util" target="classFrame">ObjectMethodsGuru</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/stubbing/OngoingStubbing.html" title="interface in org.mockito.stubbing" target="classFrame"><I>OngoingStubbing</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/OngoingStubbingImpl.html" title="class in org.mockito.internal.stubbing" target="classFrame">OngoingStubbingImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/Only.html" title="class in org.mockito.internal.verification" target="classFrame">Only</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Or.html" title="class in org.mockito.internal.matchers" target="classFrame">Or</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/Pluralizer.html" title="class in org.mockito.exceptions" target="classFrame">Pluralizer</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/Primitives.html" title="class in org.mockito.internal.util" target="classFrame">Primitives</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/PrintableInvocation.html" title="interface in org.mockito.exceptions" target="classFrame"><I>PrintableInvocation</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/reporting/PrintingFriendlyInvocation.html" title="interface in org.mockito.internal.reporting" target="classFrame"><I>PrintingFriendlyInvocation</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/reporting/PrintSettings.html" title="class in org.mockito.internal.reporting" target="classFrame">PrintSettings</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/realmethod/RealMethod.html" title="interface in org.mockito.internal.invocation.realmethod" target="classFrame"><I>RealMethod</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/apachecommons/ReflectionEquals.html" title="class in org.mockito.internal.matchers.apachecommons" target="classFrame">ReflectionEquals</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/RegisteredInvocations.html" title="class in org.mockito.internal.verification" target="classFrame">RegisteredInvocations</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/RemoveFirstLine.html" title="class in org.mockito.internal.util" target="classFrame">RemoveFirstLine</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/Reporter.html" title="class in org.mockito.exceptions" target="classFrame">Reporter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/Returns.html" title="class in org.mockito.internal.stubbing.answers" target="classFrame">Returns</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/ReturnsDeepStubs.html" title="class in org.mockito.internal.stubbing.defaultanswers" target="classFrame">ReturnsDeepStubs</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/stubbing/answers/ReturnsElementsOf.html" title="class in org.mockito.stubbing.answers" target="classFrame">ReturnsElementsOf</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/ReturnsEmptyValues.html" title="class in org.mockito.internal.stubbing.defaultanswers" target="classFrame">ReturnsEmptyValues</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/ReturnsMocks.html" title="class in org.mockito.internal.stubbing.defaultanswers" target="classFrame">ReturnsMocks</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/ReturnsMoreEmptyValues.html" title="class in org.mockito.internal.stubbing.defaultanswers" target="classFrame">ReturnsMoreEmptyValues</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/ReturnsSmartNulls.html" title="class in org.mockito.internal.stubbing.defaultanswers" target="classFrame">ReturnsSmartNulls</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/ReturnValues.html" title="interface in org.mockito" target="classFrame"><I>ReturnValues</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/RunnerFactory.html" title="class in org.mockito.internal.runners" target="classFrame">RunnerFactory</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/RunnerImpl.html" title="interface in org.mockito.internal.runners" target="classFrame"><I>RunnerImpl</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/util/RunnerProvider.html" title="class in org.mockito.internal.runners.util" target="classFrame">RunnerProvider</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Same.html" title="class in org.mockito.internal.matchers" target="classFrame">Same</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/exceptions/util/ScenarioPrinter.html" title="class in org.mockito.internal.exceptions.util" target="classFrame">ScenarioPrinter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/jmock/SearchingClassLoader.html" title="class in org.mockito.internal.creation.jmock" target="classFrame">SearchingClassLoader</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/SequenceNumber.html" title="class in org.mockito.internal.progress" target="classFrame">SequenceNumber</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/SerializableMethod.html" title="class in org.mockito.internal.invocation" target="classFrame">SerializableMethod</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/SerializableMockitoMethodProxy.html" title="class in org.mockito.internal.creation" target="classFrame">SerializableMockitoMethodProxy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/jmock/SerializableNoOp.html" title="class in org.mockito.internal.creation.jmock" target="classFrame">SerializableNoOp</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/SimpleMockitoLogger.html" title="class in org.mockito.internal.util" target="classFrame">SimpleMockitoLogger</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/SmartNullPointerException.html" title="class in org.mockito.exceptions.verification" target="classFrame">SmartNullPointerException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/reporting/SmartPrinter.html" title="class in org.mockito.internal.reporting" target="classFrame">SmartPrinter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/Spy.html" title="annotation in org.mockito" target="classFrame">Spy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/configuration/SpyAnnotationEngine.html" title="class in org.mockito.internal.configuration" target="classFrame">SpyAnnotationEngine</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/exceptions/base/StackTraceFilter.html" title="class in org.mockito.internal.exceptions.base" target="classFrame">StackTraceFilter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/StartsWith.html" title="class in org.mockito.internal.matchers" target="classFrame">StartsWith</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/StringJoiner.html" title="class in org.mockito.internal.util" target="classFrame">StringJoiner</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/StubbedInvocationMatcher.html" title="class in org.mockito.internal.stubbing" target="classFrame">StubbedInvocationMatcher</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/stubbing/Stubber.html" title="interface in org.mockito.stubbing" target="classFrame"><I>Stubber</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/StubberImpl.html" title="class in org.mockito.internal.stubbing" target="classFrame">StubberImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/StubInfo.html" title="class in org.mockito.internal.invocation" target="classFrame">StubInfo</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/util/TestMethodsFinder.html" title="class in org.mockito.internal.runners.util" target="classFrame">TestMethodsFinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/ThreadSafeMockingProgress.html" title="class in org.mockito.internal.progress" target="classFrame">ThreadSafeMockingProgress</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/ThrowsException.html" title="class in org.mockito.internal.stubbing.answers" target="classFrame">ThrowsException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/verification/Timeout.html" title="class in org.mockito.verification" target="classFrame">Timeout</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/Times.html" title="class in org.mockito.internal.verification" target="classFrame">Times</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/TooLittleActualInvocations.html" title="class in org.mockito.exceptions.verification" target="classFrame">TooLittleActualInvocations</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/TooManyActualInvocations.html" title="class in org.mockito.exceptions.verification" target="classFrame">TooManyActualInvocations</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/UnfinishedStubbingException.html" title="class in org.mockito.exceptions.misusing" target="classFrame">UnfinishedStubbingException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/UnfinishedVerificationException.html" title="class in org.mockito.exceptions.misusing" target="classFrame">UnfinishedVerificationException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/UnusedStubsFinder.html" title="class in org.mockito.internal.invocation" target="classFrame">UnusedStubsFinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/VarargMatcher.html" title="interface in org.mockito.internal.matchers" target="classFrame"><I>VarargMatcher</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/runners/VerboseMockitoJUnitRunner.html" title="class in org.mockito.runners" target="classFrame">VerboseMockitoJUnitRunner</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/exceptions/VerificationAwareInvocation.html" title="interface in org.mockito.internal.exceptions" target="classFrame"><I>VerificationAwareInvocation</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/api/VerificationData.html" title="interface in org.mockito.internal.verification.api" target="classFrame"><I>VerificationData</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/VerificationDataImpl.html" title="class in org.mockito.internal.verification" target="classFrame">VerificationDataImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/api/VerificationDataInOrder.html" title="interface in org.mockito.internal.verification.api" target="classFrame"><I>VerificationDataInOrder</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/api/VerificationDataInOrderImpl.html" title="class in org.mockito.internal.verification.api" target="classFrame">VerificationDataInOrderImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/VerificationInOrderFailure.html" title="class in org.mockito.exceptions.verification" target="classFrame">VerificationInOrderFailure</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/api/VerificationInOrderMode.html" title="interface in org.mockito.internal.verification.api" target="classFrame"><I>VerificationInOrderMode</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/verification/VerificationMode.html" title="interface in org.mockito.verification" target="classFrame"><I>VerificationMode</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/VerificationModeFactory.html" title="class in org.mockito.internal.verification" target="classFrame">VerificationModeFactory</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/verification/VerificationWithTimeout.html" title="interface in org.mockito.verification" target="classFrame"><I>VerificationWithTimeout</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/VerificationWithTimeoutImpl.html" title="class in org.mockito.internal.verification" target="classFrame">VerificationWithTimeoutImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/stubbing/VoidMethodStubbable.html" title="interface in org.mockito.stubbing" target="classFrame"><I>VoidMethodStubbable</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/VoidMethodStubbableImpl.html" title="class in org.mockito.internal.stubbing" target="classFrame">VoidMethodStubbableImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/WantedButNotInvoked.html" title="class in org.mockito.exceptions.verification" target="classFrame">WantedButNotInvoked</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/WarningsCollector.html" title="class in org.mockito.internal.debugging" target="classFrame">WarningsCollector</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/WarningsFinder.html" title="class in org.mockito.internal.debugging" target="classFrame">WarningsFinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/WarningsPrinterImpl.html" title="class in org.mockito.internal.debugging" target="classFrame">WarningsPrinterImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/Whitebox.html" title="class in org.mockito.internal.util.reflection" target="classFrame">Whitebox</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/WrongTypeOfReturnValue.html" title="class in org.mockito.exceptions.misusing" target="classFrame">WrongTypeOfReturnValue</A>
|
||||
<BR>
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,506 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:27 CEST 2010 -->
|
||||
<TITLE>
|
||||
All Classes (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white">
|
||||
<FONT size="+1" CLASS="FrameHeadingFont">
|
||||
<B>All Classes</B></FONT>
|
||||
<BR>
|
||||
|
||||
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
|
||||
<TR>
|
||||
<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/mockito/internal/creation/AbstractMockitoMethodProxy.html" title="class in org.mockito.internal.creation">AbstractMockitoMethodProxy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/AccessibilityChanger.html" title="class in org.mockito.internal.util.reflection">AccessibilityChanger</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/AdditionalMatchers.html" title="class in org.mockito">AdditionalMatchers</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/AllInvocationsFinder.html" title="class in org.mockito.internal.invocation">AllInvocationsFinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/And.html" title="class in org.mockito.internal.matchers">And</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/configuration/AnnotationEngine.html" title="interface in org.mockito.configuration"><I>AnnotationEngine</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing"><I>Answer</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/AnswerReturnValuesAdapter.html" title="class in org.mockito.internal.stubbing.answers">AnswerReturnValuesAdapter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/Answers.html" title="enum in org.mockito">Answers</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/Answers.html" title="enum in org.mockito.internal.stubbing.defaultanswers">Answers</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/AnswersValidator.html" title="class in org.mockito.internal.stubbing.answers">AnswersValidator</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Any.html" title="class in org.mockito.internal.matchers">Any</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/AnyVararg.html" title="class in org.mockito.internal.matchers">AnyVararg</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/ArgumentCaptor.html" title="class in org.mockito">ArgumentCaptor</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/ArgumentMatcher.html" title="class in org.mockito">ArgumentMatcher</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/ArgumentMatcherStorage.html" title="interface in org.mockito.internal.progress"><I>ArgumentMatcherStorage</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/ArgumentMatcherStorageImpl.html" title="class in org.mockito.internal.progress">ArgumentMatcherStorageImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/argumentmatching/ArgumentMatchingTool.html" title="class in org.mockito.internal.verification.argumentmatching">ArgumentMatchingTool</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/ArgumentsAreDifferent.html" title="class in org.mockito.exceptions.verification">ArgumentsAreDifferent</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/junit/ArgumentsAreDifferent.html" title="class in org.mockito.exceptions.verification.junit">ArgumentsAreDifferent</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/ArgumentsComparator.html" title="class in org.mockito.internal.invocation">ArgumentsComparator</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/ArrayEquals.html" title="class in org.mockito.internal.matchers">ArrayEquals</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/ArrayUtils.html" title="class in org.mockito.internal.util">ArrayUtils</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/AtLeast.html" title="class in org.mockito.internal.verification">AtLeast</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/AtLeastDiscrepancy.html" title="class in org.mockito.internal.verification.checkers">AtLeastDiscrepancy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/AtLeastXNumberOfInvocationsChecker.html" title="class in org.mockito.internal.verification.checkers">AtLeastXNumberOfInvocationsChecker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/AtLeastXNumberOfInvocationsInOrderChecker.html" title="class in org.mockito.internal.verification.checkers">AtLeastXNumberOfInvocationsInOrderChecker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/AtMost.html" title="class in org.mockito.internal.verification">AtMost</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/BaseStubbing.html" title="class in org.mockito.internal.stubbing">BaseStubbing</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/BDDMockito.html" title="class in org.mockito">BDDMockito</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito"><I>BDDMockito.BDDMyOngoingStubbing</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="class in org.mockito">BDDMockito.BDDOngoingStubbingImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito"><I>BDDMockito.BDDStubber</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/BDDMockito.BDDStubberImpl.html" title="class in org.mockito">BDDMockito.BDDStubberImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/CallsRealMethods.html" title="class in org.mockito.internal.stubbing.answers">CallsRealMethods</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/Captor.html" title="annotation in org.mockito">Captor</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/CapturesArgumensFromInvocation.html" title="interface in org.mockito.internal.invocation"><I>CapturesArgumensFromInvocation</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/CapturesArguments.html" title="interface in org.mockito.internal.matchers"><I>CapturesArguments</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/CapturingMatcher.html" title="class in org.mockito.internal.matchers">CapturingMatcher</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/cglib/CGLIBHacker.html" title="class in org.mockito.internal.creation.cglib">CGLIBHacker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/realmethod/CGLIBProxyRealMethod.html" title="class in org.mockito.internal.invocation.realmethod">CGLIBProxyRealMethod</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/jmock/ClassImposterizer.html" title="class in org.mockito.internal.creation.jmock">ClassImposterizer</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/jmock/ClassImposterizer.ClassWithSuperclassToWorkAroundCglibBug.html" title="class in org.mockito.internal.creation.jmock">ClassImposterizer.ClassWithSuperclassToWorkAroundCglibBug</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/ClassNameFinder.html" title="class in org.mockito.internal.creation">ClassNameFinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/configuration/ClassPathLoader.html" title="class in org.mockito.internal.configuration">ClassPathLoader</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/ClonesArguments.html" title="class in org.mockito.internal.stubbing.answers">ClonesArguments</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/listeners/CollectCreatedMocks.html" title="class in org.mockito.internal.listeners">CollectCreatedMocks</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/CompareEqual.html" title="class in org.mockito.internal.matchers">CompareEqual</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/CompareTo.html" title="class in org.mockito.internal.matchers">CompareTo</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/exceptions/base/ConditionalStackTraceFilter.html" title="class in org.mockito.internal.exceptions.base">ConditionalStackTraceFilter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/ConsecutiveStubbing.html" title="class in org.mockito.internal.stubbing">ConsecutiveStubbing</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/ConsoleMockitoLogger.html" title="class in org.mockito.internal.util">ConsoleMockitoLogger</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/runners/ConsoleSpammingMockitoJUnitRunner.html" title="class in org.mockito.runners">ConsoleSpammingMockitoJUnitRunner</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Contains.html" title="class in org.mockito.internal.matchers">Contains</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/ContainsExtraTypeInformation.html" title="interface in org.mockito.internal.matchers"><I>ContainsExtraTypeInformation</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/Decamelizer.html" title="class in org.mockito.internal.util">Decamelizer</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/configuration/DefaultAnnotationEngine.html" title="class in org.mockito.internal.configuration">DefaultAnnotationEngine</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/configuration/DefaultInjectionEngine.html" title="class in org.mockito.internal.configuration">DefaultInjectionEngine</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/configuration/DefaultMockitoConfiguration.html" title="class in org.mockito.configuration">DefaultMockitoConfiguration</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/DelegatingMethod.html" title="class in org.mockito.internal.creation">DelegatingMethod</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/DelegatingMockitoMethodProxy.html" title="class in org.mockito.internal.creation">DelegatingMockitoMethodProxy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/stubbing/DeprecatedOngoingStubbing.html" title="interface in org.mockito.stubbing"><I>DeprecatedOngoingStubbing</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/Discrepancy.html" title="class in org.mockito.exceptions">Discrepancy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/DoesNothing.html" title="class in org.mockito.internal.stubbing.answers">DoesNothing</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/EndsWith.html" title="class in org.mockito.internal.matchers">EndsWith</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Equality.html" title="class in org.mockito.internal.matchers">Equality</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Equals.html" title="class in org.mockito.internal.matchers">Equals</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/EqualsWithDelta.html" title="class in org.mockito.internal.matchers">EqualsWithDelta</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/exceptions/ExceptionIncludingMockitoWarnings.html" title="class in org.mockito.internal.exceptions">ExceptionIncludingMockitoWarnings</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/FieldCopier.html" title="class in org.mockito.internal.util.reflection">FieldCopier</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/FieldReader.html" title="class in org.mockito.internal.util.reflection">FieldReader</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/FieldSetter.html" title="class in org.mockito.internal.util.reflection">FieldSetter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/realmethod/FilteredCGLIBProxyRealMethod.html" title="class in org.mockito.internal.invocation.realmethod">FilteredCGLIBProxyRealMethod</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Find.html" title="class in org.mockito.internal.matchers">Find</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/FindingsListener.html" title="interface in org.mockito.internal.debugging"><I>FindingsListener</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/util/FrameworkUsageValidator.html" title="class in org.mockito.internal.runners.util">FrameworkUsageValidator</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/GenericMaster.html" title="class in org.mockito.internal.util.reflection">GenericMaster</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/configuration/GlobalConfiguration.html" title="class in org.mockito.internal.configuration">GlobalConfiguration</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/GloballyConfiguredAnswer.html" title="class in org.mockito.internal.stubbing.defaultanswers">GloballyConfiguredAnswer</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/GreaterOrEqual.html" title="class in org.mockito.internal.matchers">GreaterOrEqual</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/GreaterThan.html" title="class in org.mockito.internal.matchers">GreaterThan</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/HandyReturnValues.html" title="class in org.mockito.internal.progress">HandyReturnValues</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/realmethod/HasCGLIBMethodProxy.html" title="interface in org.mockito.internal.invocation.realmethod"><I>HasCGLIBMethodProxy</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/IdentitySet.html" title="class in org.mockito.internal.util">IdentitySet</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/configuration/IMockitoConfiguration.html" title="interface in org.mockito.configuration"><I>IMockitoConfiguration</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/configuration/InjectingAnnotationEngine.html" title="class in org.mockito.internal.configuration">InjectingAnnotationEngine</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/InjectMocks.html" title="annotation in org.mockito">InjectMocks</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/InOrder.html" title="interface in org.mockito"><I>InOrder</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/api/InOrderContext.html" title="interface in org.mockito.internal.verification.api"><I>InOrderContext</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/InOrderContextImpl.html" title="class in org.mockito.internal.verification">InOrderContextImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/InOrderImpl.html" title="class in org.mockito.internal">InOrderImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/InOrderWrapper.html" title="class in org.mockito.internal.verification">InOrderWrapper</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/InstanceOf.html" title="class in org.mockito.internal.matchers">InstanceOf</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/InvalidUseOfMatchersException.html" title="class in org.mockito.exceptions.misusing">InvalidUseOfMatchersException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/Invocation.html" title="class in org.mockito.internal.invocation">Invocation</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/InvocationContainer.html" title="interface in org.mockito.internal.stubbing"><I>InvocationContainer</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/InvocationContainerImpl.html" title="class in org.mockito.internal.stubbing">InvocationContainerImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/InvocationMarker.html" title="class in org.mockito.internal.invocation">InvocationMarker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/InvocationMatcher.html" title="class in org.mockito.internal.invocation">InvocationMatcher</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/invocation/InvocationOnMock.html" title="interface in org.mockito.invocation"><I>InvocationOnMock</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/InvocationsFinder.html" title="class in org.mockito.internal.invocation">InvocationsFinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/IOngoingStubbing.html" title="interface in org.mockito.internal.progress"><I>IOngoingStubbing</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/JUnit44RunnerImpl.html" title="class in org.mockito.internal.runners">JUnit44RunnerImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/JUnit45AndHigherRunnerImpl.html" title="class in org.mockito.internal.runners">JUnit45AndHigherRunnerImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/junit/JUnitFailureHacker.html" title="class in org.mockito.internal.util.junit">JUnitFailureHacker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/junit/JUnitTool.html" title="class in org.mockito.exceptions.verification.junit">JUnitTool</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/LenientCopyTool.html" title="class in org.mockito.internal.util.reflection">LenientCopyTool</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/LessOrEqual.html" title="class in org.mockito.internal.matchers">LessOrEqual</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/LessThan.html" title="class in org.mockito.internal.matchers">LessThan</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/ListUtil.html" title="class in org.mockito.internal.util">ListUtil</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/ListUtil.Filter.html" title="interface in org.mockito.internal.util"><I>ListUtil.Filter</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/Localized.html" title="class in org.mockito.internal.debugging">Localized</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/LocalizedMatcher.html" title="class in org.mockito.internal.matchers">LocalizedMatcher</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/Location.html" title="class in org.mockito.internal.debugging">Location</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/LoggingListener.html" title="class in org.mockito.internal.debugging">LoggingListener</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/MatcherDecorator.html" title="interface in org.mockito.internal.matchers"><I>MatcherDecorator</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/Matchers.html" title="class in org.mockito">Matchers</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/MatchersBinder.html" title="class in org.mockito.internal.invocation">MatchersBinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/MatchersPrinter.html" title="class in org.mockito.internal.matchers">MatchersPrinter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Matches.html" title="class in org.mockito.internal.matchers">Matches</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/MethodInterceptorFilter.html" title="class in org.mockito.internal.creation">MethodInterceptorFilter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/MissingInvocationChecker.html" title="class in org.mockito.internal.verification.checkers">MissingInvocationChecker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/MissingInvocationInOrderChecker.html" title="class in org.mockito.internal.verification.checkers">MissingInvocationInOrderChecker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/MissingMethodInvocationException.html" title="class in org.mockito.exceptions.misusing">MissingMethodInvocationException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/Mock.html" title="annotation in org.mockito">Mock</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/MockAwareVerificationMode.html" title="class in org.mockito.internal.verification">MockAwareVerificationMode</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/MockCreationValidator.html" title="class in org.mockito.internal.util">MockCreationValidator</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/MockHandler.html" title="class in org.mockito.internal">MockHandler</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/MockHandlerInterface.html" title="interface in org.mockito.internal"><I>MockHandlerInterface</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/MockingProgress.html" title="interface in org.mockito.internal.progress"><I>MockingProgress</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/MockingProgressImpl.html" title="class in org.mockito.internal.progress">MockingProgressImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/listeners/MockingProgressListener.html" title="interface in org.mockito.internal.listeners"><I>MockingProgressListener</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/listeners/MockingStartedListener.html" title="interface in org.mockito.internal.listeners"><I>MockingStartedListener</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/Mockito.html" title="class in org.mockito">Mockito</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/MockitoAnnotations.html" title="class in org.mockito">MockitoAnnotations</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/MockitoAnnotations.Mock.html" title="annotation in org.mockito">MockitoAnnotations.Mock</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/base/MockitoAssertionError.html" title="class in org.mockito.exceptions.base">MockitoAssertionError</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/MockitoConfigurationException.html" title="class in org.mockito.exceptions.misusing">MockitoConfigurationException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/MockitoCore.html" title="class in org.mockito.internal">MockitoCore</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/MockitoDebugger.html" title="interface in org.mockito"><I>MockitoDebugger</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/MockitoDebuggerImpl.html" title="class in org.mockito.internal.debugging">MockitoDebuggerImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/base/MockitoException.html" title="class in org.mockito.exceptions.base">MockitoException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/MockitoInvocationHandler.html" title="interface in org.mockito.internal"><I>MockitoInvocationHandler</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/runners/MockitoJUnit44Runner.html" title="class in org.mockito.runners">MockitoJUnit44Runner</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/runners/MockitoJUnitRunner.html" title="class in org.mockito.runners">MockitoJUnitRunner</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/MockitoLogger.html" title="interface in org.mockito.internal.util"><I>MockitoLogger</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/MockitoMethod.html" title="interface in org.mockito.internal.invocation"><I>MockitoMethod</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/MockitoMethodProxy.html" title="interface in org.mockito.internal.creation"><I>MockitoMethodProxy</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/cglib/MockitoNamingPolicy.html" title="class in org.mockito.internal.creation.cglib">MockitoNamingPolicy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/MockName.html" title="class in org.mockito.internal.util">MockName</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/MockSettings.html" title="interface in org.mockito"><I>MockSettings</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/MockSettingsImpl.html" title="class in org.mockito.internal.creation">MockSettingsImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/MockUtil.html" title="class in org.mockito.internal.util">MockUtil</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/NeverWantedButInvoked.html" title="class in org.mockito.exceptions.verification">NeverWantedButInvoked</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/NoInteractionsWanted.html" title="class in org.mockito.exceptions.verification">NoInteractionsWanted</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/NoMoreInteractions.html" title="class in org.mockito.internal.verification">NoMoreInteractions</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Not.html" title="class in org.mockito.internal.matchers">Not</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/NotAMockException.html" title="class in org.mockito.exceptions.misusing">NotAMockException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/NotNull.html" title="class in org.mockito.internal.matchers">NotNull</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Null.html" title="class in org.mockito.internal.matchers">Null</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/NullInsteadOfMockException.html" title="class in org.mockito.exceptions.misusing">NullInsteadOfMockException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/NumberOfInvocationsChecker.html" title="class in org.mockito.internal.verification.checkers">NumberOfInvocationsChecker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/checkers/NumberOfInvocationsInOrderChecker.html" title="class in org.mockito.internal.verification.checkers">NumberOfInvocationsInOrderChecker</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/ObjectMethodsGuru.html" title="class in org.mockito.internal.util">ObjectMethodsGuru</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/stubbing/OngoingStubbing.html" title="interface in org.mockito.stubbing"><I>OngoingStubbing</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/OngoingStubbingImpl.html" title="class in org.mockito.internal.stubbing">OngoingStubbingImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/Only.html" title="class in org.mockito.internal.verification">Only</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Or.html" title="class in org.mockito.internal.matchers">Or</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/Pluralizer.html" title="class in org.mockito.exceptions">Pluralizer</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/Primitives.html" title="class in org.mockito.internal.util">Primitives</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/PrintableInvocation.html" title="interface in org.mockito.exceptions"><I>PrintableInvocation</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/reporting/PrintingFriendlyInvocation.html" title="interface in org.mockito.internal.reporting"><I>PrintingFriendlyInvocation</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/reporting/PrintSettings.html" title="class in org.mockito.internal.reporting">PrintSettings</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/realmethod/RealMethod.html" title="interface in org.mockito.internal.invocation.realmethod"><I>RealMethod</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/apachecommons/ReflectionEquals.html" title="class in org.mockito.internal.matchers.apachecommons">ReflectionEquals</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/RegisteredInvocations.html" title="class in org.mockito.internal.verification">RegisteredInvocations</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/RemoveFirstLine.html" title="class in org.mockito.internal.util">RemoveFirstLine</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/Reporter.html" title="class in org.mockito.exceptions">Reporter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/Returns.html" title="class in org.mockito.internal.stubbing.answers">Returns</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/ReturnsDeepStubs.html" title="class in org.mockito.internal.stubbing.defaultanswers">ReturnsDeepStubs</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/stubbing/answers/ReturnsElementsOf.html" title="class in org.mockito.stubbing.answers">ReturnsElementsOf</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/ReturnsEmptyValues.html" title="class in org.mockito.internal.stubbing.defaultanswers">ReturnsEmptyValues</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/ReturnsMocks.html" title="class in org.mockito.internal.stubbing.defaultanswers">ReturnsMocks</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/ReturnsMoreEmptyValues.html" title="class in org.mockito.internal.stubbing.defaultanswers">ReturnsMoreEmptyValues</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/defaultanswers/ReturnsSmartNulls.html" title="class in org.mockito.internal.stubbing.defaultanswers">ReturnsSmartNulls</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/ReturnValues.html" title="interface in org.mockito"><I>ReturnValues</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/RunnerFactory.html" title="class in org.mockito.internal.runners">RunnerFactory</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/RunnerImpl.html" title="interface in org.mockito.internal.runners"><I>RunnerImpl</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/util/RunnerProvider.html" title="class in org.mockito.internal.runners.util">RunnerProvider</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/Same.html" title="class in org.mockito.internal.matchers">Same</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/exceptions/util/ScenarioPrinter.html" title="class in org.mockito.internal.exceptions.util">ScenarioPrinter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/jmock/SearchingClassLoader.html" title="class in org.mockito.internal.creation.jmock">SearchingClassLoader</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/SequenceNumber.html" title="class in org.mockito.internal.progress">SequenceNumber</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/SerializableMethod.html" title="class in org.mockito.internal.invocation">SerializableMethod</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/SerializableMockitoMethodProxy.html" title="class in org.mockito.internal.creation">SerializableMockitoMethodProxy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/creation/jmock/SerializableNoOp.html" title="class in org.mockito.internal.creation.jmock">SerializableNoOp</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/SimpleMockitoLogger.html" title="class in org.mockito.internal.util">SimpleMockitoLogger</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/SmartNullPointerException.html" title="class in org.mockito.exceptions.verification">SmartNullPointerException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/reporting/SmartPrinter.html" title="class in org.mockito.internal.reporting">SmartPrinter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/Spy.html" title="annotation in org.mockito">Spy</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/configuration/SpyAnnotationEngine.html" title="class in org.mockito.internal.configuration">SpyAnnotationEngine</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/exceptions/base/StackTraceFilter.html" title="class in org.mockito.internal.exceptions.base">StackTraceFilter</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/StartsWith.html" title="class in org.mockito.internal.matchers">StartsWith</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/StringJoiner.html" title="class in org.mockito.internal.util">StringJoiner</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/StubbedInvocationMatcher.html" title="class in org.mockito.internal.stubbing">StubbedInvocationMatcher</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/stubbing/Stubber.html" title="interface in org.mockito.stubbing"><I>Stubber</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/StubberImpl.html" title="class in org.mockito.internal.stubbing">StubberImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/StubInfo.html" title="class in org.mockito.internal.invocation">StubInfo</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/runners/util/TestMethodsFinder.html" title="class in org.mockito.internal.runners.util">TestMethodsFinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/progress/ThreadSafeMockingProgress.html" title="class in org.mockito.internal.progress">ThreadSafeMockingProgress</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/answers/ThrowsException.html" title="class in org.mockito.internal.stubbing.answers">ThrowsException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/verification/Timeout.html" title="class in org.mockito.verification">Timeout</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/Times.html" title="class in org.mockito.internal.verification">Times</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/TooLittleActualInvocations.html" title="class in org.mockito.exceptions.verification">TooLittleActualInvocations</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/TooManyActualInvocations.html" title="class in org.mockito.exceptions.verification">TooManyActualInvocations</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/UnfinishedStubbingException.html" title="class in org.mockito.exceptions.misusing">UnfinishedStubbingException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/UnfinishedVerificationException.html" title="class in org.mockito.exceptions.misusing">UnfinishedVerificationException</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/invocation/UnusedStubsFinder.html" title="class in org.mockito.internal.invocation">UnusedStubsFinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/matchers/VarargMatcher.html" title="interface in org.mockito.internal.matchers"><I>VarargMatcher</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/runners/VerboseMockitoJUnitRunner.html" title="class in org.mockito.runners">VerboseMockitoJUnitRunner</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/exceptions/VerificationAwareInvocation.html" title="interface in org.mockito.internal.exceptions"><I>VerificationAwareInvocation</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/api/VerificationData.html" title="interface in org.mockito.internal.verification.api"><I>VerificationData</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/VerificationDataImpl.html" title="class in org.mockito.internal.verification">VerificationDataImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/api/VerificationDataInOrder.html" title="interface in org.mockito.internal.verification.api"><I>VerificationDataInOrder</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/api/VerificationDataInOrderImpl.html" title="class in org.mockito.internal.verification.api">VerificationDataInOrderImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/VerificationInOrderFailure.html" title="class in org.mockito.exceptions.verification">VerificationInOrderFailure</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/api/VerificationInOrderMode.html" title="interface in org.mockito.internal.verification.api"><I>VerificationInOrderMode</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/verification/VerificationMode.html" title="interface in org.mockito.verification"><I>VerificationMode</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/VerificationModeFactory.html" title="class in org.mockito.internal.verification">VerificationModeFactory</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/verification/VerificationWithTimeout.html" title="interface in org.mockito.verification"><I>VerificationWithTimeout</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/verification/VerificationWithTimeoutImpl.html" title="class in org.mockito.internal.verification">VerificationWithTimeoutImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/stubbing/VoidMethodStubbable.html" title="interface in org.mockito.stubbing"><I>VoidMethodStubbable</I></A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/stubbing/VoidMethodStubbableImpl.html" title="class in org.mockito.internal.stubbing">VoidMethodStubbableImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/verification/WantedButNotInvoked.html" title="class in org.mockito.exceptions.verification">WantedButNotInvoked</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/WarningsCollector.html" title="class in org.mockito.internal.debugging">WarningsCollector</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/WarningsFinder.html" title="class in org.mockito.internal.debugging">WarningsFinder</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/debugging/WarningsPrinterImpl.html" title="class in org.mockito.internal.debugging">WarningsPrinterImpl</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/internal/util/reflection/Whitebox.html" title="class in org.mockito.internal.util.reflection">Whitebox</A>
|
||||
<BR>
|
||||
<A HREF="org/mockito/exceptions/misusing/WrongTypeOfReturnValue.html" title="class in org.mockito.exceptions.misusing">WrongTypeOfReturnValue</A>
|
||||
<BR>
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,142 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:20 CEST 2010 -->
|
||||
<TITLE>
|
||||
Constant Field Values (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="Constant Field Values (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<CENTER>
|
||||
<H1>
|
||||
Constant Field Values</H1>
|
||||
</CENTER>
|
||||
<HR SIZE="4" NOSHADE>
|
||||
<B>Contents</B><UL>
|
||||
</UL>
|
||||
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,316 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:27 CEST 2010 -->
|
||||
<TITLE>
|
||||
Deprecated List (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="Deprecated List (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<CENTER>
|
||||
<H2>
|
||||
<B>Deprecated API</B></H2>
|
||||
</CENTER>
|
||||
<HR SIZE="4" NOSHADE>
|
||||
<B>Contents</B><UL>
|
||||
<LI><A HREF="#interface">Deprecated Interfaces</A>
|
||||
<LI><A HREF="#class">Deprecated Classes</A>
|
||||
<LI><A HREF="#enum">Deprecated Enums</A>
|
||||
<LI><A HREF="#annotation_type">Deprecated Annotation Types</A>
|
||||
<LI><A HREF="#method">Deprecated Methods</A>
|
||||
<LI><A HREF="#constructor">Deprecated Constructors</A>
|
||||
</UL>
|
||||
|
||||
<A NAME="interface"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Deprecated Interfaces</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><A HREF="org/mockito/ReturnValues.html" title="interface in org.mockito">org.mockito.ReturnValues</A>
|
||||
<BR>
|
||||
<I><b>Instead, please use <A HREF="org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing"><CODE>Answer</CODE></A> interface</b>
|
||||
<p>
|
||||
In rare cases your code might not compile with recent deprecation & changes.
|
||||
Very sorry for inconvenience but it had to be done in order to keep framework consistent.
|
||||
<p>
|
||||
Why it is deprecated? ReturnValues is being replaced by Answer
|
||||
for better consistency & interoperability of the framework.
|
||||
Answer interface has been in Mockito for a while and it has the same responsibility as ReturnValues.
|
||||
There's no point in mainting exactly the same interfaces.
|
||||
<p>
|
||||
Configures return values for an unstubbed invocation
|
||||
<p>
|
||||
Can be used in <A HREF="org/mockito/Mockito.html#mock(java.lang.Class, org.mockito.ReturnValues)"><CODE>Mockito.mock(Class, ReturnValues)</CODE></A></I> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
<A NAME="class"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Deprecated Classes</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><A HREF="org/mockito/runners/MockitoJUnit44Runner.html" title="class in org.mockito.runners">org.mockito.runners.MockitoJUnit44Runner</A>
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
<A NAME="enum"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Deprecated Enums</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><A HREF="org/mockito/internal/stubbing/defaultanswers/Answers.html" title="enum in org.mockito.internal.stubbing.defaultanswers">org.mockito.internal.stubbing.defaultanswers.Answers</A>
|
||||
<BR>
|
||||
<I>- please use Answers from top Mockito package: <A HREF="org/mockito/Answers.html" title="enum in org.mockito"><CODE>Answers</CODE></A>
|
||||
<p>
|
||||
<b>WARNING</b> Those answers no longer are used by the framework!!! Please use <A HREF="org/mockito/Answers.html" title="enum in org.mockito"><CODE>Answers</CODE></A>
|
||||
<p>
|
||||
See <A HREF="org/mockito/Mockito.html" title="class in org.mockito"><CODE>Mockito</CODE></A> for more information.</I> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
<A NAME="annotation_type"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Deprecated Annotation Types</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><A HREF="org/mockito/MockitoAnnotations.Mock.html" title="annotation in org.mockito">org.mockito.MockitoAnnotations.Mock</A>
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
<A NAME="method"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Deprecated Methods</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><A HREF="org/mockito/configuration/AnnotationEngine.html#createMockFor(java.lang.annotation.Annotation, java.lang.reflect.Field)">org.mockito.configuration.AnnotationEngine.createMockFor(Annotation, Field)</A>
|
||||
<BR>
|
||||
<I>Please use AnnotationProcessor 'execute' method instead that is more robust
|
||||
<p>
|
||||
Creates mock, ArgumentCaptor or wraps field instance in spy object.
|
||||
Only if of correct annotation type.</I> </TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><A HREF="org/mockito/configuration/IMockitoConfiguration.html#getReturnValues()">org.mockito.configuration.IMockitoConfiguration.getReturnValues()</A>
|
||||
<BR>
|
||||
<I><b>Please use <A HREF="org/mockito/configuration/IMockitoConfiguration.html#getDefaultAnswer()"><CODE>IMockitoConfiguration.getDefaultAnswer()</CODE></A></b>
|
||||
<p>
|
||||
Steps:
|
||||
<p>
|
||||
1. Leave the implementation of getReturnValues() method empty - it's not going to be used anyway.
|
||||
<p>
|
||||
2. Implement getDefaultAnswer() instead.
|
||||
<p>
|
||||
In rare cases your code might not compile with recent deprecation & changes.
|
||||
Very sorry for inconvenience but it had to be done in order to keep framework consistent.
|
||||
<p>
|
||||
See javadoc <A HREF="org/mockito/ReturnValues.html" title="interface in org.mockito"><CODE>ReturnValues</CODE></A> for info why this method was deprecated
|
||||
<p>
|
||||
Allows configuring the default return values of unstubbed invocations
|
||||
<p>
|
||||
See javadoc for <A HREF="org/mockito/configuration/IMockitoConfiguration.html" title="interface in org.mockito.configuration"><CODE>IMockitoConfiguration</CODE></A></I> </TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><A HREF="org/mockito/configuration/DefaultMockitoConfiguration.html#getReturnValues()">org.mockito.configuration.DefaultMockitoConfiguration.getReturnValues()</A>
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><A HREF="org/mockito/Mockito.html#mock(java.lang.Class, org.mockito.ReturnValues)">org.mockito.Mockito.mock(Class<T>, ReturnValues)</A>
|
||||
<BR>
|
||||
<I><b>Please use mock(Foo.class, defaultAnswer);</b>
|
||||
<p>
|
||||
See <A HREF="org/mockito/Mockito.html#mock(java.lang.Class, org.mockito.stubbing.Answer)"><CODE>Mockito.mock(Class, Answer)</CODE></A>
|
||||
<p>
|
||||
Why it is deprecated? ReturnValues is being replaced by Answer
|
||||
for better consistency & interoperability of the framework.
|
||||
Answer interface has been in Mockito for a while and it has the same responsibility as ReturnValues.
|
||||
There's no point in mainting exactly the same interfaces.
|
||||
<p>
|
||||
Creates mock with a specified strategy for its return values.
|
||||
It's quite advanced feature and typically you don't need it to write decent tests.
|
||||
However it can be helpful when working with legacy systems.
|
||||
<p>
|
||||
Obviously return values are used only when you don't stub the method call.
|
||||
|
||||
<pre>
|
||||
Foo mock = mock(Foo.class, Mockito.RETURNS_SMART_NULLS);
|
||||
Foo mockTwo = mock(Foo.class, new YourOwnReturnValues());
|
||||
</pre>
|
||||
|
||||
<p>See examples in javadoc for <A HREF="org/mockito/Mockito.html" title="class in org.mockito"><CODE>Mockito</CODE></A> class</p></I> </TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><A HREF="org/mockito/Mockito.html#stubVoid(T)">org.mockito.Mockito.stubVoid(T)</A>
|
||||
<BR>
|
||||
<I>Use <A HREF="org/mockito/Mockito.html#doThrow(java.lang.Throwable)"><CODE>Mockito.doThrow(Throwable)</CODE></A> method for stubbing voids</I> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
<A NAME="constructor"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Deprecated Constructors</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><A HREF="org/mockito/ArgumentCaptor.html#ArgumentCaptor()">org.mockito.ArgumentCaptor()</A>
|
||||
<BR>
|
||||
<I><b>Please use factory method <A HREF="org/mockito/ArgumentCaptor.html#forClass(java.lang.Class)"><CODE>ArgumentCaptor.forClass(Class)</CODE></A> to create captors</b>
|
||||
<p>
|
||||
This is required to avoid NullPointerExceptions when autoUnboxing primitive types.
|
||||
See issue 99.
|
||||
<p>
|
||||
Example:
|
||||
<pre>
|
||||
ArgumentCaptor<Person> argument = ArgumentCaptor.forClass(Person.class);
|
||||
verify(mock).doSomething(argument.capture());
|
||||
assertEquals("John", argument.getValue().getName());
|
||||
</pre></I> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,219 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:27 CEST 2010 -->
|
||||
<TITLE>
|
||||
API Help (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="API Help (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<CENTER>
|
||||
<H1>
|
||||
How This API Document Is Organized</H1>
|
||||
</CENTER>
|
||||
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
|
||||
Overview</H3>
|
||||
<BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.</BLOCKQUOTE>
|
||||
<H3>
|
||||
Package</H3>
|
||||
<BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
|
||||
<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
|
||||
</BLOCKQUOTE>
|
||||
<H3>
|
||||
Class/Interface</H3>
|
||||
<BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
|
||||
<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
|
||||
<P>
|
||||
<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
|
||||
<P>
|
||||
<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
|
||||
Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
|
||||
</BLOCKQUOTE>
|
||||
<H3>
|
||||
Annotation Type</H3>
|
||||
<BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
Each annotation type has its own separate page with the following sections:<UL>
|
||||
<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
|
||||
</BLOCKQUOTE>
|
||||
</BLOCKQUOTE>
|
||||
<H3>
|
||||
Enum</H3>
|
||||
<BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
Each enum has its own separate page with the following sections:<UL>
|
||||
<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
|
||||
</BLOCKQUOTE>
|
||||
<H3>
|
||||
Use</H3>
|
||||
<BLOCKQUOTE>
|
||||
Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</BLOCKQUOTE>
|
||||
<H3>
|
||||
Tree (Class Hierarchy)</H3>
|
||||
<BLOCKQUOTE>
|
||||
There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
|
||||
<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
|
||||
</BLOCKQUOTE>
|
||||
<H3>
|
||||
Deprecated API</H3>
|
||||
<BLOCKQUOTE>
|
||||
The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
|
||||
<H3>
|
||||
Index</H3>
|
||||
<BLOCKQUOTE>
|
||||
The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
|
||||
<H3>
|
||||
Prev/Next</H3>
|
||||
These links take you to the next or previous class, interface, package, or related page.<H3>
|
||||
Frames/No Frames</H3>
|
||||
These links show and hide the HTML frames. All pages are available with or without frames.
|
||||
<P>
|
||||
<H3>
|
||||
Serialized Form</H3>
|
||||
Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
|
||||
<P>
|
||||
<H3>
|
||||
Constant Field Values</H3>
|
||||
The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
|
||||
<P>
|
||||
<FONT SIZE="-1">
|
||||
<EM>
|
||||
This help file applies to API documentation generated using the standard doclet.</EM>
|
||||
</FONT>
|
||||
<BR>
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
File diff suppressed because one or more lines are too long
@ -1,39 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc on Mon May 24 23:03:27 CEST 2010-->
|
||||
<TITLE>
|
||||
Mockito API
|
||||
</TITLE>
|
||||
<SCRIPT type="text/javascript">
|
||||
targetPage = "" + window.location.search;
|
||||
if (targetPage != "" && targetPage != "undefined")
|
||||
targetPage = targetPage.substring(1);
|
||||
if (targetPage.indexOf(":") != -1)
|
||||
targetPage = "undefined";
|
||||
function loadFrames() {
|
||||
if (targetPage != "" && targetPage != "undefined")
|
||||
top.classFrame.location = top.targetPage;
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
</HEAD>
|
||||
<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
|
||||
<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">
|
||||
<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
|
||||
<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
|
||||
</FRAMESET>
|
||||
<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
|
||||
<NOFRAMES>
|
||||
<H2>
|
||||
Frame Alert</H2>
|
||||
|
||||
<P>
|
||||
This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
|
||||
<BR>
|
||||
Link to<A HREF="overview-summary.html">Non-frame version.</A>
|
||||
</NOFRAMES>
|
||||
</FRAMESET>
|
||||
</HTML>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,397 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
Answers (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.Answers class">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="Answers (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Answers.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/AdditionalMatchers.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/ArgumentCaptor.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/Answers.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="Answers.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | <A HREF="#enum_constant_summary">ENUM CONSTANTS</A> | FIELD | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: <A HREF="#enum_constant_detail">ENUM CONSTANTS</A> | FIELD | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Enum Answers</H2>
|
||||
<PRE>
|
||||
java.lang.Object
|
||||
<IMG SRC="../../resources/inherit.gif" ALT="extended by ">java.lang.Enum<<A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A>>
|
||||
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>org.mockito.Answers</B>
|
||||
</PRE>
|
||||
<DL>
|
||||
<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable<<A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A>></DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public enum <B>Answers</B><DT>extends java.lang.Enum<<A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A>></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Enumeration of pre-configured mock answers
|
||||
<p>
|
||||
You can use it to pass extra parameters to @Mock annotation, see more info here: <A HREF="../../org/mockito/Mock.html" title="annotation in org.mockito"><CODE>Mock</CODE></A>
|
||||
<p>
|
||||
Example:
|
||||
<pre>
|
||||
@Mock(answer = RETURNS_DEEP_STUBS) UserProvider userProvider;
|
||||
</pre>
|
||||
<b>This is not the full list</b> of Answers available in Mockito. Some interesting answers can be found in org.mockito.stubbing.answers package.
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
|
||||
|
||||
<A NAME="enum_constant_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Enum Constant Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../org/mockito/Answers.html#CALLS_REAL_METHODS">CALLS_REAL_METHODS</A></B></CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../org/mockito/Answers.html#RETURNS_DEEP_STUBS">RETURNS_DEEP_STUBS</A></B></CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../org/mockito/Answers.html#RETURNS_DEFAULTS">RETURNS_DEFAULTS</A></B></CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../org/mockito/Answers.html#RETURNS_MOCKS">RETURNS_MOCKS</A></B></CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../org/mockito/Answers.html#RETURNS_SMART_NULLS">RETURNS_SMART_NULLS</A></B></CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A><java.lang.Object></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/Answers.html#get()">get</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static <A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/Answers.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String name)</CODE>
|
||||
|
||||
<BR>
|
||||
Returns the enum constant of this type with the specified name.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static <A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A>[]</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/Answers.html#values()">values</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Returns an array containing the constants of this enum type, in
|
||||
the order they're declared.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>clone, compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>finalize, getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ============ ENUM CONSTANT DETAIL =========== -->
|
||||
|
||||
<A NAME="enum_constant_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Enum Constant Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="RETURNS_DEFAULTS"><!-- --></A><H3>
|
||||
RETURNS_DEFAULTS</H3>
|
||||
<PRE>
|
||||
public static final <A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A> <B>RETURNS_DEFAULTS</B></PRE>
|
||||
<DL>
|
||||
<DL>
|
||||
</DL>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="RETURNS_SMART_NULLS"><!-- --></A><H3>
|
||||
RETURNS_SMART_NULLS</H3>
|
||||
<PRE>
|
||||
public static final <A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A> <B>RETURNS_SMART_NULLS</B></PRE>
|
||||
<DL>
|
||||
<DL>
|
||||
</DL>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="RETURNS_MOCKS"><!-- --></A><H3>
|
||||
RETURNS_MOCKS</H3>
|
||||
<PRE>
|
||||
public static final <A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A> <B>RETURNS_MOCKS</B></PRE>
|
||||
<DL>
|
||||
<DL>
|
||||
</DL>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="RETURNS_DEEP_STUBS"><!-- --></A><H3>
|
||||
RETURNS_DEEP_STUBS</H3>
|
||||
<PRE>
|
||||
public static final <A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A> <B>RETURNS_DEEP_STUBS</B></PRE>
|
||||
<DL>
|
||||
<DL>
|
||||
</DL>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="CALLS_REAL_METHODS"><!-- --></A><H3>
|
||||
CALLS_REAL_METHODS</H3>
|
||||
<PRE>
|
||||
public static final <A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A> <B>CALLS_REAL_METHODS</B></PRE>
|
||||
<DL>
|
||||
<DL>
|
||||
</DL>
|
||||
</DL>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="values()"><!-- --></A><H3>
|
||||
values</H3>
|
||||
<PRE>
|
||||
public static final <A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A>[] <B>values</B>()</PRE>
|
||||
<DL>
|
||||
<DD>Returns an array containing the constants of this enum type, in
|
||||
the order they're declared. This method may be used to iterate
|
||||
over the constants as follows:
|
||||
<pre>
|
||||
for(Answers c : Answers.values())
|
||||
System.out.println(c);
|
||||
</pre>
|
||||
<P>
|
||||
<DD><DL>
|
||||
|
||||
<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
|
||||
the order they're declared</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
|
||||
valueOf</H3>
|
||||
<PRE>
|
||||
public static <A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A> <B>valueOf</B>(java.lang.String name)</PRE>
|
||||
<DL>
|
||||
<DD>Returns the enum constant of this type with the specified name.
|
||||
The string must match <I>exactly</I> an identifier used to declare an
|
||||
enum constant in this type. (Extraneous whitespace characters are
|
||||
not permitted.)
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
|
||||
<DT><B>Returns:</B><DD>the enum constant with the specified name
|
||||
<DT><B>Throws:</B>
|
||||
<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
|
||||
with the specified name</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="get()"><!-- --></A><H3>
|
||||
get</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A><java.lang.Object> <B>get</B>()</PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Answers.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/AdditionalMatchers.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/ArgumentCaptor.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/Answers.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="Answers.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | <A HREF="#enum_constant_summary">ENUM CONSTANTS</A> | FIELD | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: <A HREF="#enum_constant_detail">ENUM CONSTANTS</A> | FIELD | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,397 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
ArgumentCaptor (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.ArgumentCaptor class">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="ArgumentCaptor (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ArgumentCaptor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/Answers.html" title="enum in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/ArgumentMatcher.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/ArgumentCaptor.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="ArgumentCaptor.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Class ArgumentCaptor<T></H2>
|
||||
<PRE>
|
||||
java.lang.Object
|
||||
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>org.mockito.ArgumentCaptor<T></B>
|
||||
</PRE>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public class <B>ArgumentCaptor<T></B><DT>extends java.lang.Object</DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Use it to capture argument values for further assertions.
|
||||
<p>
|
||||
Mockito verifies argument values in natural java style: by using an equals() method.
|
||||
This is also the recommended way of matching arguments because it makes tests clean & simple.
|
||||
In some situations though, it is helpful to assert on certain arguments after the actual verification.
|
||||
For example:
|
||||
<pre>
|
||||
ArgumentCaptor<Person> argument = ArgumentCaptor.forClass(Person.class);
|
||||
verify(mock).doSomething(argument.capture());
|
||||
assertEquals("John", argument.getValue().getName());
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
<b>Warning:</b> it is recommended to use ArgumentCaptor with verification <b>but not</b> with stubbing.
|
||||
Using ArgumentCaptor with stubbing may decrease test readability because captor is created outside of assert (aka verify or 'then') block.
|
||||
Also it may reduce defect localization because if stubbed method was not called then no argument is captured.
|
||||
<p>
|
||||
In a way ArgumentCaptor is related to custom argument matchers (see javadoc for <A HREF="../../org/mockito/ArgumentMatcher.html" title="class in org.mockito"><CODE>ArgumentMatcher</CODE></A> class).
|
||||
Both techniques can be used for making sure certain arguments where passed to mocks.
|
||||
However, ArgumentCaptor may be a better fit if:
|
||||
<ul>
|
||||
<li>custom argument matcher is not likely to be reused</li>
|
||||
<li>you just need it to assert on argument values to complete verification</li>
|
||||
</ul>
|
||||
Custom argument matchers via <A HREF="../../org/mockito/ArgumentMatcher.html" title="class in org.mockito"><CODE>ArgumentMatcher</CODE></A> are usually better for stubbing.
|
||||
<p>
|
||||
There is an <b>annotation</b> that you might find useful: @<A HREF="../../org/mockito/Captor.html" title="annotation in org.mockito"><CODE>Captor</CODE></A>
|
||||
<p>
|
||||
See the full documentation on Mockito in javadoc for <A HREF="../../org/mockito/Mockito.html" title="class in org.mockito"><CODE>Mockito</CODE></A> class.
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
|
||||
<A NAME="constructor_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Constructor Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../org/mockito/ArgumentCaptor.html#ArgumentCaptor()">ArgumentCaptor</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
<B>Deprecated.</B> <I><b>Please use factory method <A HREF="../../org/mockito/ArgumentCaptor.html#forClass(java.lang.Class)"><CODE>forClass(Class)</CODE></A> to create captors</b>
|
||||
<p>
|
||||
This is required to avoid NullPointerExceptions when autoUnboxing primitive types.
|
||||
See issue 99.
|
||||
<p>
|
||||
Example:
|
||||
<pre>
|
||||
ArgumentCaptor<Person> argument = ArgumentCaptor.forClass(Person.class);
|
||||
verify(mock).doSomething(argument.capture());
|
||||
assertEquals("John", argument.getValue().getName());
|
||||
</pre></I></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/ArgumentCaptor.html" title="type parameter in ArgumentCaptor">T</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/ArgumentCaptor.html#capture()">capture</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Use it to capture the argument.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
|
||||
<TR ALIGN="right" VALIGN="">
|
||||
<TD NOWRAP><FONT SIZE="-1">
|
||||
<CODE><T> <A HREF="../../org/mockito/ArgumentCaptor.html" title="class in org.mockito">ArgumentCaptor</A><T></CODE></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/ArgumentCaptor.html#forClass(java.lang.Class)">forClass</A></B>(java.lang.Class<T> clazz)</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> java.util.List<<A HREF="../../org/mockito/ArgumentCaptor.html" title="type parameter in ArgumentCaptor">T</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/ArgumentCaptor.html#getAllValues()">getAllValues</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Returns all captured values.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/ArgumentCaptor.html" title="type parameter in ArgumentCaptor">T</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/ArgumentCaptor.html#getValue()">getValue</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Returns the captured value of the argument.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
|
||||
<A NAME="constructor_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Constructor Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="ArgumentCaptor()"><!-- --></A><H3>
|
||||
ArgumentCaptor</H3>
|
||||
<PRE>
|
||||
<FONT SIZE="-1">@Deprecated
|
||||
</FONT>public <B>ArgumentCaptor</B>()</PRE>
|
||||
<DL>
|
||||
<DD><B>Deprecated.</B> <I><b>Please use factory method <A HREF="../../org/mockito/ArgumentCaptor.html#forClass(java.lang.Class)"><CODE>forClass(Class)</CODE></A> to create captors</b>
|
||||
<p>
|
||||
This is required to avoid NullPointerExceptions when autoUnboxing primitive types.
|
||||
See issue 99.
|
||||
<p>
|
||||
Example:
|
||||
<pre>
|
||||
ArgumentCaptor<Person> argument = ArgumentCaptor.forClass(Person.class);
|
||||
verify(mock).doSomething(argument.capture());
|
||||
assertEquals("John", argument.getValue().getName());
|
||||
</pre></I>
|
||||
<P>
|
||||
</DL>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="capture()"><!-- --></A><H3>
|
||||
capture</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../org/mockito/ArgumentCaptor.html" title="type parameter in ArgumentCaptor">T</A> <B>capture</B>()</PRE>
|
||||
<DL>
|
||||
<DD>Use it to capture the argument. This method <b>must be used inside of verification</b>.
|
||||
<p>
|
||||
Internally, this method registers a special implementation of an <A HREF="../../org/mockito/ArgumentMatcher.html" title="class in org.mockito"><CODE>ArgumentMatcher</CODE></A>.
|
||||
This argument matcher stores the argument value so that you can use it later to perform assertions.
|
||||
<p>
|
||||
See examples in javadoc for <A HREF="../../org/mockito/ArgumentCaptor.html" title="class in org.mockito"><CODE>ArgumentCaptor</CODE></A> class.
|
||||
<P>
|
||||
<DD><DL>
|
||||
|
||||
<DT><B>Returns:</B><DD>null</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="getValue()"><!-- --></A><H3>
|
||||
getValue</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../org/mockito/ArgumentCaptor.html" title="type parameter in ArgumentCaptor">T</A> <B>getValue</B>()</PRE>
|
||||
<DL>
|
||||
<DD>Returns the captured value of the argument.
|
||||
<p>
|
||||
If the method was called multiple times then it returns the latest captured value
|
||||
<p>
|
||||
See examples in javadoc for <A HREF="../../org/mockito/ArgumentCaptor.html" title="class in org.mockito"><CODE>ArgumentCaptor</CODE></A> class.
|
||||
<P>
|
||||
<DD><DL>
|
||||
|
||||
<DT><B>Returns:</B><DD>captured argument value</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="getAllValues()"><!-- --></A><H3>
|
||||
getAllValues</H3>
|
||||
<PRE>
|
||||
public java.util.List<<A HREF="../../org/mockito/ArgumentCaptor.html" title="type parameter in ArgumentCaptor">T</A>> <B>getAllValues</B>()</PRE>
|
||||
<DL>
|
||||
<DD>Returns all captured values. Use it in case the verified method was called multiple times.
|
||||
<p>
|
||||
Example:
|
||||
<pre>
|
||||
ArgumentCaptor<Person> peopleCaptor = ArgumentCaptor.forClass(Person.class);
|
||||
verify(mock, times(2)).doSomething(peopleCaptor.capture());
|
||||
|
||||
List<Person> capturedPeople = peopleCaptor.getAllValues();
|
||||
assertEquals("John", capturedPeople.get(0).getName());
|
||||
assertEquals("Jane", capturedPeople.get(1).getName());
|
||||
</pre>
|
||||
See more examples in javadoc for <A HREF="../../org/mockito/ArgumentCaptor.html" title="class in org.mockito"><CODE>ArgumentCaptor</CODE></A> class.
|
||||
<P>
|
||||
<DD><DL>
|
||||
|
||||
<DT><B>Returns:</B><DD>captured argument value</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="forClass(java.lang.Class)"><!-- --></A><H3>
|
||||
forClass</H3>
|
||||
<PRE>
|
||||
public static <T> <A HREF="../../org/mockito/ArgumentCaptor.html" title="class in org.mockito">ArgumentCaptor</A><T> <B>forClass</B>(java.lang.Class<T> clazz)</PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ArgumentCaptor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/Answers.html" title="enum in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/ArgumentMatcher.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/ArgumentCaptor.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="ArgumentCaptor.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,338 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
ArgumentMatcher (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.ArgumentMatcher class">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="ArgumentMatcher (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ArgumentMatcher.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/ArgumentCaptor.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/BDDMockito.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/ArgumentMatcher.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="ArgumentMatcher.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Class ArgumentMatcher<T></H2>
|
||||
<PRE>
|
||||
java.lang.Object
|
||||
<IMG SRC="../../resources/inherit.gif" ALT="extended by ">org.hamcrest.BaseMatcher<T>
|
||||
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>org.mockito.ArgumentMatcher<T></B>
|
||||
</PRE>
|
||||
<DL>
|
||||
<DT><DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of argument</DL>
|
||||
<DL>
|
||||
<DT><B>All Implemented Interfaces:</B> <DD>org.hamcrest.Matcher<T>, org.hamcrest.SelfDescribing</DD>
|
||||
</DL>
|
||||
<DL>
|
||||
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../org/mockito/internal/matchers/And.html" title="class in org.mockito.internal.matchers">And</A>, <A HREF="../../org/mockito/internal/matchers/Any.html" title="class in org.mockito.internal.matchers">Any</A>, <A HREF="../../org/mockito/internal/matchers/AnyVararg.html" title="class in org.mockito.internal.matchers">AnyVararg</A>, <A HREF="../../org/mockito/internal/matchers/CapturingMatcher.html" title="class in org.mockito.internal.matchers">CapturingMatcher</A>, <A HREF="../../org/mockito/internal/matchers/CompareTo.html" title="class in org.mockito.internal.matchers">CompareTo</A>, <A HREF="../../org/mockito/internal/matchers/Contains.html" title="class in org.mockito.internal.matchers">Contains</A>, <A HREF="../../org/mockito/internal/matchers/EndsWith.html" title="class in org.mockito.internal.matchers">EndsWith</A>, <A HREF="../../org/mockito/internal/matchers/Equals.html" title="class in org.mockito.internal.matchers">Equals</A>, <A HREF="../../org/mockito/internal/matchers/EqualsWithDelta.html" title="class in org.mockito.internal.matchers">EqualsWithDelta</A>, <A HREF="../../org/mockito/internal/matchers/Find.html" title="class in org.mockito.internal.matchers">Find</A>, <A HREF="../../org/mockito/internal/matchers/InstanceOf.html" title="class in org.mockito.internal.matchers">InstanceOf</A>, <A HREF="../../org/mockito/internal/matchers/Matches.html" title="class in org.mockito.internal.matchers">Matches</A>, <A HREF="../../org/mockito/internal/matchers/Not.html" title="class in org.mockito.internal.matchers">Not</A>, <A HREF="../../org/mockito/internal/matchers/NotNull.html" title="class in org.mockito.internal.matchers">NotNull</A>, <A HREF="../../org/mockito/internal/matchers/Null.html" title="class in org.mockito.internal.matchers">Null</A>, <A HREF="../../org/mockito/internal/matchers/Or.html" title="class in org.mockito.internal.matchers">Or</A>, <A HREF="../../org/mockito/internal/matchers/apachecommons/ReflectionEquals.html" title="class in org.mockito.internal.matchers.apachecommons">ReflectionEquals</A>, <A HREF="../../org/mockito/internal/matchers/Same.html" title="class in org.mockito.internal.matchers">Same</A>, <A HREF="../../org/mockito/internal/matchers/StartsWith.html" title="class in org.mockito.internal.matchers">StartsWith</A></DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public abstract class <B>ArgumentMatcher<T></B><DT>extends org.hamcrest.BaseMatcher<T></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Allows creating customized argument matchers.
|
||||
<p>
|
||||
ArgumentMatcher is an hamcrest <CODE>Matcher</CODE> with predefined describeTo() method.
|
||||
In case of failure, ArgumentMatcher generates description based on <b>decamelized class name</b> - to promote meaningful class names.
|
||||
For example <b>StringWithStrongLanguage</b> matcher will generate 'String with strong language' description.
|
||||
You can always override describeTo() method and provide detailed description.
|
||||
<p>
|
||||
Use <A HREF="../../org/mockito/Matchers.html#argThat(org.hamcrest.Matcher)"><CODE>Matchers.argThat(org.hamcrest.Matcher<T>)</CODE></A> method and pass an instance of hamcrest <CODE>Matcher</CODE>, e.g:
|
||||
|
||||
<pre>
|
||||
class IsListOfTwoElements extends ArgumentMatcher<List> {
|
||||
public boolean matches(Object list) {
|
||||
return ((List) list).size() == 2;
|
||||
}
|
||||
}
|
||||
|
||||
List mock = mock(List.class);
|
||||
|
||||
when(mock.addAll(argThat(new IsListOfTwoElements()))).thenReturn(true);
|
||||
|
||||
mock.addAll(Arrays.asList("one", "two"));
|
||||
|
||||
verify(mock).addAll(argThat(new IsListOfTwoElements()));
|
||||
</pre>
|
||||
|
||||
To keep it readable you may want to extract method, e.g:
|
||||
|
||||
<pre>
|
||||
verify(mock).addAll(<b>argThat(new IsListOfTwoElements())</b>);
|
||||
//becomes
|
||||
verify(mock).addAll(<b>listOfTwoElements()</b>);
|
||||
</pre>
|
||||
|
||||
<b>Warning:</b> Be reasonable with using complicated argument matching, especially custom argument matchers, as it can make the test less readable.
|
||||
Sometimes it's better to implement equals() for arguments that are passed to mocks
|
||||
(Mockito naturally uses equals() for argument matching).
|
||||
This can make the test cleaner.
|
||||
<p>
|
||||
Also, <b>sometimes <A HREF="../../org/mockito/ArgumentCaptor.html" title="class in org.mockito"><CODE>ArgumentCaptor</CODE></A> may be a better fit</b> than custom matcher.
|
||||
For example, if custom argument matcher is not likely to be reused
|
||||
or you just need it to assert on argument values to complete verification of behavior.
|
||||
<p>
|
||||
Read more about other matchers in javadoc for <A HREF="../../org/mockito/Matchers.html" title="class in org.mockito"><CODE>Matchers</CODE></A> class
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
|
||||
<A NAME="constructor_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Constructor Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../org/mockito/ArgumentMatcher.html#ArgumentMatcher()">ArgumentMatcher</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/ArgumentMatcher.html#describeTo(org.hamcrest.Description)">describeTo</A></B>(org.hamcrest.Description description)</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>abstract boolean</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/ArgumentMatcher.html#matches(java.lang.Object)">matches</A></B>(java.lang.Object argument)</CODE>
|
||||
|
||||
<BR>
|
||||
Returns whether this matcher accepts the given argument.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_org.hamcrest.BaseMatcher"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class org.hamcrest.BaseMatcher</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>_dont_implement_Matcher___instead_extend_BaseMatcher_, toString</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
|
||||
<A NAME="constructor_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Constructor Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="ArgumentMatcher()"><!-- --></A><H3>
|
||||
ArgumentMatcher</H3>
|
||||
<PRE>
|
||||
public <B>ArgumentMatcher</B>()</PRE>
|
||||
<DL>
|
||||
</DL>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="matches(java.lang.Object)"><!-- --></A><H3>
|
||||
matches</H3>
|
||||
<PRE>
|
||||
public abstract boolean <B>matches</B>(java.lang.Object argument)</PRE>
|
||||
<DL>
|
||||
<DD>Returns whether this matcher accepts the given argument.
|
||||
<p>
|
||||
The method should <b>never</b> assert if the argument doesn't match. It
|
||||
should only return false.
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Parameters:</B><DD><CODE>argument</CODE> - the argument
|
||||
<DT><B>Returns:</B><DD>whether this matcher accepts the given argument.</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="describeTo(org.hamcrest.Description)"><!-- --></A><H3>
|
||||
describeTo</H3>
|
||||
<PRE>
|
||||
public void <B>describeTo</B>(org.hamcrest.Description description)</PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ArgumentMatcher.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/ArgumentCaptor.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/BDDMockito.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/ArgumentMatcher.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="ArgumentMatcher.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,301 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
BDDMockito.BDDMyOngoingStubbing (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.BDDMockito.BDDMyOngoingStubbing interface">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="BDDMockito.BDDMyOngoingStubbing (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/BDDMockito.BDDMyOngoingStubbing.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/BDDMockito.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/BDDMockito.BDDMyOngoingStubbing.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="BDDMockito.BDDMyOngoingStubbing.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Interface BDDMockito.BDDMyOngoingStubbing<T></H2>
|
||||
<DL>
|
||||
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="class in org.mockito">BDDMockito.BDDOngoingStubbingImpl</A></DD>
|
||||
</DL>
|
||||
<DL>
|
||||
<DT><B>Enclosing class:</B><DD><A HREF="../../org/mockito/BDDMockito.html" title="class in org.mockito">BDDMockito</A></DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public static interface <B>BDDMockito.BDDMyOngoingStubbing<T></B></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html" title="interface in org.mockito.stubbing"><CODE>OngoingStubbing</CODE></A>
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willAnswer(org.mockito.stubbing.Answer)">willAnswer</A></B>(<A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A><?> answer)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenAnswer(org.mockito.stubbing.Answer)"><CODE>OngoingStubbing.thenAnswer(Answer)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willCallRealMethod()">willCallRealMethod</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenCallRealMethod()"><CODE>OngoingStubbing.thenCallRealMethod()</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willReturn(T)">willReturn</A></B>(<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A> value)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenReturn(T)"><CODE>OngoingStubbing.thenReturn(Object)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willReturn(T, T...)">willReturn</A></B>(<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A> value,
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>... values)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenReturn(T, T...)"><CODE>OngoingStubbing.thenReturn(Object, Object...)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willThrow(java.lang.Throwable...)">willThrow</A></B>(java.lang.Throwable... throwables)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenThrow(java.lang.Throwable...)"><CODE>OngoingStubbing.thenThrow(Throwable...)</CODE></A></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="willAnswer(org.mockito.stubbing.Answer)"><!-- --></A><H3>
|
||||
willAnswer</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>> <B>willAnswer</B>(<A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A><?> answer)</PRE>
|
||||
<DL>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenAnswer(org.mockito.stubbing.Answer)"><CODE>OngoingStubbing.thenAnswer(Answer)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willReturn(java.lang.Object)"><!-- --></A><A NAME="willReturn(T)"><!-- --></A><H3>
|
||||
willReturn</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>> <B>willReturn</B>(<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A> value)</PRE>
|
||||
<DL>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenReturn(T)"><CODE>OngoingStubbing.thenReturn(Object)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willReturn(java.lang.Object,java.lang.Object)"><!-- --></A><A NAME="willReturn(T, T...)"><!-- --></A><H3>
|
||||
willReturn</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>> <B>willReturn</B>(<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A> value,
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>... values)</PRE>
|
||||
<DL>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenReturn(T, T...)"><CODE>OngoingStubbing.thenReturn(Object, Object...)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willThrow(java.lang.Throwable...)"><!-- --></A><H3>
|
||||
willThrow</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>> <B>willThrow</B>(java.lang.Throwable... throwables)</PRE>
|
||||
<DL>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenThrow(java.lang.Throwable...)"><CODE>OngoingStubbing.thenThrow(Throwable...)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willCallRealMethod()"><!-- --></A><H3>
|
||||
willCallRealMethod</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>> <B>willCallRealMethod</B>()</PRE>
|
||||
<DL>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenCallRealMethod()"><CODE>OngoingStubbing.thenCallRealMethod()</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/BDDMockito.BDDMyOngoingStubbing.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/BDDMockito.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/BDDMockito.BDDMyOngoingStubbing.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="BDDMockito.BDDMyOngoingStubbing.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,363 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
BDDMockito.BDDOngoingStubbingImpl (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.BDDMockito.BDDOngoingStubbingImpl class">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="BDDMockito.BDDOngoingStubbingImpl (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/BDDMockito.BDDOngoingStubbingImpl.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="BDDMockito.BDDOngoingStubbingImpl.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Class BDDMockito.BDDOngoingStubbingImpl<T></H2>
|
||||
<PRE>
|
||||
java.lang.Object
|
||||
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>org.mockito.BDDMockito.BDDOngoingStubbingImpl<T></B>
|
||||
</PRE>
|
||||
<DL>
|
||||
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><T></DD>
|
||||
</DL>
|
||||
<DL>
|
||||
<DT><B>Enclosing class:</B><DD><A HREF="../../org/mockito/BDDMockito.html" title="class in org.mockito">BDDMockito</A></DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public static class <B>BDDMockito.BDDOngoingStubbingImpl<T></B><DT>extends java.lang.Object<DT>implements <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><T></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
|
||||
<A NAME="constructor_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Constructor Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html#BDDMockito.BDDOngoingStubbingImpl(org.mockito.stubbing.OngoingStubbing)">BDDMockito.BDDOngoingStubbingImpl</A></B>(<A HREF="../../org/mockito/stubbing/OngoingStubbing.html" title="interface in org.mockito.stubbing">OngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>> ongoingStubbing)</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html#willAnswer(org.mockito.stubbing.Answer)">willAnswer</A></B>(<A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A><?> answer)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenAnswer(org.mockito.stubbing.Answer)"><CODE>OngoingStubbing.thenAnswer(Answer)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html#willCallRealMethod()">willCallRealMethod</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenCallRealMethod()"><CODE>OngoingStubbing.thenCallRealMethod()</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html#willReturn(T)">willReturn</A></B>(<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A> value)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenReturn(T)"><CODE>OngoingStubbing.thenReturn(Object)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html#willReturn(T, T...)">willReturn</A></B>(<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A> value,
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>... values)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenReturn(T, T...)"><CODE>OngoingStubbing.thenReturn(Object, Object...)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html#willThrow(java.lang.Throwable...)">willThrow</A></B>(java.lang.Throwable... throwables)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenThrow(java.lang.Throwable...)"><CODE>OngoingStubbing.thenThrow(Throwable...)</CODE></A></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
|
||||
<A NAME="constructor_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Constructor Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="BDDMockito.BDDOngoingStubbingImpl(org.mockito.stubbing.OngoingStubbing)"><!-- --></A><H3>
|
||||
BDDMockito.BDDOngoingStubbingImpl</H3>
|
||||
<PRE>
|
||||
public <B>BDDMockito.BDDOngoingStubbingImpl</B>(<A HREF="../../org/mockito/stubbing/OngoingStubbing.html" title="interface in org.mockito.stubbing">OngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>> ongoingStubbing)</PRE>
|
||||
<DL>
|
||||
</DL>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="willAnswer(org.mockito.stubbing.Answer)"><!-- --></A><H3>
|
||||
willAnswer</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>> <B>willAnswer</B>(<A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A><?> answer)</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willAnswer(org.mockito.stubbing.Answer)">BDDMockito.BDDMyOngoingStubbing</A></CODE></B></DD>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenAnswer(org.mockito.stubbing.Answer)"><CODE>OngoingStubbing.thenAnswer(Answer)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willAnswer(org.mockito.stubbing.Answer)">willAnswer</A></CODE> in interface <CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willReturn(java.lang.Object)"><!-- --></A><A NAME="willReturn(T)"><!-- --></A><H3>
|
||||
willReturn</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>> <B>willReturn</B>(<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A> value)</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willReturn(T)">BDDMockito.BDDMyOngoingStubbing</A></CODE></B></DD>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenReturn(T)"><CODE>OngoingStubbing.thenReturn(Object)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willReturn(T)">willReturn</A></CODE> in interface <CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willReturn(java.lang.Object,java.lang.Object)"><!-- --></A><A NAME="willReturn(T, T...)"><!-- --></A><H3>
|
||||
willReturn</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>> <B>willReturn</B>(<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A> value,
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>... values)</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willReturn(T, T...)">BDDMockito.BDDMyOngoingStubbing</A></CODE></B></DD>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenReturn(T, T...)"><CODE>OngoingStubbing.thenReturn(Object, Object...)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willReturn(T, T...)">willReturn</A></CODE> in interface <CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willThrow(java.lang.Throwable...)"><!-- --></A><H3>
|
||||
willThrow</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>> <B>willThrow</B>(java.lang.Throwable... throwables)</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willThrow(java.lang.Throwable...)">BDDMockito.BDDMyOngoingStubbing</A></CODE></B></DD>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenThrow(java.lang.Throwable...)"><CODE>OngoingStubbing.thenThrow(Throwable...)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willThrow(java.lang.Throwable...)">willThrow</A></CODE> in interface <CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willCallRealMethod()"><!-- --></A><H3>
|
||||
willCallRealMethod</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>> <B>willCallRealMethod</B>()</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willCallRealMethod()">BDDMockito.BDDMyOngoingStubbing</A></CODE></B></DD>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html#thenCallRealMethod()"><CODE>OngoingStubbing.thenCallRealMethod()</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html#willCallRealMethod()">willCallRealMethod</A></CODE> in interface <CODE><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/BDDMockito.BDDOngoingStubbingImpl.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="BDDMockito.BDDOngoingStubbingImpl.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,306 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
BDDMockito.BDDStubber (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.BDDMockito.BDDStubber interface">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="BDDMockito.BDDStubber (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/BDDMockito.BDDStubber.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDStubberImpl.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/BDDMockito.BDDStubber.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="BDDMockito.BDDStubber.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Interface BDDMockito.BDDStubber</H2>
|
||||
<DL>
|
||||
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../org/mockito/BDDMockito.BDDStubberImpl.html" title="class in org.mockito">BDDMockito.BDDStubberImpl</A></DD>
|
||||
</DL>
|
||||
<DL>
|
||||
<DT><B>Enclosing class:</B><DD><A HREF="../../org/mockito/BDDMockito.html" title="class in org.mockito">BDDMockito</A></DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public static interface <B>BDDMockito.BDDStubber</B></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
See original <A HREF="../../org/mockito/stubbing/Stubber.html" title="interface in org.mockito.stubbing"><CODE>Stubber</CODE></A>
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
|
||||
<TR ALIGN="right" VALIGN="">
|
||||
<TD NOWRAP><FONT SIZE="-1">
|
||||
<CODE><T> T</CODE></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#given(T)">given</A></B>(T mock)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/Stubber.html#when(T)"><CODE>Stubber.when(Object)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#willAnswer(org.mockito.stubbing.Answer)">willAnswer</A></B>(<A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A> answer)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/Stubber.html#doAnswer(org.mockito.stubbing.Answer)"><CODE>Stubber.doAnswer(Answer)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#willNothing()">willNothing</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/Stubber.html#doNothing()"><CODE>Stubber.doNothing()</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#willReturn(java.lang.Object)">willReturn</A></B>(java.lang.Object toBeReturned)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/Stubber.html#doReturn(java.lang.Object)"><CODE>Stubber.doReturn(Object)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#willThrow(java.lang.Throwable)">willThrow</A></B>(java.lang.Throwable toBeThrown)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/Stubber.html#doThrow(java.lang.Throwable)"><CODE>Stubber.doThrow(Throwable)</CODE></A></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="willAnswer(org.mockito.stubbing.Answer)"><!-- --></A><H3>
|
||||
willAnswer</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willAnswer</B>(<A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A> answer)</PRE>
|
||||
<DL>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/Stubber.html#doAnswer(org.mockito.stubbing.Answer)"><CODE>Stubber.doAnswer(Answer)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willNothing()"><!-- --></A><H3>
|
||||
willNothing</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willNothing</B>()</PRE>
|
||||
<DL>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/Stubber.html#doNothing()"><CODE>Stubber.doNothing()</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willReturn(java.lang.Object)"><!-- --></A><H3>
|
||||
willReturn</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willReturn</B>(java.lang.Object toBeReturned)</PRE>
|
||||
<DL>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/Stubber.html#doReturn(java.lang.Object)"><CODE>Stubber.doReturn(Object)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willThrow(java.lang.Throwable)"><!-- --></A><H3>
|
||||
willThrow</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willThrow</B>(java.lang.Throwable toBeThrown)</PRE>
|
||||
<DL>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/Stubber.html#doThrow(java.lang.Throwable)"><CODE>Stubber.doThrow(Throwable)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="given(java.lang.Object)"><!-- --></A><A NAME="given(T)"><!-- --></A><H3>
|
||||
given</H3>
|
||||
<PRE>
|
||||
<T> T <B>given</B>(T mock)</PRE>
|
||||
<DL>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/Stubber.html#when(T)"><CODE>Stubber.when(Object)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/BDDMockito.BDDStubber.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDStubberImpl.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/BDDMockito.BDDStubber.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="BDDMockito.BDDStubber.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,368 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
BDDMockito.BDDStubberImpl (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.BDDMockito.BDDStubberImpl class">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="BDDMockito.BDDStubberImpl (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/BDDMockito.BDDStubberImpl.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/Captor.html" title="annotation in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/BDDMockito.BDDStubberImpl.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="BDDMockito.BDDStubberImpl.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Class BDDMockito.BDDStubberImpl</H2>
|
||||
<PRE>
|
||||
java.lang.Object
|
||||
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>org.mockito.BDDMockito.BDDStubberImpl</B>
|
||||
</PRE>
|
||||
<DL>
|
||||
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></DD>
|
||||
</DL>
|
||||
<DL>
|
||||
<DT><B>Enclosing class:</B><DD><A HREF="../../org/mockito/BDDMockito.html" title="class in org.mockito">BDDMockito</A></DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public static class <B>BDDMockito.BDDStubberImpl</B><DT>extends java.lang.Object<DT>implements <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
|
||||
<A NAME="constructor_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Constructor Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubberImpl.html#BDDMockito.BDDStubberImpl(org.mockito.stubbing.Stubber)">BDDMockito.BDDStubberImpl</A></B>(<A HREF="../../org/mockito/stubbing/Stubber.html" title="interface in org.mockito.stubbing">Stubber</A> mockitoStubber)</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
|
||||
<TR ALIGN="right" VALIGN="">
|
||||
<TD NOWRAP><FONT SIZE="-1">
|
||||
<CODE><T> T</CODE></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubberImpl.html#given(T)">given</A></B>(T mock)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/Stubber.html#when(T)"><CODE>Stubber.when(Object)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubberImpl.html#willAnswer(org.mockito.stubbing.Answer)">willAnswer</A></B>(<A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A> answer)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/Stubber.html#doAnswer(org.mockito.stubbing.Answer)"><CODE>Stubber.doAnswer(Answer)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubberImpl.html#willNothing()">willNothing</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/Stubber.html#doNothing()"><CODE>Stubber.doNothing()</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubberImpl.html#willReturn(java.lang.Object)">willReturn</A></B>(java.lang.Object toBeReturned)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/Stubber.html#doReturn(java.lang.Object)"><CODE>Stubber.doReturn(Object)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubberImpl.html#willThrow(java.lang.Throwable)">willThrow</A></B>(java.lang.Throwable toBeThrown)</CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/Stubber.html#doThrow(java.lang.Throwable)"><CODE>Stubber.doThrow(Throwable)</CODE></A></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
|
||||
<A NAME="constructor_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Constructor Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="BDDMockito.BDDStubberImpl(org.mockito.stubbing.Stubber)"><!-- --></A><H3>
|
||||
BDDMockito.BDDStubberImpl</H3>
|
||||
<PRE>
|
||||
public <B>BDDMockito.BDDStubberImpl</B>(<A HREF="../../org/mockito/stubbing/Stubber.html" title="interface in org.mockito.stubbing">Stubber</A> mockitoStubber)</PRE>
|
||||
<DL>
|
||||
</DL>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="given(java.lang.Object)"><!-- --></A><A NAME="given(T)"><!-- --></A><H3>
|
||||
given</H3>
|
||||
<PRE>
|
||||
public <T> T <B>given</B>(T mock)</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#given(T)">BDDMockito.BDDStubber</A></CODE></B></DD>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/Stubber.html#when(T)"><CODE>Stubber.when(Object)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#given(T)">given</A></CODE> in interface <CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willAnswer(org.mockito.stubbing.Answer)"><!-- --></A><H3>
|
||||
willAnswer</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willAnswer</B>(<A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A> answer)</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#willAnswer(org.mockito.stubbing.Answer)">BDDMockito.BDDStubber</A></CODE></B></DD>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/Stubber.html#doAnswer(org.mockito.stubbing.Answer)"><CODE>Stubber.doAnswer(Answer)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#willAnswer(org.mockito.stubbing.Answer)">willAnswer</A></CODE> in interface <CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willNothing()"><!-- --></A><H3>
|
||||
willNothing</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willNothing</B>()</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#willNothing()">BDDMockito.BDDStubber</A></CODE></B></DD>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/Stubber.html#doNothing()"><CODE>Stubber.doNothing()</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#willNothing()">willNothing</A></CODE> in interface <CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willReturn(java.lang.Object)"><!-- --></A><H3>
|
||||
willReturn</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willReturn</B>(java.lang.Object toBeReturned)</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#willReturn(java.lang.Object)">BDDMockito.BDDStubber</A></CODE></B></DD>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/Stubber.html#doReturn(java.lang.Object)"><CODE>Stubber.doReturn(Object)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#willReturn(java.lang.Object)">willReturn</A></CODE> in interface <CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willThrow(java.lang.Throwable)"><!-- --></A><H3>
|
||||
willThrow</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willThrow</B>(java.lang.Throwable toBeThrown)</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#willThrow(java.lang.Throwable)">BDDMockito.BDDStubber</A></CODE></B></DD>
|
||||
<DD>See original <A HREF="../../org/mockito/stubbing/Stubber.html#doThrow(java.lang.Throwable)"><CODE>Stubber.doThrow(Throwable)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html#willThrow(java.lang.Throwable)">willThrow</A></CODE> in interface <CODE><A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/BDDMockito.BDDStubberImpl.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/Captor.html" title="annotation in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/BDDMockito.BDDStubberImpl.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="BDDMockito.BDDStubberImpl.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,487 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
BDDMockito (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.BDDMockito class">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="BDDMockito (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/BDDMockito.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/ArgumentMatcher.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/BDDMockito.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="BDDMockito.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#fields_inherited_from_class_org.mockito.Mockito">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Class BDDMockito</H2>
|
||||
<PRE>
|
||||
java.lang.Object
|
||||
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../org/mockito/Matchers.html" title="class in org.mockito">org.mockito.Matchers</A>
|
||||
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../org/mockito/Mockito.html" title="class in org.mockito">org.mockito.Mockito</A>
|
||||
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>org.mockito.BDDMockito</B>
|
||||
</PRE>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public class <B>BDDMockito</B><DT>extends <A HREF="../../org/mockito/Mockito.html" title="class in org.mockito">Mockito</A></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Behavior Driven Development style of writing tests uses <b>//given //when //then</b> comments as fundamental parts of your test methods.
|
||||
This is exactly how we write our tests and we warmly encourage you to do so!
|
||||
<p>
|
||||
Start learning about BDD here: <a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">http://en.wikipedia.org/wiki/Behavior_Driven_Development</a>
|
||||
<p>
|
||||
The problem is that current stubbing api with canonical role of <b>when</b> word does not integrate nicely with <b>//given //when //then</b> comments.
|
||||
It's because stubbing belongs to <b>given</b> component of the test and not to the <b>when</b> component of the test.
|
||||
Hence <A HREF="../../org/mockito/BDDMockito.html" title="class in org.mockito"><CODE>BDDMockito</CODE></A> class introduces an alias so that you stub method calls with <A HREF="../../org/mockito/BDDMockito.html#given(T)"><CODE>given(Object)</CODE></A> method.
|
||||
Now it really nicely integrates with the <b>given</b> component of a BDD style test!
|
||||
<p>
|
||||
Here is how the test might look like:
|
||||
<pre>
|
||||
import static org.mockito.BDDMockito.*;
|
||||
|
||||
Seller seller = mock(Seller.class);
|
||||
Shop shop = new Shop(seller);
|
||||
|
||||
public void shouldBuyBread() throws Exception {
|
||||
//given
|
||||
given(seller.askForBread()).willReturn(new Bread());
|
||||
|
||||
//when
|
||||
Goods goods = shop.buyBread();
|
||||
|
||||
//then
|
||||
assertThat(goods, containBread());
|
||||
}
|
||||
</pre>
|
||||
|
||||
Stubbing voids with throwables:
|
||||
<pre>
|
||||
//given
|
||||
willThrow(new RuntimeException("boo")).given(mock).foo();
|
||||
|
||||
//when
|
||||
Result result = systemUnderTest.perform();
|
||||
|
||||
//then
|
||||
assertEquals(failure, result);
|
||||
</pre>
|
||||
<p>
|
||||
One of the purposes of BDDMockito is also to show how to tailor the mocking syntax to a different programming style.
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
<!-- ======== NESTED CLASS SUMMARY ======== -->
|
||||
|
||||
<A NAME="nested_class_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Nested Class Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static interface</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="type parameter in BDDMockito.BDDMyOngoingStubbing">T</A>></B></CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/OngoingStubbing.html" title="interface in org.mockito.stubbing"><CODE>OngoingStubbing</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static class</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="class in org.mockito">BDDMockito.BDDOngoingStubbingImpl</A><<A HREF="../../org/mockito/BDDMockito.BDDOngoingStubbingImpl.html" title="type parameter in BDDMockito.BDDOngoingStubbingImpl">T</A>></B></CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static interface</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></B></CODE>
|
||||
|
||||
<BR>
|
||||
See original <A HREF="../../org/mockito/stubbing/Stubber.html" title="interface in org.mockito.stubbing"><CODE>Stubber</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static class</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.BDDStubberImpl.html" title="class in org.mockito">BDDMockito.BDDStubberImpl</A></B></CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<!-- =========== FIELD SUMMARY =========== -->
|
||||
|
||||
<A NAME="field_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Field Summary</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="fields_inherited_from_class_org.mockito.Mockito"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Fields inherited from class org.mockito.<A HREF="../../org/mockito/Mockito.html" title="class in org.mockito">Mockito</A></B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><A HREF="../../org/mockito/Mockito.html#CALLS_REAL_METHODS">CALLS_REAL_METHODS</A>, <A HREF="../../org/mockito/Mockito.html#RETURNS_DEEP_STUBS">RETURNS_DEEP_STUBS</A>, <A HREF="../../org/mockito/Mockito.html#RETURNS_DEFAULTS">RETURNS_DEFAULTS</A>, <A HREF="../../org/mockito/Mockito.html#RETURNS_MOCKS">RETURNS_MOCKS</A>, <A HREF="../../org/mockito/Mockito.html#RETURNS_SMART_NULLS">RETURNS_SMART_NULLS</A></CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
|
||||
<A NAME="constructor_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Constructor Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.html#BDDMockito()">BDDMockito</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
|
||||
<TR ALIGN="right" VALIGN="">
|
||||
<TD NOWRAP><FONT SIZE="-1">
|
||||
<CODE><T> <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><T></CODE></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.html#given(T)">given</A></B>(T methodCall)</CODE>
|
||||
|
||||
<BR>
|
||||
see original <A HREF="../../org/mockito/Mockito.html#when(T)"><CODE>Mockito.when(Object)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.html#willAnswer(org.mockito.stubbing.Answer)">willAnswer</A></B>(<A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A> answer)</CODE>
|
||||
|
||||
<BR>
|
||||
see original <A HREF="../../org/mockito/Mockito.html#doAnswer(org.mockito.stubbing.Answer)"><CODE>Mockito.doAnswer(Answer)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.html#willCallRealMethod()">willCallRealMethod</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
see original <A HREF="../../org/mockito/Mockito.html#doCallRealMethod()"><CODE>Mockito.doCallRealMethod()</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.html#willDoNothing()">willDoNothing</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
see original <A HREF="../../org/mockito/Mockito.html#doNothing()"><CODE>Mockito.doNothing()</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.html#willReturn(java.lang.Object)">willReturn</A></B>(java.lang.Object toBeReturned)</CODE>
|
||||
|
||||
<BR>
|
||||
see original <A HREF="../../org/mockito/Mockito.html#doReturn(java.lang.Object)"><CODE>Mockito.doReturn(Object)</CODE></A></TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>static <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/BDDMockito.html#willThrow(java.lang.Throwable)">willThrow</A></B>(java.lang.Throwable toBeThrown)</CODE>
|
||||
|
||||
<BR>
|
||||
see original <A HREF="../../org/mockito/Mockito.html#doThrow(java.lang.Throwable)"><CODE>Mockito.doThrow(Throwable)</CODE></A></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_org.mockito.Mockito"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class org.mockito.<A HREF="../../org/mockito/Mockito.html" title="class in org.mockito">Mockito</A></B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><A HREF="../../org/mockito/Mockito.html#atLeast(int)">atLeast</A>, <A HREF="../../org/mockito/Mockito.html#atLeastOnce()">atLeastOnce</A>, <A HREF="../../org/mockito/Mockito.html#atMost(int)">atMost</A>, <A HREF="../../org/mockito/Mockito.html#doAnswer(org.mockito.stubbing.Answer)">doAnswer</A>, <A HREF="../../org/mockito/Mockito.html#doCallRealMethod()">doCallRealMethod</A>, <A HREF="../../org/mockito/Mockito.html#doNothing()">doNothing</A>, <A HREF="../../org/mockito/Mockito.html#doReturn(java.lang.Object)">doReturn</A>, <A HREF="../../org/mockito/Mockito.html#doThrow(java.lang.Throwable)">doThrow</A>, <A HREF="../../org/mockito/Mockito.html#inOrder(java.lang.Object...)">inOrder</A>, <A HREF="../../org/mockito/Mockito.html#mock(java.lang.Class)">mock</A>, <A HREF="../../org/mockito/Mockito.html#mock(java.lang.Class, org.mockito.stubbing.Answer)">mock</A>, <A HREF="../../org/mockito/Mockito.html#mock(java.lang.Class, org.mockito.MockSettings)">mock</A>, <A HREF="../../org/mockito/Mockito.html#mock(java.lang.Class, org.mockito.ReturnValues)">mock</A>, <A HREF="../../org/mockito/Mockito.html#mock(java.lang.Class, java.lang.String)">mock</A>, <A HREF="../../org/mockito/Mockito.html#never()">never</A>, <A HREF="../../org/mockito/Mockito.html#only()">only</A>, <A HREF="../../org/mockito/Mockito.html#reset(T...)">reset</A>, <A HREF="../../org/mockito/Mockito.html#spy(T)">spy</A>, <A HREF="../../org/mockito/Mockito.html#stub(T)">stub</A>, <A HREF="../../org/mockito/Mockito.html#stubVoid(T)">stubVoid</A>, <A HREF="../../org/mockito/Mockito.html#timeout(int)">timeout</A>, <A HREF="../../org/mockito/Mockito.html#times(int)">times</A>, <A HREF="../../org/mockito/Mockito.html#validateMockitoUsage()">validateMockitoUsage</A>, <A HREF="../../org/mockito/Mockito.html#verify(T)">verify</A>, <A HREF="../../org/mockito/Mockito.html#verify(T, org.mockito.verification.VerificationMode)">verify</A>, <A HREF="../../org/mockito/Mockito.html#verifyNoMoreInteractions(java.lang.Object...)">verifyNoMoreInteractions</A>, <A HREF="../../org/mockito/Mockito.html#verifyZeroInteractions(java.lang.Object...)">verifyZeroInteractions</A>, <A HREF="../../org/mockito/Mockito.html#when(T)">when</A>, <A HREF="../../org/mockito/Mockito.html#withSettings()">withSettings</A></CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_org.mockito.Matchers"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class org.mockito.<A HREF="../../org/mockito/Matchers.html" title="class in org.mockito">Matchers</A></B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><A HREF="../../org/mockito/Matchers.html#any()">any</A>, <A HREF="../../org/mockito/Matchers.html#any(java.lang.Class)">any</A>, <A HREF="../../org/mockito/Matchers.html#anyBoolean()">anyBoolean</A>, <A HREF="../../org/mockito/Matchers.html#anyByte()">anyByte</A>, <A HREF="../../org/mockito/Matchers.html#anyChar()">anyChar</A>, <A HREF="../../org/mockito/Matchers.html#anyCollection()">anyCollection</A>, <A HREF="../../org/mockito/Matchers.html#anyCollectionOf(java.lang.Class)">anyCollectionOf</A>, <A HREF="../../org/mockito/Matchers.html#anyDouble()">anyDouble</A>, <A HREF="../../org/mockito/Matchers.html#anyFloat()">anyFloat</A>, <A HREF="../../org/mockito/Matchers.html#anyInt()">anyInt</A>, <A HREF="../../org/mockito/Matchers.html#anyList()">anyList</A>, <A HREF="../../org/mockito/Matchers.html#anyListOf(java.lang.Class)">anyListOf</A>, <A HREF="../../org/mockito/Matchers.html#anyLong()">anyLong</A>, <A HREF="../../org/mockito/Matchers.html#anyMap()">anyMap</A>, <A HREF="../../org/mockito/Matchers.html#anyObject()">anyObject</A>, <A HREF="../../org/mockito/Matchers.html#anySet()">anySet</A>, <A HREF="../../org/mockito/Matchers.html#anySetOf(java.lang.Class)">anySetOf</A>, <A HREF="../../org/mockito/Matchers.html#anyShort()">anyShort</A>, <A HREF="../../org/mockito/Matchers.html#anyString()">anyString</A>, <A HREF="../../org/mockito/Matchers.html#anyVararg()">anyVararg</A>, <A HREF="../../org/mockito/Matchers.html#argThat(org.hamcrest.Matcher)">argThat</A>, <A HREF="../../org/mockito/Matchers.html#booleanThat(org.hamcrest.Matcher)">booleanThat</A>, <A HREF="../../org/mockito/Matchers.html#byteThat(org.hamcrest.Matcher)">byteThat</A>, <A HREF="../../org/mockito/Matchers.html#charThat(org.hamcrest.Matcher)">charThat</A>, <A HREF="../../org/mockito/Matchers.html#contains(java.lang.String)">contains</A>, <A HREF="../../org/mockito/Matchers.html#doubleThat(org.hamcrest.Matcher)">doubleThat</A>, <A HREF="../../org/mockito/Matchers.html#endsWith(java.lang.String)">endsWith</A>, <A HREF="../../org/mockito/Matchers.html#eq(boolean)">eq</A>, <A HREF="../../org/mockito/Matchers.html#eq(byte)">eq</A>, <A HREF="../../org/mockito/Matchers.html#eq(char)">eq</A>, <A HREF="../../org/mockito/Matchers.html#eq(double)">eq</A>, <A HREF="../../org/mockito/Matchers.html#eq(float)">eq</A>, <A HREF="../../org/mockito/Matchers.html#eq(int)">eq</A>, <A HREF="../../org/mockito/Matchers.html#eq(long)">eq</A>, <A HREF="../../org/mockito/Matchers.html#eq(short)">eq</A>, <A HREF="../../org/mockito/Matchers.html#eq(T)">eq</A>, <A HREF="../../org/mockito/Matchers.html#floatThat(org.hamcrest.Matcher)">floatThat</A>, <A HREF="../../org/mockito/Matchers.html#intThat(org.hamcrest.Matcher)">intThat</A>, <A HREF="../../org/mockito/Matchers.html#isA(java.lang.Class)">isA</A>, <A HREF="../../org/mockito/Matchers.html#isNotNull()">isNotNull</A>, <A HREF="../../org/mockito/Matchers.html#isNull()">isNull</A>, <A HREF="../../org/mockito/Matchers.html#longThat(org.hamcrest.Matcher)">longThat</A>, <A HREF="../../org/mockito/Matchers.html#matches(java.lang.String)">matches</A>, <A HREF="../../org/mockito/Matchers.html#notNull()">notNull</A>, <A HREF="../../org/mockito/Matchers.html#refEq(T, java.lang.String...)">refEq</A>, <A HREF="../../org/mockito/Matchers.html#same(T)">same</A>, <A HREF="../../org/mockito/Matchers.html#shortThat(org.hamcrest.Matcher)">shortThat</A>, <A HREF="../../org/mockito/Matchers.html#startsWith(java.lang.String)">startsWith</A></CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
|
||||
<A NAME="constructor_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Constructor Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="BDDMockito()"><!-- --></A><H3>
|
||||
BDDMockito</H3>
|
||||
<PRE>
|
||||
public <B>BDDMockito</B>()</PRE>
|
||||
<DL>
|
||||
</DL>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="given(java.lang.Object)"><!-- --></A><A NAME="given(T)"><!-- --></A><H3>
|
||||
given</H3>
|
||||
<PRE>
|
||||
public static <T> <A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito">BDDMockito.BDDMyOngoingStubbing</A><T> <B>given</B>(T methodCall)</PRE>
|
||||
<DL>
|
||||
<DD>see original <A HREF="../../org/mockito/Mockito.html#when(T)"><CODE>Mockito.when(Object)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willThrow(java.lang.Throwable)"><!-- --></A><H3>
|
||||
willThrow</H3>
|
||||
<PRE>
|
||||
public static <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willThrow</B>(java.lang.Throwable toBeThrown)</PRE>
|
||||
<DL>
|
||||
<DD>see original <A HREF="../../org/mockito/Mockito.html#doThrow(java.lang.Throwable)"><CODE>Mockito.doThrow(Throwable)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willAnswer(org.mockito.stubbing.Answer)"><!-- --></A><H3>
|
||||
willAnswer</H3>
|
||||
<PRE>
|
||||
public static <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willAnswer</B>(<A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A> answer)</PRE>
|
||||
<DL>
|
||||
<DD>see original <A HREF="../../org/mockito/Mockito.html#doAnswer(org.mockito.stubbing.Answer)"><CODE>Mockito.doAnswer(Answer)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willDoNothing()"><!-- --></A><H3>
|
||||
willDoNothing</H3>
|
||||
<PRE>
|
||||
public static <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willDoNothing</B>()</PRE>
|
||||
<DL>
|
||||
<DD>see original <A HREF="../../org/mockito/Mockito.html#doNothing()"><CODE>Mockito.doNothing()</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willReturn(java.lang.Object)"><!-- --></A><H3>
|
||||
willReturn</H3>
|
||||
<PRE>
|
||||
public static <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willReturn</B>(java.lang.Object toBeReturned)</PRE>
|
||||
<DL>
|
||||
<DD>see original <A HREF="../../org/mockito/Mockito.html#doReturn(java.lang.Object)"><CODE>Mockito.doReturn(Object)</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="willCallRealMethod()"><!-- --></A><H3>
|
||||
willCallRealMethod</H3>
|
||||
<PRE>
|
||||
public static <A HREF="../../org/mockito/BDDMockito.BDDStubber.html" title="interface in org.mockito">BDDMockito.BDDStubber</A> <B>willCallRealMethod</B>()</PRE>
|
||||
<DL>
|
||||
<DD>see original <A HREF="../../org/mockito/Mockito.html#doCallRealMethod()"><CODE>Mockito.doCallRealMethod()</CODE></A>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/BDDMockito.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/ArgumentMatcher.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDMyOngoingStubbing.html" title="interface in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/BDDMockito.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="BDDMockito.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#fields_inherited_from_class_org.mockito.Mockito">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,191 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
Captor (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.Captor class">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="Captor (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Captor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDStubberImpl.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/InjectMocks.html" title="annotation in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/Captor.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="Captor.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: REQUIRED | OPTIONAL</FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: ELEMENT</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Annotation Type Captor</H2>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE><FONT SIZE="-1">@Retention(value=RUNTIME)
|
||||
@Target(value=FIELD)
|
||||
@Documented
|
||||
</FONT>public @interface <B>Captor</B></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Allows shorthand <A HREF="../../org/mockito/ArgumentCaptor.html" title="class in org.mockito"><CODE>ArgumentCaptor</CODE></A> creation on fields.
|
||||
<p>Example:
|
||||
<pre>
|
||||
public class Test{
|
||||
|
||||
@Captor ArgumentCaptor<AsyncCallback<Foo>> captor;
|
||||
|
||||
@Before
|
||||
public void init(){
|
||||
MockitoAnnotations.initMocks(this);
|
||||
}
|
||||
|
||||
@Test public void shouldDoSomethingUseful() {
|
||||
//...
|
||||
verify(mock.doStuff(captor.capture()));
|
||||
assertEquals("foo", captor.getValue());
|
||||
}
|
||||
}
|
||||
</pre>
|
||||
<p>
|
||||
One of the advantages of using @Captor annotation is that you can avoid warnings related capturing complex generic types.
|
||||
<P>
|
||||
|
||||
<P>
|
||||
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Captor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/BDDMockito.BDDStubberImpl.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/InjectMocks.html" title="annotation in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/Captor.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="Captor.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: REQUIRED | OPTIONAL</FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: ELEMENT</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,324 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
InOrder (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.InOrder interface">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="InOrder (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/InOrder.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/InjectMocks.html" title="annotation in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/Matchers.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/InOrder.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="InOrder.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Interface InOrder</H2>
|
||||
<DL>
|
||||
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../org/mockito/internal/InOrderImpl.html" title="class in org.mockito.internal">InOrderImpl</A></DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public interface <B>InOrder</B></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Allows verification in order. E.g:
|
||||
|
||||
<pre>
|
||||
InOrder inOrder = inOrder(firstMock, secondMock);
|
||||
|
||||
inOrder.verify(firstMock).add("was called first");
|
||||
inOrder.verify(secondMock).add("was called second");
|
||||
</pre>
|
||||
|
||||
As of Mockito 1.8.4 you can verifyNoMoreInvocations() in order-sensitive way. Read more: <A HREF="../../org/mockito/InOrder.html#verifyNoMoreInteractions()"><CODE>verifyNoMoreInteractions()</CODE></A>
|
||||
<p>
|
||||
|
||||
See examples in javadoc for <A HREF="../../org/mockito/Mockito.html" title="class in org.mockito"><CODE>Mockito</CODE></A> class
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
|
||||
<TR ALIGN="right" VALIGN="">
|
||||
<TD NOWRAP><FONT SIZE="-1">
|
||||
<CODE><T> T</CODE></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/InOrder.html#verify(T)">verify</A></B>(T mock)</CODE>
|
||||
|
||||
<BR>
|
||||
Verifies interaction <b>happened once</b> in order.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
|
||||
<TR ALIGN="right" VALIGN="">
|
||||
<TD NOWRAP><FONT SIZE="-1">
|
||||
<CODE><T> T</CODE></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/InOrder.html#verify(T, org.mockito.verification.VerificationMode)">verify</A></B>(T mock,
|
||||
<A HREF="../../org/mockito/verification/VerificationMode.html" title="interface in org.mockito.verification">VerificationMode</A> mode)</CODE>
|
||||
|
||||
<BR>
|
||||
Verifies interaction in order.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/InOrder.html#verifyNoMoreInteractions()">verifyNoMoreInteractions</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Verifies that no more interactions happened <b>in order</b>.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="verify(java.lang.Object)"><!-- --></A><A NAME="verify(T)"><!-- --></A><H3>
|
||||
verify</H3>
|
||||
<PRE>
|
||||
<T> T <B>verify</B>(T mock)</PRE>
|
||||
<DL>
|
||||
<DD>Verifies interaction <b>happened once</b> in order.
|
||||
<p>
|
||||
Alias to <code>inOrder.verify(mock, times(1))</code>
|
||||
<p>
|
||||
Example:
|
||||
<pre>
|
||||
InOrder inOrder = inOrder(firstMock, secondMock);
|
||||
|
||||
inOrder.verify(firstMock).someMethod("was called first");
|
||||
inOrder.verify(secondMock).someMethod("was called second");
|
||||
</pre>
|
||||
|
||||
See examples in javadoc for <A HREF="../../org/mockito/Mockito.html" title="class in org.mockito"><CODE>Mockito</CODE></A> class
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Parameters:</B><DD><CODE>mock</CODE> - to be verified
|
||||
<DT><B>Returns:</B><DD>mock object itself</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="verify(java.lang.Object,org.mockito.verification.VerificationMode)"><!-- --></A><A NAME="verify(T, org.mockito.verification.VerificationMode)"><!-- --></A><H3>
|
||||
verify</H3>
|
||||
<PRE>
|
||||
<T> T <B>verify</B>(T mock,
|
||||
<A HREF="../../org/mockito/verification/VerificationMode.html" title="interface in org.mockito.verification">VerificationMode</A> mode)</PRE>
|
||||
<DL>
|
||||
<DD>Verifies interaction in order. E.g:
|
||||
|
||||
<pre>
|
||||
InOrder inOrder = inOrder(firstMock, secondMock);
|
||||
|
||||
inOrder.verify(firstMock, times(2)).someMethod("was called first two times");
|
||||
inOrder.verify(secondMock, atLeastOnce()).someMethod("was called second at least once");
|
||||
</pre>
|
||||
|
||||
See examples in javadoc for <A HREF="../../org/mockito/Mockito.html" title="class in org.mockito"><CODE>Mockito</CODE></A> class
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Parameters:</B><DD><CODE>mock</CODE> - to be verified<DD><CODE>mode</CODE> - for example times(x) or atLeastOnce()
|
||||
<DT><B>Returns:</B><DD>mock object itself</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="verifyNoMoreInteractions()"><!-- --></A><H3>
|
||||
verifyNoMoreInteractions</H3>
|
||||
<PRE>
|
||||
void <B>verifyNoMoreInteractions</B>()</PRE>
|
||||
<DL>
|
||||
<DD>Verifies that no more interactions happened <b>in order</b>.
|
||||
Different from <A HREF="../../org/mockito/Mockito.html#verifyNoMoreInteractions(java.lang.Object...)"><CODE>Mockito.verifyNoMoreInteractions(Object...)</CODE></A> because the order of verification matters.
|
||||
<p>
|
||||
Example:
|
||||
<pre>
|
||||
mock.foo(); //1st
|
||||
mock.bar(); //2nd
|
||||
mock.baz(); //3rd
|
||||
|
||||
InOrder inOrder = inOrder(mock);
|
||||
|
||||
inOrder.verify(mock).bar(); //2n
|
||||
inOrder.verify(mock).baz(); //3rd (last method)
|
||||
|
||||
//passes because there are no more interactions after last method:
|
||||
inOrder.verifyNoMoreInteractions();
|
||||
|
||||
//however this fails because 1st method was not verified:
|
||||
Mockito.verifyNoMoreInteractions(mock);
|
||||
</pre>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/InOrder.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/InjectMocks.html" title="annotation in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/Matchers.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/InOrder.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="InOrder.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,211 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
InjectMocks (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.InjectMocks class">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="InjectMocks (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/InjectMocks.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/Captor.html" title="annotation in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/InOrder.html" title="interface in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/InjectMocks.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="InjectMocks.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: REQUIRED | OPTIONAL</FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: ELEMENT</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Annotation Type InjectMocks</H2>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE><FONT SIZE="-1">@Documented
|
||||
@Target(value=FIELD)
|
||||
@Retention(value=RUNTIME)
|
||||
</FONT>public @interface <B>InjectMocks</B></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<ul>
|
||||
<li>Allows shorthand mock and spy injection.</li>
|
||||
<li>Minimizes repetitive mock and spy injection.</li>
|
||||
</ul>
|
||||
<p>
|
||||
Currently it only supports setter injection. If you prefer constructor injection - please contribute a patch.
|
||||
<p>
|
||||
Mockito tries to inject by type (using name in case types are the same).
|
||||
Mockito does not throw anything when injection fails - you will have to satisfy the dependencies manually.
|
||||
<p>
|
||||
Example:
|
||||
<pre>
|
||||
public class ArticleManagerTest extends SampleBaseTestCase {
|
||||
|
||||
@Mock private ArticleCalculator calculator;
|
||||
@Mock private ArticleDatabase database;
|
||||
@Spy private UserProvider userProvider = new ConsumerUserProvider();
|
||||
|
||||
@InjectMocks private ArticleManager manager = new ArticleManager();
|
||||
|
||||
@Test public void shouldDoSomething() {
|
||||
manager.initiateArticle();
|
||||
verify(database).addListener(any(ArticleListener.class));
|
||||
}
|
||||
}
|
||||
|
||||
public class SampleBaseTestCase {
|
||||
|
||||
@Before public void initMocks() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
}
|
||||
}
|
||||
</pre>
|
||||
|
||||
<b>The field annotated with @InjectMocks must be initialized.</b>
|
||||
<p>
|
||||
<b><code>MockitoAnnotations.injectMocks(this)</code></b> method has to called to initialize annotated objects.
|
||||
<p>
|
||||
In above example, <code>injectMocks()</code> is called in @Before (JUnit4) method of test's base class.
|
||||
For JUnit3 <code>injectMocks()</code> can go to <code>setup()</code> method of a base class.
|
||||
You can also put injectMocks() in your JUnit runner (@RunWith) or use built-in runners: <A HREF="../../org/mockito/runners/MockitoJUnitRunner.html" title="class in org.mockito.runners"><CODE>MockitoJUnitRunner</CODE></A>
|
||||
<P>
|
||||
|
||||
<P>
|
||||
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/InjectMocks.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/Captor.html" title="annotation in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/InOrder.html" title="interface in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/InjectMocks.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="InjectMocks.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: REQUIRED | OPTIONAL</FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: ELEMENT</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,284 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
Mock (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.Mock class">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="Mock (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Mock.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/Matchers.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/Mockito.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/Mock.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="Mock.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: REQUIRED | <A HREF="#annotation_type_optional_element_summary">OPTIONAL</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: <A HREF="#annotation_type_element_detail">ELEMENT</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Annotation Type Mock</H2>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE><FONT SIZE="-1">@Target(value=FIELD)
|
||||
@Retention(value=RUNTIME)
|
||||
@Documented
|
||||
</FONT>public @interface <B>Mock</B></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<ul>
|
||||
<li>Allows shorthand mock creation.</li>
|
||||
<li>Minimizes repetitive mock creation code.</li>
|
||||
<li>Makes the test class more readable.</li>
|
||||
<li>Makes the verification error easier to read because the <b>field name</b> is used to identify the mock.</li>
|
||||
</ul>
|
||||
|
||||
<pre>
|
||||
public class ArticleManagerTest extends SampleBaseTestCase {
|
||||
|
||||
@Mock private ArticleCalculator calculator;
|
||||
@Mock(name = "dbMock") private ArticleDatabase database;
|
||||
@Mock(answer = RETURNS_MOCKS) private UserProvider userProvider;
|
||||
|
||||
private ArticleManager manager;
|
||||
|
||||
@Before public void setup() {
|
||||
manager = new ArticleManager(userProvider, database, calculator);
|
||||
}
|
||||
}
|
||||
|
||||
public class SampleBaseTestCase {
|
||||
|
||||
@Before public void initMocks() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
}
|
||||
}
|
||||
</pre>
|
||||
|
||||
<b><code>MockitoAnnotations.initMocks(this)</code></b> method has to called to initialize annotated mocks.
|
||||
<p>
|
||||
In above example, <code>initMocks()</code> is called in @Before (JUnit4) method of test's base class.
|
||||
For JUnit3 <code>initMocks()</code> can go to <code>setup()</code> method of a base class.
|
||||
You can also put initMocks() in your JUnit runner (@RunWith) or use built-in runners: <A HREF="../../org/mockito/runners/MockitoJUnitRunner.html" title="class in org.mockito.runners"><CODE>MockitoJUnitRunner</CODE></A>
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
|
||||
|
||||
<A NAME="annotation_type_optional_element_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Optional Element Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/Mock.html#answer()">answer</A></B></CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> java.lang.Class<?>[]</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/Mock.html#extraInterfaces()">extraInterfaces</A></B></CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> java.lang.String</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/Mock.html#name()">name</A></B></CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
<A NAME="answer()"><!-- --></A><H3>
|
||||
answer</H3>
|
||||
<PRE>
|
||||
public abstract <A HREF="../../org/mockito/Answers.html" title="enum in org.mockito">Answers</A> <B>answer</B></PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
<DL>
|
||||
<DT><B>Default:</B><DD>RETURNS_DEFAULTS</DD>
|
||||
</DL>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="name()"><!-- --></A><H3>
|
||||
name</H3>
|
||||
<PRE>
|
||||
public abstract java.lang.String <B>name</B></PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
<DL>
|
||||
<DT><B>Default:</B><DD>""</DD>
|
||||
</DL>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="extraInterfaces()"><!-- --></A><H3>
|
||||
extraInterfaces</H3>
|
||||
<PRE>
|
||||
public abstract java.lang.Class<?>[] <B>extraInterfaces</B></PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
<DL>
|
||||
<DT><B>Default:</B><DD>{}</DD>
|
||||
</DL>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Mock.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/Matchers.html" title="class in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/Mockito.html" title="class in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/Mock.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="Mock.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: REQUIRED | <A HREF="#annotation_type_optional_element_summary">OPTIONAL</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: <A HREF="#annotation_type_element_detail">ELEMENT</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,409 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.5.0_22) on Mon May 24 23:03:13 CEST 2010 -->
|
||||
<TITLE>
|
||||
MockSettings (Mockito API)
|
||||
</TITLE>
|
||||
|
||||
<META NAME="keywords" CONTENT="org.mockito.MockSettings interface">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
parent.document.title="MockSettings (Mockito API)";
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/MockSettings.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/MockitoDebugger.html" title="interface in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/ReturnValues.html" title="interface in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/MockSettings.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="MockSettings.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
org.mockito</FONT>
|
||||
<BR>
|
||||
Interface MockSettings</H2>
|
||||
<DL>
|
||||
<DT><B>All Superinterfaces:</B> <DD>java.io.Serializable</DD>
|
||||
</DL>
|
||||
<DL>
|
||||
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../org/mockito/internal/creation/MockSettingsImpl.html" title="class in org.mockito.internal.creation">MockSettingsImpl</A></DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public interface <B>MockSettings</B><DT>extends java.io.Serializable</DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Allows mock creation with additional mock settings.
|
||||
<p>
|
||||
Don't use it too often.
|
||||
Consider writing simple tests that use simple mocks.
|
||||
Repeat after me: simple tests push simple, KISSy, readable & maintainable code.
|
||||
If you cannot write a test in a simple way - refactor the code under test.
|
||||
<p>
|
||||
Examples of mock settings:
|
||||
<pre>
|
||||
//Creates mock with different default answer & name
|
||||
Foo mock = mock(Foo.class, withSettings()
|
||||
.defaultAnswer(RETURNS_SMART_NULLS)
|
||||
.name("cool mockie"));
|
||||
|
||||
//Creates mock with different default answer, descriptive name and extra interfaces
|
||||
Foo mock = mock(Foo.class, withSettings()
|
||||
.defaultAnswer(RETURNS_SMART_NULLS)
|
||||
.name("cool mockie")
|
||||
.extraInterfaces(Bar.class));
|
||||
</pre>
|
||||
<A HREF="../../org/mockito/MockSettings.html" title="interface in org.mockito"><CODE>MockSettings</CODE></A> has been introduced for two reasons.
|
||||
Firstly, to make it easy to add another mock setting when the demand comes.
|
||||
Secondly, to enable combining together different mock settings without introducing zillions of overloaded mock() methods.
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/MockSettings.html" title="interface in org.mockito">MockSettings</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/MockSettings.html#defaultAnswer(org.mockito.stubbing.Answer)">defaultAnswer</A></B>(<A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A> defaultAnswer)</CODE>
|
||||
|
||||
<BR>
|
||||
Specifies default answers to interactions.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/MockSettings.html" title="interface in org.mockito">MockSettings</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/MockSettings.html#extraInterfaces(java.lang.Class...)">extraInterfaces</A></B>(java.lang.Class<?>... interfaces)</CODE>
|
||||
|
||||
<BR>
|
||||
Specifies extra interfaces the mock should implement.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/MockSettings.html" title="interface in org.mockito">MockSettings</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/MockSettings.html#name(java.lang.String)">name</A></B>(java.lang.String name)</CODE>
|
||||
|
||||
<BR>
|
||||
Specifies mock name.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/MockSettings.html" title="interface in org.mockito">MockSettings</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/MockSettings.html#serializable()">serializable</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Configures the mock to be serializable.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../org/mockito/MockSettings.html" title="interface in org.mockito">MockSettings</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../org/mockito/MockSettings.html#spiedInstance(java.lang.Object)">spiedInstance</A></B>(java.lang.Object instance)</CODE>
|
||||
|
||||
<BR>
|
||||
Specifies the instance to spy on.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="extraInterfaces(java.lang.Class...)"><!-- --></A><H3>
|
||||
extraInterfaces</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/MockSettings.html" title="interface in org.mockito">MockSettings</A> <B>extraInterfaces</B>(java.lang.Class<?>... interfaces)</PRE>
|
||||
<DL>
|
||||
<DD>Specifies extra interfaces the mock should implement. Might be useful for legacy code or some corner cases.
|
||||
For background, see issue 51 <a href="http://code.google.com/p/mockito/issues/detail?id=51">here</a>
|
||||
<p>
|
||||
This mysterious feature should be used very occasionally.
|
||||
The object under test should know exactly its collaborators & dependencies.
|
||||
If you happen to use it often than please make sure you are really producing simple, clean & readable code.
|
||||
<p>
|
||||
Examples:
|
||||
<pre>
|
||||
Foo foo = mock(Foo.class, withSettings().extraInterfaces(Bar.class, Baz.class));
|
||||
|
||||
//now, the mock implements extra interfaces, so following casting is possible:
|
||||
Bar bar = (Bar) foo;
|
||||
Baz baz = (Baz) foo;
|
||||
</pre>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
<DT><B>Parameters:</B><DD><CODE>interfaces</CODE> - extra interfaces the should implement.
|
||||
<DT><B>Returns:</B><DD>settings instance so that you can fluently specify other settings</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="name(java.lang.String)"><!-- --></A><H3>
|
||||
name</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/MockSettings.html" title="interface in org.mockito">MockSettings</A> <B>name</B>(java.lang.String name)</PRE>
|
||||
<DL>
|
||||
<DD>Specifies mock name. Naming mocks can be helpful for debugging - the name is used in all verification errors.
|
||||
<p>
|
||||
Beware that naming mocks is not a solution for complex code which uses too many mocks or collaborators.
|
||||
<b>If you have too many mocks then refactor the code</b> so that it's easy to test/debug without necessity of naming mocks.
|
||||
<p>
|
||||
<b>If you use @Mock annotation then you've got naming mocks for free!</b> @Mock uses field name as mock name. <A HREF="../../org/mockito/Mock.html" title="annotation in org.mockito"><CODE>Read more.</CODE></A>
|
||||
<p>
|
||||
Examples:
|
||||
<pre>
|
||||
Foo foo = mock(Foo.class, withSettings().name("foo"));
|
||||
|
||||
//Below does exactly the same:
|
||||
Foo foo = mock(Foo.class, "foo");
|
||||
</pre>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the mock, later used in all verification errors
|
||||
<DT><B>Returns:</B><DD>settings instance so that you can fluently specify other settings</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="spiedInstance(java.lang.Object)"><!-- --></A><H3>
|
||||
spiedInstance</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/MockSettings.html" title="interface in org.mockito">MockSettings</A> <B>spiedInstance</B>(java.lang.Object instance)</PRE>
|
||||
<DL>
|
||||
<DD>Specifies the instance to spy on. Makes sense only for spies/partial mocks.
|
||||
Sets the real implementation to be called when the method is called on a mock object.
|
||||
<p>
|
||||
As usual you are going to read <b>the partial mock warning</b>:
|
||||
Object oriented programming is more less tackling complexity by dividing the complexity into separate, specific, SRPy objects.
|
||||
How does partial mock fit into this paradigm? Well, it just doesn't...
|
||||
Partial mock usually means that the complexity has been moved to a different method on the same object.
|
||||
In most cases, this is not the way you want to design your application.
|
||||
<p>
|
||||
However, there are rare cases when partial mocks come handy:
|
||||
dealing with code you cannot change easily (3rd party interfaces, interim refactoring of legacy code etc.)
|
||||
However, I wouldn't use partial mocks for new, test-driven & well-designed code.
|
||||
<p>
|
||||
Enough warnings about partial mocks, see an example how spiedInstance() works:
|
||||
<pre>
|
||||
Foo foo = mock(Foo.class, spiedInstance(fooInstance));
|
||||
|
||||
//Below does exactly the same:
|
||||
Foo foo = spy(fooInstance);
|
||||
</pre>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
<DT><B>Parameters:</B><DD><CODE>instance</CODE> - to spy on
|
||||
<DT><B>Returns:</B><DD>settings instance so that you can fluently specify other settings</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="defaultAnswer(org.mockito.stubbing.Answer)"><!-- --></A><H3>
|
||||
defaultAnswer</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/MockSettings.html" title="interface in org.mockito">MockSettings</A> <B>defaultAnswer</B>(<A HREF="../../org/mockito/stubbing/Answer.html" title="interface in org.mockito.stubbing">Answer</A> defaultAnswer)</PRE>
|
||||
<DL>
|
||||
<DD>Specifies default answers to interactions.
|
||||
It's quite advanced feature and typically you don't need it to write decent tests.
|
||||
However it can be helpful when working with legacy systems.
|
||||
<p>
|
||||
It is the default answer so it will be used <b>only when you don't</b> stub the method call.
|
||||
|
||||
<pre>
|
||||
Foo mock = mock(Foo.class, withSettings().defaultAnswer(RETURNS_SMART_NULLS));
|
||||
Foo mockTwo = mock(Foo.class, withSettings().defaultAnswer(new YourOwnAnswer()));
|
||||
|
||||
//Below does exactly the same:
|
||||
Foo mockTwo = mock(Foo.class, new YourOwnAnswer());
|
||||
</pre>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
<DT><B>Parameters:</B><DD><CODE>defaultAnswer</CODE> - default answer to be used by mock when not stubbed
|
||||
<DT><B>Returns:</B><DD>settings instance so that you can fluently specify other settings</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="serializable()"><!-- --></A><H3>
|
||||
serializable</H3>
|
||||
<PRE>
|
||||
<A HREF="../../org/mockito/MockSettings.html" title="interface in org.mockito">MockSettings</A> <B>serializable</B>()</PRE>
|
||||
<DL>
|
||||
<DD>Configures the mock to be serializable. With this feature you can use a mock in a place that requires dependencies to be serializable.
|
||||
<p>
|
||||
WARNING: This should be rarely used in unit testing.
|
||||
<p>
|
||||
The behaviour was implemented for a specific use case of a BDD spec that had an unreliable external dependency. This
|
||||
was in a web environment and the objects from the external dependency were being serialized to pass between layers.
|
||||
<p>
|
||||
Example:
|
||||
<pre>
|
||||
List serializableMock = mock(List.class, withSettings().serializable());
|
||||
</pre>
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
|
||||
<DT><B>Returns:</B><DD>settings instance so that you can fluently specify other settings</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/MockSettings.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../org/mockito/MockitoDebugger.html" title="interface in org.mockito"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../org/mockito/ReturnValues.html" title="interface in org.mockito"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../index.html?org/mockito/MockSettings.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="MockSettings.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user