Skip to content

Commit 39a5c66

Browse files
committed
Fixed #79
ObjectToLiteral should not output null as record id.
1 parent 426d224 commit 39a5c66

File tree

2 files changed

+53
-32
lines changed

2 files changed

+53
-32
lines changed

src/main/java/org/culturegraph/mf/stream/converter/ObjectToLiteral.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
/**
2424
* Outputs a record containing the input object as literal.
25-
*
25+
*
2626
* @param <T> input object type
2727
* @author Christoph Böhme
2828
*/
@@ -32,24 +32,24 @@ public final class ObjectToLiteral<T> extends
3232
DefaultObjectPipe<T, StreamReceiver> {
3333

3434
public static final String DEFAULT_LITERAL_NAME = "obj";
35-
35+
3636
private String literalName = DEFAULT_LITERAL_NAME;
37-
37+
3838
public void setLiteralName(final String literalName) {
3939
this.literalName = literalName;
4040
}
41-
41+
4242
public String getLiteralName() {
4343
return literalName;
4444
}
45-
45+
4646
@Override
4747
public void process(final T obj) {
4848
assert obj!=null;
4949
assert !isClosed();
50-
getReceiver().startRecord(null);
50+
getReceiver().startRecord("");
5151
getReceiver().literal(literalName, obj.toString());
5252
getReceiver().endRecord();
5353
}
54-
54+
5555
}

src/test/java/org/culturegraph/mf/stream/converter/ObjectToLiteralTest.java

Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,43 +15,64 @@
1515
*/
1616
package org.culturegraph.mf.stream.converter;
1717

18-
import org.culturegraph.mf.exceptions.FormatException;
19-
import org.culturegraph.mf.stream.converter.ObjectToLiteral;
20-
import org.culturegraph.mf.stream.sink.EventList;
21-
import org.culturegraph.mf.stream.sink.StreamValidator;
22-
import org.junit.Assert;
18+
import static org.mockito.Mockito.inOrder;
19+
20+
import org.culturegraph.mf.framework.StreamReceiver;
21+
import org.junit.After;
22+
import org.junit.Before;
2323
import org.junit.Test;
24+
import org.mockito.InOrder;
25+
import org.mockito.Mock;
26+
import org.mockito.MockitoAnnotations;
2427

2528

2629
/**
2730
* @author Christoph Böhme
2831
*
2932
*/
3033
public final class ObjectToLiteralTest {
31-
34+
3235
private static final String LITERAL_NAME = "myObject";
3336
private static final String OBJ_DATA = "This is a data object";
34-
37+
38+
private ObjectToLiteral<String> objectToLiteral;
39+
40+
@Mock
41+
private StreamReceiver receiver;
42+
43+
@Before
44+
public void setup() {
45+
MockitoAnnotations.initMocks(this);
46+
objectToLiteral = new ObjectToLiteral<String>();
47+
objectToLiteral.setReceiver(receiver);
48+
}
49+
50+
@After
51+
public void cleanup() {
52+
objectToLiteral.closeStream();
53+
}
54+
55+
@Test
56+
public void testShouldUseObjectAsLiteralValue() {
57+
58+
objectToLiteral.process(OBJ_DATA);
59+
60+
final InOrder ordered = inOrder(receiver);
61+
ordered.verify(receiver).startRecord("");
62+
ordered.verify(receiver).literal(ObjectToLiteral.DEFAULT_LITERAL_NAME, OBJ_DATA);
63+
ordered.verify(receiver).endRecord();
64+
}
65+
3566
@Test
36-
public void test() {
37-
final EventList buffer = new EventList();
38-
buffer.startRecord(null);
39-
buffer.literal(LITERAL_NAME, OBJ_DATA);
40-
buffer.endRecord();
41-
buffer.closeStream();
42-
43-
final ObjectToLiteral<String> objectToLiteral = new ObjectToLiteral<String>();
67+
public void testShouldUseCustomLiteralName() {
4468
objectToLiteral.setLiteralName(LITERAL_NAME);
45-
final StreamValidator validator = new StreamValidator(buffer.getEvents());
46-
47-
objectToLiteral.setReceiver(validator);
48-
49-
try {
50-
objectToLiteral.process(OBJ_DATA);
51-
objectToLiteral.closeStream();
52-
} catch(FormatException e) {
53-
Assert.fail(e.toString());
54-
}
69+
70+
objectToLiteral.process(OBJ_DATA);
71+
72+
final InOrder ordered = inOrder(receiver);
73+
ordered.verify(receiver).startRecord("");
74+
ordered.verify(receiver).literal(LITERAL_NAME, OBJ_DATA);
75+
ordered.verify(receiver).endRecord();
5576
}
5677

5778
}

0 commit comments

Comments
 (0)