1
1
/*
2
- * Copyright 2013, 2014 Deutsche Nationalbibliothek
2
+ * Copyright 2013, 2014, 2016 Deutsche Nationalbibliothek
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 the "License";
5
5
* you may not use this file except in compliance with the License.
15
15
*/
16
16
package org .culturegraph .mf .stream .pipe .sort ;
17
17
18
+ import static org .mockito .Mockito .never ;
19
+ import static org .mockito .Mockito .verify ;
20
+
18
21
import org .culturegraph .mf .formeta .Formeta ;
19
22
import org .culturegraph .mf .framework .StreamReceiver ;
20
23
import org .culturegraph .mf .types .Triple ;
21
24
import org .culturegraph .mf .types .Triple .ObjectType ;
25
+ import org .junit .Before ;
22
26
import org .junit .Test ;
23
27
import org .mockito .InOrder ;
28
+ import org .mockito .Mock ;
24
29
import org .mockito .Mockito ;
30
+ import org .mockito .MockitoAnnotations ;
25
31
26
32
/**
27
33
* Tests {@link TripleCollect}
28
- *
34
+ *
29
35
* @author Markus Geipel
30
- *
36
+ *
31
37
*/
32
38
public final class TripleCollectTest {
39
+
33
40
private static final String VALUE = "value" ;
34
41
private static final String VALUE1 = "value1" ;
35
42
private static final String VALUE2 = "value2" ;
@@ -38,45 +45,67 @@ public final class TripleCollectTest {
38
45
private static final String REC_ID = "id" ;
39
46
private static final String REC_ALT_ID = "altid" ;
40
47
48
+ @ Mock
49
+ private StreamReceiver receiver ;
50
+
51
+ private TripleCollect collect ;
52
+
53
+ @ Before
54
+ public void initMocks () {
55
+ MockitoAnnotations .initMocks (this );
56
+ collect = new TripleCollect ();
57
+ collect .setReceiver (receiver );
58
+ }
59
+
41
60
@ Test
42
61
public void testShouldBuildRecords () {
43
- final StreamReceiver receiver = Mockito .mock (StreamReceiver .class );
44
- final TripleCollect collect = new TripleCollect ();
45
- collect .setReceiver (receiver );
46
-
47
62
collect .process (new Triple (REC_ID , NAME , VALUE1 ));
48
63
collect .process (new Triple (REC_ID , NAME , VALUE2 ));
49
64
collect .process (new Triple (REC_ALT_ID , NAME , VALUE1 ));
50
-
65
+ collect .closeStream ();
66
+
51
67
final InOrder ordered = Mockito .inOrder (receiver );
52
-
68
+
53
69
ordered .verify (receiver ).startRecord (REC_ID );
54
70
ordered .verify (receiver ).literal (NAME , VALUE1 );
55
71
ordered .verify (receiver ).literal (NAME , VALUE2 );
56
72
ordered .verify (receiver ).endRecord ();
57
73
ordered .verify (receiver ).startRecord (REC_ALT_ID );
58
74
ordered .verify (receiver ).literal (NAME , VALUE1 );
75
+ ordered .verify (receiver ).endRecord ();
59
76
}
60
-
77
+
61
78
@ Test
62
79
public void testShouldDecodeEntities () {
63
- final StreamReceiver receiver = Mockito .mock (StreamReceiver .class );
64
- final TripleCollect collect = new TripleCollect ();
65
- collect .setReceiver (receiver );
66
-
67
80
collect .process (new Triple (REC_ID , ENTITY_NAME , Formeta .GROUP_START +NAME + Formeta .NAME_VALUE_SEPARATOR + VALUE
68
81
+ Formeta .ITEM_SEPARATOR + ENTITY_NAME + Formeta .GROUP_START + NAME
69
82
+ Formeta .NAME_VALUE_SEPARATOR + VALUE + Formeta .GROUP_END + Formeta .GROUP_END ,
70
83
ObjectType .ENTITY ));
71
-
84
+ collect .closeStream ();
85
+
72
86
final InOrder ordered = Mockito .inOrder (receiver );
73
-
87
+
74
88
ordered .verify (receiver ).startRecord (REC_ID );
75
89
ordered .verify (receiver ).startEntity (ENTITY_NAME );
76
90
ordered .verify (receiver ).literal (NAME , VALUE );
77
91
ordered .verify (receiver ).startEntity (ENTITY_NAME );
78
92
ordered .verify (receiver ).literal (NAME , VALUE );
79
93
ordered .verify (receiver , Mockito .times (2 )).endEntity ();
94
+ ordered .verify (receiver ).endRecord ();
95
+ }
80
96
97
+ @ Test
98
+ public void shouldNotEmitEndRecordOnCloseStreamIfNoTriplesWereReceived () {
99
+ collect .closeStream ();
100
+
101
+ verify (receiver , never ()).endRecord ();
102
+ }
103
+
104
+ @ Test
105
+ public void shouldNotEmitEndRecordOnResetStreamIfNoTriplesWereReceived () {
106
+ collect .resetStream ();
107
+
108
+ verify (receiver , never ()).endRecord ();
81
109
}
110
+
82
111
}
0 commit comments