From 104c084853217ae4be41039914fbd1abf5b6eced Mon Sep 17 00:00:00 2001 From: Fuud Date: Sat, 30 Aug 2014 19:35:35 +0400 Subject: [PATCH] allow one column data-table to be passed as parameter --- .../org/spockframework/compiler/WhereBlockRewriter.java | 3 +++ .../smoke/parameterization/DataTables.groovy | 9 +++++++++ 2 files changed, 12 insertions(+) mode change 100644 => 100755 spock-specs/src/test/groovy/org/spockframework/smoke/parameterization/DataTables.groovy diff --git a/spock-core/src/main/java/org/spockframework/compiler/WhereBlockRewriter.java b/spock-core/src/main/java/org/spockframework/compiler/WhereBlockRewriter.java index 297c5c18c5..487deece44 100755 --- a/spock-core/src/main/java/org/spockframework/compiler/WhereBlockRewriter.java +++ b/spock-core/src/main/java/org/spockframework/compiler/WhereBlockRewriter.java @@ -238,6 +238,9 @@ private void turnIntoSimpleParameterization(List column) throws Inva if (varExpr == null) throw new InvalidSpecCompileException(column.get(0), "Header of data table may only contain variable names"); + if (AstUtil.isWildcardRef(varExpr)){ + return; // ignore wildcards - _ can be used as placeholder for pseudo-second-column in one-column data + } ListExpression listExpr = new ListExpression(column.subList(1, column.size())); BinaryExpression binExpr = new BinaryExpression(varExpr, Token.newSymbol(Types.LEFT_SHIFT, -1, -1), listExpr); diff --git a/spock-specs/src/test/groovy/org/spockframework/smoke/parameterization/DataTables.groovy b/spock-specs/src/test/groovy/org/spockframework/smoke/parameterization/DataTables.groovy old mode 100644 new mode 100755 index 59b0c73ecc..30556a0909 --- a/spock-specs/src/test/groovy/org/spockframework/smoke/parameterization/DataTables.groovy +++ b/spock-specs/src/test/groovy/org/spockframework/smoke/parameterization/DataTables.groovy @@ -138,6 +138,15 @@ a | a 3 | "wow" } + def "allow one column to be passed as parameter"(a) { + expect: + a == 3 + + where: + a | _ + 3 | _ + } + def "tables can be mixed with other parameterizations"() { expect: [a, b, c, d] == [1, 2, 3, 4]