Skip to content

Commit 2ee0ca4

Browse files
committed
Verify that lookup filters missing value. (#372)
1 parent 37a43cc commit 2ee0ca4

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

metamorph/src/test/java/org/metafacture/metamorph/functions/LookupTest.java

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import static org.junit.Assert.assertEquals;
2020
import static org.junit.Assert.assertNull;
2121
import static org.mockito.Mockito.inOrder;
22+
import static org.mockito.Mockito.times;
23+
import static org.mockito.Mockito.verifyNoMoreInteractions;
2224
import static org.mockito.Mockito.when;
2325

2426
import org.junit.Before;
@@ -33,7 +35,6 @@
3335
import org.mockito.junit.MockitoJUnit;
3436
import org.mockito.junit.MockitoRule;
3537

36-
3738
/**
3839
* Tests for class {@link Lookup}.
3940
*
@@ -127,6 +128,7 @@ public void shouldLookupValuesInLocalMap() {
127128
ordered.verify(receiver).literal("2", "B");
128129
ordered.verify(receiver).endRecord();
129130
ordered.verifyNoMoreInteractions();
131+
verifyNoMoreInteractions(receiver);
130132
}
131133

132134
@Test
@@ -190,4 +192,31 @@ public void shouldLookupValuesInMetadata() {
190192
ordered.verifyNoMoreInteractions();
191193
}
192194

195+
@Test
196+
public void issue372_shouldFilterMissingValue() {
197+
final Metamorph metamorph = InlineMorph.in(this)
198+
.with("<rules>")
199+
.with(" <data source='litA'>")
200+
.with(" <lookup>")
201+
.with(" <entry name='cat' value='mammal' />")
202+
.with(" <entry name='dog' value='mammal' />")
203+
.with(" </lookup>")
204+
.with(" </data>")
205+
.with("</rules>")
206+
.createConnectedTo(receiver);
207+
208+
metamorph.startRecord("1");
209+
metamorph.literal("litA", "cat");
210+
metamorph.literal("litA", "dog");
211+
metamorph.literal("litA", "dragon");
212+
metamorph.endRecord();
213+
214+
final InOrder ordered = inOrder(receiver);
215+
ordered.verify(receiver).startRecord("1");
216+
ordered.verify(receiver, times(2)).literal("litA", "mammal");
217+
ordered.verify(receiver).endRecord();
218+
ordered.verifyNoMoreInteractions();
219+
verifyNoMoreInteractions(receiver);
220+
}
221+
193222
}

0 commit comments

Comments
 (0)