Skip to content

Commit ec9a190

Browse files
committed
Metamorph function tests should verify that no unexpected interactions occurred.
1 parent 67537c2 commit ec9a190

File tree

8 files changed

+724
-764
lines changed

8 files changed

+724
-764
lines changed

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

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,11 @@
1616

1717
package org.metafacture.metamorph.functions;
1818

19-
import static org.mockito.Mockito.inOrder;
19+
import static org.metafacture.metamorph.TestHelpers.assertMorph;
2020

2121
import org.junit.Rule;
2222
import org.junit.Test;
2323
import org.metafacture.framework.StreamReceiver;
24-
import org.metafacture.metamorph.InlineMorph;
25-
import org.metafacture.metamorph.Metamorph;
26-
import org.mockito.InOrder;
2724
import org.mockito.Mock;
2825
import org.mockito.junit.MockitoJUnit;
2926
import org.mockito.junit.MockitoRule;
@@ -42,27 +39,25 @@ public final class DateFormatTest {
4239
@Mock
4340
private StreamReceiver receiver;
4441

45-
private Metamorph metamorph;
46-
4742
@Test
4843
public void shouldMakeOutputFormatConfigurable() {
49-
metamorph = InlineMorph.in(this)
50-
.with("<rules>")
51-
.with(" <data source='date'>")
52-
.with(" <dateformat outputformat='LONG' language='en' />")
53-
.with(" </data>")
54-
.with("</rules>")
55-
.createConnectedTo(receiver);
56-
57-
metamorph.startRecord("1");
58-
metamorph.literal("date", "23.04.1564");
59-
metamorph.endRecord();
60-
61-
final InOrder ordered = inOrder(receiver);
62-
ordered.verify(receiver).startRecord("1");
63-
ordered.verify(receiver).literal("date", "April 23, 1564");
64-
ordered.verify(receiver).endRecord();
65-
ordered.verifyNoMoreInteractions();
44+
assertMorph(receiver,
45+
"<rules>" +
46+
" <data source='date'>" +
47+
" <dateformat outputformat='LONG' language='en' />" +
48+
" </data>" +
49+
"</rules>",
50+
i -> {
51+
i.startRecord("1");
52+
i.literal("date", "23.04.1564");
53+
i.endRecord();
54+
},
55+
o -> {
56+
o.get().startRecord("1");
57+
o.get().literal("date", "April 23, 1564");
58+
o.get().endRecord();
59+
}
60+
);
6661
}
6762

6863
}

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

Lines changed: 87 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,17 @@
1818

1919
import static org.junit.Assert.assertEquals;
2020
import static org.junit.Assert.assertNull;
21-
import static org.mockito.Mockito.inOrder;
22-
import static org.mockito.Mockito.when;
21+
import static org.metafacture.metamorph.TestHelpers.assertMorph;
2322

24-
import org.junit.Before;
2523
import org.junit.Rule;
2624
import org.junit.Test;
2725
import org.metafacture.framework.StreamReceiver;
28-
import org.metafacture.metamorph.InlineMorph;
29-
import org.metafacture.metamorph.Metamorph;
3026
import org.metafacture.metamorph.api.Maps;
31-
import org.mockito.InOrder;
3227
import org.mockito.Mock;
28+
import org.mockito.Mockito;
3329
import org.mockito.junit.MockitoJUnit;
3430
import org.mockito.junit.MockitoRule;
3531

36-
3732
/**
3833
* Tests for class {@link Lookup}.
3934
*
@@ -50,24 +45,16 @@ public final class LookupTest {
5045
private static final String VALUE = "Kafka";
5146

5247
@Rule
53-
public MockitoRule mockito = MockitoJUnit.rule().silent();
48+
public MockitoRule mockito = MockitoJUnit.rule();
5449

5550
@Mock
5651
private Maps maps;
5752

5853
@Mock
5954
private StreamReceiver receiver;
6055

61-
@Before
62-
public void initMaps() {
63-
when(maps.getValue(MAP_NAME, KEY)).thenReturn(VALUE);
64-
when(maps.getValue(MAP_NAME, KEY_WRONG)).thenReturn(null);
65-
when(maps.getValue(MAP_NAME_WRONG, KEY)).thenReturn(null);
66-
when(maps.getValue(MAP_NAME_WRONG, KEY_WRONG)).thenReturn(null);
67-
}
68-
6956
@Test
70-
public void shouldReturnNullIfMapNameIsDoesNotExist() {
57+
public void shouldReturnNullIfMapNameDoesNotExist() {
7158
final Lookup lookup = new Lookup();
7259
lookup.setMaps(maps);
7360

@@ -82,6 +69,7 @@ public void shouldReturnValueIfMapAndKeyExist() {
8269
lookup.setMaps(maps);
8370

8471
lookup.setIn(MAP_NAME);
72+
Mockito.when(maps.getValue(MAP_NAME, KEY)).thenReturn(VALUE);
8573

8674
assertEquals(VALUE, lookup.process(KEY));
8775
}
@@ -98,96 +86,96 @@ public void shouldReturnNullIfKeyDoesNotExist() {
9886

9987
@Test
10088
public void shouldLookupValuesInLocalMap() {
101-
final Metamorph metamorph = InlineMorph.in(this)
102-
.with("<rules>")
103-
.with(" <data source='1'>")
104-
.with(" <lookup>")
105-
.with(" <entry name='a' value='A' />")
106-
.with(" </lookup>")
107-
.with(" </data>")
108-
.with(" <data source='2'>")
109-
.with(" <lookup default='B'>")
110-
.with(" <entry name='a' value='A' />")
111-
.with(" </lookup>")
112-
.with(" </data>")
113-
.with("</rules>")
114-
.createConnectedTo(receiver);
115-
116-
metamorph.startRecord("1");
117-
metamorph.literal("1", "a");
118-
metamorph.literal("1", "b");
119-
metamorph.literal("2", "a");
120-
metamorph.literal("2", "b");
121-
metamorph.endRecord();
122-
123-
final InOrder ordered = inOrder(receiver);
124-
ordered.verify(receiver).startRecord("1");
125-
ordered.verify(receiver).literal("1", "A");
126-
ordered.verify(receiver).literal("2", "A");
127-
ordered.verify(receiver).literal("2", "B");
128-
ordered.verify(receiver).endRecord();
129-
ordered.verifyNoMoreInteractions();
89+
assertMorph(receiver,
90+
"<rules>" +
91+
" <data source='1'>" +
92+
" <lookup>" +
93+
" <entry name='a' value='A' />" +
94+
" </lookup>" +
95+
" </data>" +
96+
" <data source='2'>" +
97+
" <lookup default='B'>" +
98+
" <entry name='a' value='A' />" +
99+
" </lookup>" +
100+
" </data>" +
101+
"</rules>",
102+
i -> {
103+
i.startRecord("1");
104+
i.literal("1", "a");
105+
i.literal("1", "b");
106+
i.literal("2", "a");
107+
i.literal("2", "b");
108+
i.endRecord();
109+
},
110+
o -> {
111+
o.get().startRecord("1");
112+
o.get().literal("1", "A");
113+
o.get().literal("2", "A");
114+
o.get().literal("2", "B");
115+
o.get().endRecord();
116+
}
117+
);
130118
}
131119

132120
@Test
133121
public void shouldLookupValuesInReferencedMap() {
134-
final Metamorph metamorph = InlineMorph.in(this)
135-
.with("<rules>")
136-
.with(" <data source='1'>")
137-
.with(" <lookup in='map1' />")
138-
.with(" </data>")
139-
.with(" <data source='2'>")
140-
.with(" <lookup in='map2' />")
141-
.with(" </data>")
142-
.with("</rules>")
143-
.with("<maps>")
144-
.with(" <map name='map1'>")
145-
.with(" <entry name='a' value='A' />")
146-
.with(" </map>")
147-
.with(" <map name='map2' default='B'>")
148-
.with(" <entry name='a' value='A' />")
149-
.with(" </map>")
150-
.with("</maps>")
151-
.createConnectedTo(receiver);
152-
153-
metamorph.startRecord("1");
154-
metamorph.literal("1", "a");
155-
metamorph.literal("1", "b");
156-
metamorph.literal("2", "a");
157-
metamorph.literal("2", "b");
158-
metamorph.endRecord();
159-
160-
final InOrder ordered = inOrder(receiver);
161-
ordered.verify(receiver).startRecord("1");
162-
ordered.verify(receiver).literal("1", "A");
163-
ordered.verify(receiver).literal("2", "A");
164-
ordered.verify(receiver).literal("2", "B");
165-
ordered.verify(receiver).endRecord();
166-
ordered.verifyNoMoreInteractions();
122+
assertMorph(receiver,
123+
"<rules>" +
124+
" <data source='1'>" +
125+
" <lookup in='map1' />" +
126+
" </data>" +
127+
" <data source='2'>" +
128+
" <lookup in='map2' />" +
129+
" </data>" +
130+
"</rules>" +
131+
"<maps>" +
132+
" <map name='map1'>" +
133+
" <entry name='a' value='A' />" +
134+
" </map>" +
135+
" <map name='map2' default='B'>" +
136+
" <entry name='a' value='A' />" +
137+
" </map>" +
138+
"</maps>",
139+
i -> {
140+
i.startRecord("1");
141+
i.literal("1", "a");
142+
i.literal("1", "b");
143+
i.literal("2", "a");
144+
i.literal("2", "b");
145+
i.endRecord();
146+
},
147+
o -> {
148+
o.get().startRecord("1");
149+
o.get().literal("1", "A");
150+
o.get().literal("2", "A");
151+
o.get().literal("2", "B");
152+
o.get().endRecord();
153+
}
154+
);
167155
}
168156

169157
@Test
170158
public void shouldLookupValuesInMetadata() {
171-
final Metamorph metamorph = InlineMorph.in(this)
172-
.with("<meta>")
173-
.with(" <name>Hawaii</name>")
174-
.with("</meta>")
175-
.with("<rules>")
176-
.with(" <data source='data'>")
177-
.with(" <lookup in='__meta' />")
178-
.with(" </data>")
179-
.with("</rules>")
180-
.createConnectedTo(receiver);
181-
182-
metamorph.startRecord("1");
183-
metamorph.literal("data", "name");
184-
metamorph.endRecord();
185-
186-
final InOrder ordered = inOrder(receiver);
187-
ordered.verify(receiver).startRecord("1");
188-
ordered.verify(receiver).literal("data", "Hawaii");
189-
ordered.verify(receiver).endRecord();
190-
ordered.verifyNoMoreInteractions();
159+
assertMorph(receiver,
160+
"<meta>" +
161+
" <name>Hawaii</name>" +
162+
"</meta>" +
163+
"<rules>" +
164+
" <data source='data'>" +
165+
" <lookup in='__meta' />" +
166+
" </data>" +
167+
"</rules>",
168+
i -> {
169+
i.startRecord("1");
170+
i.literal("data", "name");
171+
i.endRecord();
172+
},
173+
o -> {
174+
o.get().startRecord("1");
175+
o.get().literal("data", "Hawaii");
176+
o.get().endRecord();
177+
}
178+
);
191179
}
192180

193181
}

0 commit comments

Comments
 (0)