Skip to content
This repository was archived by the owner on May 16, 2025. It is now read-only.

Commit d70d5d3

Browse files
committed
Support @SuppressWarnings for Checkstyle, add tests (#35)
Passing (nested fields) and disabled tests (e.g. else, see #10)
1 parent e987f43 commit d70d5d3

File tree

2 files changed

+137
-11
lines changed

2 files changed

+137
-11
lines changed

config/checkstyle/checkstyle.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<property name="checks" value=".*"/>
88
<property name="files" value="xtext-gen"/>
99
</module>
10+
<module name="SuppressWarningsFilter" />
1011
<module name="TreeWalker">
1112
<module name="AbstractClassName"/>
1213
<module name="AnnotationUseStyle"/>
@@ -145,6 +146,7 @@
145146
<property name="checkFormat" value="$1"/>
146147
<property name="commentFormat" value="checkstyle-disable-line (\w+(?:\|\w+)?)"/>
147148
</module>
149+
<module name="SuppressWarningsHolder" />
148150
<module name="ThrowsCount">
149151
<property name="max" value="2"/>
150152
</module>

org.metafacture.fix/src/test/java/org/metafacture/metamorph/MetafixRecordTest.java

Lines changed: 135 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import org.metafacture.framework.StreamReceiver;
2020

21+
import org.junit.jupiter.api.Disabled;
2122
import org.junit.jupiter.api.Test;
2223
import org.junit.jupiter.api.extension.ExtendWith;
2324
import org.junit.jupiter.api.extension.RegisterExtension;
@@ -36,6 +37,7 @@
3637
* @author Fabian Steeg
3738
*/
3839
@ExtendWith(MockitoExtension.class)
40+
@SuppressWarnings("checkstyle:MultipleStringLiterals")
3941
public class MetafixRecordTest {
4042

4143
@RegisterExtension
@@ -48,20 +50,19 @@ public MetafixRecordTest() {
4850
}
4951

5052
@Test
51-
public void shouldSupportLookingAtOtherFieldsAny() {
52-
final String name = "name";
53+
public void ifAnyMatch() {
5354
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(//
5455
"if any_match('name', '.*University.*')", //
5556
" add_field('type', 'Organization')", //
5657
"end"), //
5758
i -> {
5859
i.startRecord("1");
59-
i.literal(name, "Max Musterman");
60+
i.literal("name", "Max Musterman");
6061
i.endRecord();
6162
//
6263
i.startRecord("2");
63-
i.literal(name, "Some University");
64-
i.literal(name, "Filibandrina");
64+
i.literal("name", "Some University");
65+
i.literal("name", "Filibandrina");
6566
i.endRecord();
6667
}, o -> {
6768
o.get().startRecord("1");
@@ -74,21 +75,20 @@ public void shouldSupportLookingAtOtherFieldsAny() {
7475
}
7576

7677
@Test
77-
public void shouldSupportLookingAtOtherFieldsAll() {
78-
final String name = "name";
78+
public void ifAllMatch() {
7979
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(//
8080
"if all_match('name', '.*University.*')", //
8181
" add_field('type', 'Organization')", //
8282
"end"), //
8383
i -> {
8484
i.startRecord("1");
85-
i.literal(name, "Max Musterman");
86-
i.literal(name, "A University");
85+
i.literal("name", "Max Musterman");
86+
i.literal("name", "A University");
8787
i.endRecord();
8888
//
8989
i.startRecord("2");
90-
i.literal(name, "Some University");
91-
i.literal(name, "University Filibandrina");
90+
i.literal("name", "Some University");
91+
i.literal("name", "University Filibandrina");
9292
i.endRecord();
9393
}, o -> {
9494
o.get().startRecord("1");
@@ -100,4 +100,128 @@ public void shouldSupportLookingAtOtherFieldsAll() {
100100
});
101101
}
102102

103+
@Test
104+
public void ifAnyMatchNested() {
105+
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(//
106+
"if any_match('author.name.label', '.*University.*')", //
107+
" add_field('author.type', 'Organization')", //
108+
"end"), //
109+
i -> {
110+
i.startRecord("1");
111+
i.startEntity("author");
112+
i.startEntity("name");
113+
i.literal("label", "Max Musterman");
114+
i.endEntity();
115+
i.endEntity();
116+
i.endRecord();
117+
//
118+
i.startRecord("2");
119+
i.startEntity("author");
120+
i.startEntity("name");
121+
i.literal("label", "Some University");
122+
i.endEntity();
123+
i.endEntity();
124+
i.endRecord();
125+
}, o -> {
126+
o.get().startRecord("1");
127+
o.get().endRecord();
128+
//
129+
o.get().startRecord("2");
130+
o.get().startEntity("author");
131+
o.get().literal("type", "Organization");
132+
o.get().endEntity();
133+
o.get().endRecord();
134+
});
135+
}
136+
137+
@Test
138+
@Disabled // TODO: fix events for this record order
139+
public void ifAnyMatchFirst() {
140+
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(//
141+
"if any_match('name', '.*University.*')", //
142+
" add_field('type', 'Organization')", //
143+
"end"), //
144+
i -> {
145+
i.startRecord("1");
146+
i.literal("name", "Some University");
147+
i.endRecord();
148+
//
149+
i.startRecord("2");
150+
i.literal("name", "Max Musterman");
151+
i.endRecord();
152+
}, o -> {
153+
o.get().startRecord("1");
154+
o.get().literal("type", "Organization");
155+
o.get().endRecord();
156+
//
157+
o.get().startRecord("2");
158+
o.get().endRecord();
159+
});
160+
}
161+
162+
@Test
163+
@Disabled // TODO: support else block
164+
public void ifAnyMatchElse() {
165+
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(//
166+
"if any_match('name', '.*University.*')", //
167+
" add_field('type', 'Organization')", //
168+
"else", //
169+
" add_field('type', 'Person')", //
170+
"end"), //
171+
i -> {
172+
i.startRecord("1");
173+
i.literal("name", "Max Musterman");
174+
i.endRecord();
175+
//
176+
i.startRecord("2");
177+
i.literal("name", "Some University");
178+
i.endRecord();
179+
}, o -> {
180+
o.get().startRecord("1");
181+
o.get().literal("type", "Person");
182+
o.get().endRecord();
183+
//
184+
o.get().startRecord("2");
185+
o.get().literal("type", "Organization");
186+
o.get().endRecord();
187+
});
188+
}
189+
190+
@Test
191+
@Disabled // TODO: support elsif block
192+
public void ifAnyMatchElsif() {
193+
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(//
194+
"if any_match('name', '.*University.*')", //
195+
" add_field('type', 'Organization')", //
196+
"elsif any_match('name', '[^ ]* [^ ]*')", //
197+
" add_field('type', 'Person')", //
198+
"else", //
199+
" add_field('type', 'Unknown')", //
200+
"end"), //
201+
i -> {
202+
i.startRecord("1");
203+
i.literal("name", "Max Musterman");
204+
i.endRecord();
205+
//
206+
i.startRecord("2");
207+
i.literal("name", "Some University");
208+
i.endRecord();
209+
//
210+
i.startRecord("3");
211+
i.literal("name", "Filibandrina");
212+
i.endRecord();
213+
}, o -> {
214+
o.get().startRecord("1");
215+
o.get().literal("type", "Person");
216+
o.get().endRecord();
217+
//
218+
o.get().startRecord("2");
219+
o.get().literal("type", "Organization");
220+
o.get().endRecord();
221+
//
222+
o.get().startRecord("3");
223+
o.get().literal("type", "Unknown");
224+
o.get().endRecord();
225+
});
226+
}
103227
}

0 commit comments

Comments
 (0)