Skip to content

Commit d8a9fd2

Browse files
authored
JBEHAVE-1531 Make separators properties accessible from outer transformers (jbehave#82)
1 parent d2e70fc commit d8a9fd2

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

jbehave-core/src/main/java/org/jbehave/core/model/ExamplesTableFactory.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,11 @@ public ExamplesTable createExamplesTable(String input) {
9999
String loadedTable = resourceLoader.loadResourceAsText(tableAsString.trim());
100100
tablePropertiesQueue = tableParsers.parseProperties(loadedTable);
101101
Deque<TableProperties> target = tablePropertiesQueue.getProperties();
102+
TableProperties headProperties = target.peekFirst();
103+
for (TableProperties outerProperties : properties) {
104+
outerProperties.overrideSeparatorsFrom(headProperties);
105+
target.addLast(outerProperties);
106+
}
102107

103108
boolean hasTransformers = target.getFirst().getTransformer() != null;
104109
if (hasTransformers) {
@@ -115,7 +120,6 @@ public ExamplesTable createExamplesTable(String input) {
115120
target = tablePropertiesQueue.getProperties();
116121
}
117122
}
118-
properties.descendingIterator().forEachRemaining(target::addFirst);
119123

120124
tablePropertiesQueue = new TablePropertiesQueue(tablePropertiesQueue.getTable(), target);
121125
}

jbehave-core/src/test/java/org/jbehave/core/model/ExamplesTableFactoryBehaviour.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,7 @@ void shouldLoadAndProperlyApplyTransformersForExamplesTableFromResourceInput() {
145145

146146
// Then
147147
assertThat(examplesTable.asString(), equalTo(
148-
innerTransformers
149-
+ lineFromFirstOuterTransformer
148+
lineFromFirstOuterTransformer
150149
+ lineFromSecondOuterTransformer
151150
+ lineFromFirstInnerTransformer
152151
+ lineFromSecondInnerTransformer));
@@ -179,7 +178,7 @@ void shouldLoadTableFromPathAndPreserveSeparators() {
179178
ExamplesTableFactory factory = new ExamplesTableFactory(new LoadFromClasspath(), new TableTransformers());
180179

181180
// When
182-
ExamplesTable table = factory.createExamplesTable("data.table");
181+
ExamplesTable table = factory.createExamplesTable("{transformer=FORMATTING}\ndata.table");
183182

184183
// Then
185184
assertThat(table.getHeaders(), equalTo(asList("symbol", "threshold", "price", "status")));

0 commit comments

Comments
 (0)