Adding @NonParameterized

Marius Kruger <[email protected]> Sat, 11 Jun 2011 01:56:58 +0200
Newsgroups gmane.comp.java.junit.devel
Message-ID <[email protected]>
--bcaec521634f682ee004a56454d6
Content-Type: text/plain; charset=UTF-8

Hi,
I've just discovered and fell in love with Parameterized tests (with:
@RunWith(value = Parameterized.class) )

However in the first two use cases I have I have tests that does not
use the parameterization
mixed in with test that do use it (in the same class).
I don't seem to be the only one missing this feature:
http://stackoverflow.com/q/3361239/381083

It appears that TestNG does not suffer from this problem.
http://techinsides.blogspot.com/2010/09/dont-tie-yourself-up-parameterized.html

I'm not so desperate to switch to TestNG, so I modified the builtin
Parameterized class to support this feature (see attached).
Just annotate applicable tests as @NonParameterized. Note that this
class only works with its on annotations, i.e. check your imports.

If this has any chance of getting merged into junit I can turn it into
a branch add tests and documentation etc. let me know.

--
regards
<>< Marius ><>

--bcaec521634f682ee004a56454d6
Content-Type: text/x-java; charset=US-ASCII; name="Parameterized.java"
Content-Disposition: attachment; filename="Parameterized.java"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gorsndn20

aW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLkVsZW1lbnRUeXBlOwppbXBvcnQgamF2YS5sYW5n
LmFubm90YXRpb24uUmV0ZW50aW9uOwppbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50
aW9uUG9saWN5OwppbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uVGFyZ2V0OwppbXBvcnQgamF2
YS5sYW5nLnJlZmxlY3QuTW9kaWZpZXI7CmltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwppbXBv
cnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOwppbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOwppbXBv
cnQgamF2YS51dGlsLkxpc3Q7CgppbXBvcnQgb3JnLmp1bml0LlRlc3Q7CmltcG9ydCBvcmcuanVu
aXQucnVubmVyLlJ1bm5lcjsKaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXIubm90aWZpY2F0aW9uLlJ1
bk5vdGlmaWVyOwppbXBvcnQgb3JnLmp1bml0LnJ1bm5lcnMuQmxvY2tKVW5pdDRDbGFzc1J1bm5l
cjsKaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXJzLlN1aXRlOwppbXBvcnQgb3JnLmp1bml0LnJ1bm5l
cnMubW9kZWwuRnJhbWV3b3JrTWV0aG9kOwppbXBvcnQgb3JnLmp1bml0LnJ1bm5lcnMubW9kZWwu
SW5pdGlhbGl6YXRpb25FcnJvcjsKaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXJzLm1vZGVsLlN0YXRl
bWVudDsKaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXJzLm1vZGVsLlRlc3RDbGFzczsKCi8qKgogKiA8
cD4KICogVGhlIGN1c3RvbSBydW5uZXIgPGNvZGU+UGFyYW1ldGVyaXplZDwvY29kZT4gaW1wbGVt
ZW50cyBwYXJhbWV0ZXJpemVkIHRlc3RzLgogKiBXaGVuIHJ1bm5pbmcgYSBwYXJhbWV0ZXJpemVk
IHRlc3QgY2xhc3MsIGluc3RhbmNlcyBhcmUgY3JlYXRlZCBmb3IgdGhlCiAqIGNyb3NzLXByb2R1
Y3Qgb2YgdGhlIHRlc3QgbWV0aG9kcyBhbmQgdGhlIHRlc3QgZGF0YSBlbGVtZW50cy4KICogPC9w
PgogKiBGb3IgZXhhbXBsZSwgdG8gdGVzdCBhIEZpYm9uYWNjaSBmdW5jdGlvbiwgd3JpdGU6CiAq
CiAqIDxwcmU+CiAqICYjMDY0O1J1bldpdGgoUGFyYW1ldGVyaXplZC5jbGFzcykKICogcHVibGlj
IGNsYXNzIEZpYm9uYWNjaVRlc3QgewogKiAgICAgJiMwNjQ7UGFyYW1ldGVycwogKiAgICAgcHVi
bGljIHN0YXRpYyBMaXN0Jmx0O09iamVjdFtdJmd0OyBkYXRhKCkgewogKiAgICAgICAgIHJldHVy
biBBcnJheXMuYXNMaXN0KG5ldyBPYmplY3RbXVtdIHsKICogICAgICAgICAgICAgICAgIEZpYm9u
YWNjaSwKICogICAgICAgICAgICAgICAgIHsgezAsIDB9LCB7MSwgMX0sIHsyLCAxfSwgezMsIDJ9
LCB7NCwgM30sIHs1LCA1fSwKICogICAgICAgICAgICAgICAgICAgICAgICAgezYsIDh9fX0pOwog
KiAgICAgfQogKgogKiAgICAgcHJpdmF0ZSBpbnQgZklucHV0OwogKgogKiAgICAgcHJpdmF0ZSBp
bnQgZkV4cGVjdGVkOwogKgogKiAgICAgcHVibGljIEZpYm9uYWNjaVRlc3QoaW50IGlucHV0LCBp
bnQgZXhwZWN0ZWQpIHsKICogICAgICAgICBmSW5wdXQgPSBpbnB1dDsKICogICAgICAgICBmRXhw
ZWN0ZWQgPSBleHBlY3RlZDsKICogICAgIH0KICoKICogICAgICYjMDY0O1Rlc3QKICogICAgIHB1
YmxpYyB2b2lkIHRlc3QoKSB7CiAqICAgICAgICAgYXNzZXJ0RXF1YWxzKGZFeHBlY3RlZCwgRmli
b25hY2NpLmNvbXB1dGUoZklucHV0KSk7CiAqICAgICB9CiAqIH0KICogPC9wcmU+CiAqIDxwPgog
KiBFYWNoIGluc3RhbmNlIG9mIDxjb2RlPkZpYm9uYWNjaVRlc3Q8L2NvZGU+IHdpbGwgYmUgY29u
c3RydWN0ZWQgdXNpbmcgdGhlCiAqIHR3by1hcmd1bWVudCBjb25zdHJ1Y3RvciBhbmQgdGhlIGRh
dGEgdmFsdWVzIGluIHRoZQogKiA8Y29kZT4mIzA2NDtQYXJhbWV0ZXJzPC9jb2RlPiBtZXRob2Qu
CiAqIDwvcD4KICovCnB1YmxpYyBjbGFzcyBQYXJhbWV0ZXJpemVkIGV4dGVuZHMgU3VpdGUgewoK
ICAgIC8qKgogICAgICogQW5ub3RhdGlvbiBmb3IgYSBtZXRob2Qgd2hpY2ggcHJvdmlkZXMgcGFy
YW1ldGVycyB0byBiZSBpbmplY3RlZCBpbnRvIHRoZQogICAgICogdGVzdCBjbGFzcyBjb25zdHJ1
Y3RvciBieSA8Y29kZT5QYXJhbWV0ZXJpemVkPC9jb2RlPgogICAgICovCiAgICBAUmV0ZW50aW9u
KFJldGVudGlvblBvbGljeS5SVU5USU1FKQogICAgQFRhcmdldChFbGVtZW50VHlwZS5NRVRIT0Qp
CiAgICBwdWJsaWMgc3RhdGljIEBpbnRlcmZhY2UgUGFyYW1ldGVycyB7CiAgICB9CgogICAgLyoq
CiAgICAgKiBBbm5vdGF0aW9uIGZvciBhIG1ldGhvZHMgd2hpY2ggc2hvdWxkIG5vdCBiZSBwYXJh
bWV0ZXJpemVkCiAgICAgKi8KICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlJVTlRJTUUp
CiAgICBAVGFyZ2V0KEVsZW1lbnRUeXBlLk1FVEhPRCkKICAgIHB1YmxpYyBzdGF0aWMgQGludGVy
ZmFjZSBOb25QYXJhbWV0ZXJpemVkIHsKICAgIH0KCiAgICBwcml2YXRlIGNsYXNzIFRlc3RDbGFz
c1J1bm5lckZvclBhcmFtZXRlcnMgZXh0ZW5kcwogICAgICAgICAgICBCbG9ja0pVbml0NENsYXNz
UnVubmVyIHsKICAgICAgICBwcml2YXRlIGZpbmFsIGludCBmUGFyYW1ldGVyU2V0TnVtYmVyOwoK
ICAgICAgICBwcml2YXRlIGZpbmFsIExpc3Q8T2JqZWN0W10+IGZQYXJhbWV0ZXJMaXN0OwoKICAg
ICAgICBUZXN0Q2xhc3NSdW5uZXJGb3JQYXJhbWV0ZXJzKENsYXNzPD8+IHR5cGUsCiAgICAgICAg
ICAgICAgICBMaXN0PE9iamVjdFtdPiBwYXJhbWV0ZXJMaXN0LCBpbnQgaSkgdGhyb3dzIEluaXRp
YWxpemF0aW9uRXJyb3IgewogICAgICAgICAgICBzdXBlcih0eXBlKTsKICAgICAgICAgICAgZlBh
cmFtZXRlckxpc3QgPSBwYXJhbWV0ZXJMaXN0OwogICAgICAgICAgICBmUGFyYW1ldGVyU2V0TnVt
YmVyID0gaTsKICAgICAgICB9CgogICAgICAgIEBPdmVycmlkZQogICAgICAgIHB1YmxpYyBPYmpl
Y3QgY3JlYXRlVGVzdCgpIHRocm93cyBFeGNlcHRpb24gewogICAgICAgICAgICByZXR1cm4gZ2V0
VGVzdENsYXNzKCkuZ2V0T25seUNvbnN0cnVjdG9yKCkubmV3SW5zdGFuY2UoCiAgICAgICAgICAg
ICAgICAgICAgY29tcHV0ZVBhcmFtcygpKTsKICAgICAgICB9CgogICAgICAgIHByaXZhdGUgT2Jq
ZWN0W10gY29tcHV0ZVBhcmFtcygpIHRocm93cyBFeGNlcHRpb24gewogICAgICAgICAgICB0cnkg
ewogICAgICAgICAgICAgICAgcmV0dXJuIGZQYXJhbWV0ZXJMaXN0LmdldChmUGFyYW1ldGVyU2V0
TnVtYmVyKTsKICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oU3RyaW5nLmZvcm1hdCgKICAgICAgICAg
ICAgICAgICAgICAgICAgIiVzLiVzKCkgbXVzdCByZXR1cm4gYSBDb2xsZWN0aW9uIG9mIGFycmF5
cy4iLAogICAgICAgICAgICAgICAgICAgICAgICBnZXRUZXN0Q2xhc3MoKS5nZXROYW1lKCksIGdl
dFBhcmFtZXRlcnNNZXRob2QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0VGVz
dENsYXNzKCkpLmdldE5hbWUoKSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBA
T3ZlcnJpZGUKICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldE5hbWUoKSB7CiAgICAgICAgICAg
IHJldHVybiBTdHJpbmcuZm9ybWF0KCJbJXNdIiwgZlBhcmFtZXRlclNldE51bWJlcik7CiAgICAg
ICAgfQoKICAgICAgICBAT3ZlcnJpZGUKICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIHRlc3ROYW1l
KGZpbmFsIEZyYW1ld29ya01ldGhvZCBtZXRob2QpIHsKICAgICAgICAgICAgcmV0dXJuIFN0cmlu
Zy5mb3JtYXQoIiVzWyVzXSIsIG1ldGhvZC5nZXROYW1lKCksCiAgICAgICAgICAgICAgICAgICAg
ZlBhcmFtZXRlclNldE51bWJlcik7CiAgICAgICAgfQoKICAgICAgICBAT3ZlcnJpZGUKICAgICAg
ICBwcm90ZWN0ZWQgdm9pZCB2YWxpZGF0ZUNvbnN0cnVjdG9yKExpc3Q8VGhyb3dhYmxlPiBlcnJv
cnMpIHsKICAgICAgICAgICAgdmFsaWRhdGVPbmx5T25lQ29uc3RydWN0b3IoZXJyb3JzKTsKICAg
ICAgICB9CgogICAgICAgIEBPdmVycmlkZQogICAgICAgIHByb3RlY3RlZCBTdGF0ZW1lbnQgY2xh
c3NCbG9jayhSdW5Ob3RpZmllciBub3RpZmllcikgewogICAgICAgICAgICByZXR1cm4gY2hpbGRy
ZW5JbnZva2VyKG5vdGlmaWVyKTsKICAgICAgICB9CgogICAgICAgIEBPdmVycmlkZQogICAgICAg
IHByb3RlY3RlZCBMaXN0PEZyYW1ld29ya01ldGhvZD4gY29tcHV0ZVRlc3RNZXRob2RzKCkgewog
ICAgICAgICAgICBMaXN0PEZyYW1ld29ya01ldGhvZD4gcmV0ID0gc3VwZXIuY29tcHV0ZVRlc3RN
ZXRob2RzKCk7CiAgICAgICAgICAgIGZvciAoSXRlcmF0b3I8RnJhbWV3b3JrTWV0aG9kPiBpID0g
cmV0Lml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOykgewogICAgICAgICAgICAgICAgRnJhbWV3b3Jr
TWV0aG9kIGZyYW1ld29ya01ldGhvZCA9CiAgICAgICAgICAgICAgICAgICAgKEZyYW1ld29ya01l
dGhvZCkgaS5uZXh0KCk7CiAgICAgICAgICAgICAgICBpZiAoaXNQYXJhbWV0ZXJpemVkKCkgXgog
ICAgICAgICAgICAgICAgICAgICFmcmFtZXdvcmtNZXRob2QuZ2V0TWV0aG9kKCkuaXNBbm5vdGF0
aW9uUHJlc2VudCgKICAgICAgICAgICAgICAgICAgICAgICAgTm9uUGFyYW1ldGVyaXplZC5jbGFz
cykpIHsKICAgICAgICAgICAgICAgICAgICBpLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfQoKICAgICAgICBw
cm90ZWN0ZWQgYm9vbGVhbiBpc1BhcmFtZXRlcml6ZWQoKSB7CiAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGNsYXNzIFRlc3RDbGFzc1J1bm5lckZv
ck5vblBhcmFtZXRlcml6ZWQgZXh0ZW5kcwogICAgICAgIFRlc3RDbGFzc1J1bm5lckZvclBhcmFt
ZXRlcnMgewoKICAgICAgICBUZXN0Q2xhc3NSdW5uZXJGb3JOb25QYXJhbWV0ZXJpemVkKENsYXNz
PD8+IHR5cGUsCiAgICAgICAgICAgIExpc3Q8T2JqZWN0W10+IHBhcmFtZXRlckxpc3QsIGludCBp
KQogICAgICAgICAgICB0aHJvd3MgSW5pdGlhbGl6YXRpb25FcnJvciB7CiAgICAgICAgICAgIHN1
cGVyKHR5cGUsIHBhcmFtZXRlckxpc3QsIGkpOwogICAgICAgIH0KCiAgICAgICAgcHJvdGVjdGVk
IGJvb2xlYW4gaXNQYXJhbWV0ZXJpemVkKCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgZmluYWwgQXJyYXlMaXN0PFJ1bm5lcj4gcnVubmVy
cyA9IG5ldyBBcnJheUxpc3Q8UnVubmVyPigpOwoKICAgIC8qKgogICAgICogT25seSBjYWxsZWQg
cmVmbGVjdGl2ZWx5LiBEbyBub3QgdXNlIHByb2dyYW1tYXRpY2FsbHkuCiAgICAgKi8KICAgIHB1
YmxpYyBQYXJhbWV0ZXJpemVkKENsYXNzPD8+IGtsYXNzKSB0aHJvd3MgVGhyb3dhYmxlIHsKICAg
ICAgICBzdXBlcihrbGFzcywgQ29sbGVjdGlvbnMuPFJ1bm5lcj4gZW1wdHlMaXN0KCkpOwogICAg
ICAgIExpc3Q8T2JqZWN0W10+IHBhcmFtZXRlcnNMaXN0ID0gZ2V0UGFyYW1ldGVyc0xpc3QoZ2V0
VGVzdENsYXNzKCkpOwogICAgICAgIGlmIChwYXJhbWV0ZXJzTGlzdC5zaXplKCkgPiAwKSB7CiAg
ICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBydW5uZXJzLmFkZChuZXcgVGVzdENsYXNz
UnVubmVyRm9yTm9uUGFyYW1ldGVyaXplZCgKICAgICAgICAgICAgICAgICAgICBnZXRUZXN0Q2xh
c3MoKQogICAgICAgICAgICAgICAgICAgICAgICAuZ2V0SmF2YUNsYXNzKCksIHBhcmFtZXRlcnNM
aXN0LCAwKSk7CiAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAg
ICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk5vIHZhbGlkIG5vbi1wYXJhbWV0ZXJpemVkIHRlc3Rz
OiAiCiAgICAgICAgICAgICAgICAgICAgKyBlLmdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgIH0K
ICAgICAgICB9CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBw
YXJhbWV0ZXJzTGlzdC5zaXplKCk7IGkrKykgewogICAgICAgICAgICAgICAgcnVubmVycy5hZGQo
bmV3IFRlc3RDbGFzc1J1bm5lckZvclBhcmFtZXRlcnMoZ2V0VGVzdENsYXNzKCkKICAgICAgICAg
ICAgICAgICAgICAuZ2V0SmF2YUNsYXNzKCksCiAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVy
c0xpc3QsIGkpKTsKICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7
CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTm8gdmFsaWQgcGFyYW1ldGVyaXplZCB0
ZXN0czogIgogICAgICAgICAgICAgICAgKyBlLmdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQogICAg
fQoKICAgIEBPdmVycmlkZQogICAgcHJvdGVjdGVkIExpc3Q8UnVubmVyPiBnZXRDaGlsZHJlbigp
IHsKICAgICAgICByZXR1cm4gcnVubmVyczsKICAgIH0KCiAgICBAU3VwcHJlc3NXYXJuaW5ncygi
dW5jaGVja2VkIikKICAgIHByaXZhdGUgTGlzdDxPYmplY3RbXT4gZ2V0UGFyYW1ldGVyc0xpc3Qo
VGVzdENsYXNzIGtsYXNzKQogICAgICAgICAgICB0aHJvd3MgVGhyb3dhYmxlIHsKICAgICAgICBy
ZXR1cm4gKExpc3Q8T2JqZWN0W10+KSBnZXRQYXJhbWV0ZXJzTWV0aG9kKGtsYXNzKS5pbnZva2VF
eHBsb3NpdmVseSgKICAgICAgICAgICAgICAgIG51bGwpOwogICAgfQoKICAgIHByaXZhdGUgRnJh
bWV3b3JrTWV0aG9kIGdldFBhcmFtZXRlcnNNZXRob2QoVGVzdENsYXNzIHRlc3RDbGFzcykKICAg
ICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7CiAgICAgICAgTGlzdDxGcmFtZXdvcmtNZXRob2Q+
IG1ldGhvZHMgPSB0ZXN0Q2xhc3MKICAgICAgICAgICAgICAgIC5nZXRBbm5vdGF0ZWRNZXRob2Rz
KFBhcmFtZXRlcnMuY2xhc3MpOwogICAgICAgIGZvciAoRnJhbWV3b3JrTWV0aG9kIGVhY2ggOiBt
ZXRob2RzKSB7CiAgICAgICAgICAgIGludCBtb2RpZmllcnMgPSBlYWNoLmdldE1ldGhvZCgpLmdl
dE1vZGlmaWVycygpOwogICAgICAgICAgICBpZiAoTW9kaWZpZXIuaXNTdGF0aWMobW9kaWZpZXJz
KSAmJiBNb2RpZmllci5pc1B1YmxpYyhtb2RpZmllcnMpKQogICAgICAgICAgICAgICAgcmV0dXJu
IGVhY2g7CiAgICAgICAgfQoKICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJObyBwdWJsaWMg
c3RhdGljIHBhcmFtZXRlcnMgbWV0aG9kIG9uIGNsYXNzICIKICAgICAgICAgICAgICAgICsgdGVz
dENsYXNzLmdldE5hbWUoKSk7CiAgICB9Cgp9Cgo=
--bcaec521634f682ee004a56454d6
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
--bcaec521634f682ee004a56454d6
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Junit-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/junit-devel

--bcaec521634f682ee004a56454d6--