Skip to content

Commit 43b641e

Browse files
committed
Rework prefer handler
1 parent f4a14a1 commit 43b641e

File tree

2 files changed

+57
-53
lines changed

2 files changed

+57
-53
lines changed

src/main/java/org/trellisldp/camel/Prefer.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import java.util.HashSet;
2929
import java.util.List;
3030
import java.util.Map;
31-
import java.util.Optional;
3231
import java.util.Set;
3332
import java.util.function.Function;
3433

@@ -64,11 +63,11 @@ public class Prefer {
6463

6564
public static final String PREFER_WAIT = "wait";
6665

67-
private final Optional<String> preference;
66+
private final String preference;
6867

69-
private final Optional<String> handling;
68+
private final String handling;
7069

71-
private final Optional<Integer> wait;
70+
private final Integer wait;
7271

7372
private final List<String> include;
7473

@@ -87,12 +86,12 @@ public class Prefer {
8786
*/
8887
public Prefer(final String preference, final List<String> include, final List<String> omit,
8988
final Set<String> params, final String handling, final Integer wait) {
90-
this.preference = ofNullable(preference)
91-
.filter(x -> x.equals(PREFER_MINIMAL) || x.equals(PREFER_REPRESENTATION));
89+
this.preference = PREFER_MINIMAL.equals(preference) ||
90+
PREFER_REPRESENTATION.equals(preference) ? preference : null;
9291
this.include = ofNullable(include).orElseGet(Collections::emptyList);
9392
this.omit = ofNullable(omit).orElseGet(Collections::emptyList);
94-
this.handling = ofNullable(handling).filter(x -> x.equals(PREFER_LENIENT) || x.equals(PREFER_STRICT));
95-
this.wait = ofNullable(wait);
93+
this.handling = PREFER_LENIENT.equals(handling) || PREFER_STRICT.equals(handling) ? handling : null;
94+
this.wait = wait;
9695
this.params = ofNullable(params).orElseGet(Collections::emptySet);
9796
}
9897

@@ -131,23 +130,23 @@ public static Prefer valueOf(final String value) {
131130
* Get the preferred return type
132131
* @return the preferred return type
133132
*/
134-
public Optional<String> getPreference() {
133+
public String getPreference() {
135134
return preference;
136135
}
137136

138137
/**
139138
* Get the handling type
140139
* @return the preferred handling type
141140
*/
142-
public Optional<String> getHandling() {
141+
public String getHandling() {
143142
return handling;
144143
}
145144

146145
/**
147146
* Get the value of the wait parameter, if set
148147
* @return the value of the wait parameter, if available
149148
*/
150-
public Optional<Integer> getWait() {
149+
public Integer getWait() {
151150
return wait;
152151
}
153152

src/test/java/org/trellisldp/camel/PreferTest.java

Lines changed: 47 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
*/
1414
package org.trellisldp.camel;
1515

16-
import static java.util.Optional.of;
1716
import static org.junit.jupiter.api.Assertions.assertEquals;
1817
import static org.junit.jupiter.api.Assertions.assertFalse;
1918
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -32,63 +31,63 @@ public class PreferTest {
3231
@Test
3332
public void testPrefer1() {
3433
final Prefer prefer = Prefer.valueOf("return=representation; include=\"http://example.org/test\"");
35-
assertEquals(of("representation"), prefer.getPreference());
34+
assertEquals("representation", prefer.getPreference());
3635
assertEquals(1L, prefer.getInclude().size());
3736
assertTrue(prefer.getInclude().contains("http://example.org/test"));
3837
assertTrue(prefer.getOmit().isEmpty());
39-
assertFalse(prefer.getHandling().isPresent());
40-
assertFalse(prefer.getWait().isPresent());
38+
assertNull(prefer.getHandling());
39+
assertNull(prefer.getWait());
4140
assertFalse(prefer.getRespondAsync());
4241
assertFalse(prefer.getDepthNoroot());
4342
}
4443

4544
@Test
4645
public void testPrefer1b() {
4746
final Prefer prefer = Prefer.ofInclude("http://example.org/test");
48-
assertEquals(of("representation"), prefer.getPreference());
47+
assertEquals("representation", prefer.getPreference());
4948
assertEquals(1L, prefer.getInclude().size());
5049
assertTrue(prefer.getInclude().contains("http://example.org/test"));
5150
assertTrue(prefer.getOmit().isEmpty());
52-
assertFalse(prefer.getHandling().isPresent());
53-
assertFalse(prefer.getWait().isPresent());
51+
assertNull(prefer.getHandling());
52+
assertNull(prefer.getWait());
5453
assertFalse(prefer.getRespondAsync());
5554
assertFalse(prefer.getDepthNoroot());
5655
}
5756

5857
@Test
5958
public void testPrefer1c() {
6059
final Prefer prefer = Prefer.valueOf("return=representation; include=http://example.org/test");
61-
assertEquals(of("representation"), prefer.getPreference());
60+
assertEquals("representation", prefer.getPreference());
6261
assertEquals(1L, prefer.getInclude().size());
6362
assertTrue(prefer.getInclude().contains("http://example.org/test"));
6463
assertTrue(prefer.getOmit().isEmpty());
65-
assertFalse(prefer.getHandling().isPresent());
66-
assertFalse(prefer.getWait().isPresent());
64+
assertNull(prefer.getHandling());
65+
assertNull(prefer.getWait());
6766
assertFalse(prefer.getRespondAsync());
6867
assertFalse(prefer.getDepthNoroot());
6968
}
7069

7170
@Test
7271
public void testPrefer2() {
7372
final Prefer prefer = Prefer.valueOf("return = representation; include = \"http://example.org/test\"");
74-
assertEquals(of("representation"), prefer.getPreference());
73+
assertEquals("representation", prefer.getPreference());
7574
assertEquals(1L, prefer.getInclude().size());
7675
assertTrue(prefer.getInclude().contains("http://example.org/test"));
7776
assertTrue(prefer.getOmit().isEmpty());
78-
assertFalse(prefer.getHandling().isPresent());
79-
assertFalse(prefer.getWait().isPresent());
77+
assertNull(prefer.getHandling());
78+
assertNull(prefer.getWait());
8079
assertFalse(prefer.getRespondAsync());
8180
assertFalse(prefer.getDepthNoroot());
8281
}
8382

8483
@Test
8584
public void testPrefer3() {
8685
final Prefer prefer = Prefer.valueOf("return=minimal");
87-
assertEquals(of("minimal"), prefer.getPreference());
86+
assertEquals("minimal", prefer.getPreference());
8887
assertTrue(prefer.getInclude().isEmpty());
8988
assertTrue(prefer.getOmit().isEmpty());
90-
assertFalse(prefer.getHandling().isPresent());
91-
assertFalse(prefer.getWait().isPresent());
89+
assertNull(prefer.getHandling());
90+
assertNull(prefer.getWait());
9291
assertFalse(prefer.getRespondAsync());
9392
assertFalse(prefer.getDepthNoroot());
9493
}
@@ -98,35 +97,35 @@ public void testPrefer4() {
9897
final Prefer prefer = Prefer.valueOf("return=other");
9998
assertTrue(prefer.getInclude().isEmpty());
10099
assertTrue(prefer.getOmit().isEmpty());
101-
assertFalse(prefer.getPreference().isPresent());
102-
assertFalse(prefer.getHandling().isPresent());
103-
assertFalse(prefer.getWait().isPresent());
100+
assertNull(prefer.getPreference());
101+
assertNull(prefer.getHandling());
102+
assertNull(prefer.getWait());
104103
assertFalse(prefer.getRespondAsync());
105104
assertFalse(prefer.getDepthNoroot());
106105
}
107106

108107
@Test
109108
public void testPrefer5() {
110109
final Prefer prefer = Prefer.valueOf("return=representation; omit=\"http://example.org/test\"");
111-
assertEquals(of("representation"), prefer.getPreference());
110+
assertEquals("representation", prefer.getPreference());
112111
assertTrue(prefer.getInclude().isEmpty());
113112
assertFalse(prefer.getOmit().isEmpty());
114113
assertTrue(prefer.getOmit().contains("http://example.org/test"));
115-
assertFalse(prefer.getHandling().isPresent());
116-
assertFalse(prefer.getWait().isPresent());
114+
assertNull(prefer.getHandling());
115+
assertNull(prefer.getWait());
117116
assertFalse(prefer.getRespondAsync());
118117
assertFalse(prefer.getDepthNoroot());
119118
}
120119

121120
@Test
122121
public void testPrefer5b() {
123122
final Prefer prefer = Prefer.ofOmit("http://example.org/test");
124-
assertEquals(of("representation"), prefer.getPreference());
123+
assertEquals("representation", prefer.getPreference());
125124
assertTrue(prefer.getInclude().isEmpty());
126125
assertFalse(prefer.getOmit().isEmpty());
127126
assertTrue(prefer.getOmit().contains("http://example.org/test"));
128-
assertFalse(prefer.getHandling().isPresent());
129-
assertFalse(prefer.getWait().isPresent());
127+
assertNull(prefer.getHandling());
128+
assertNull(prefer.getWait());
130129
assertFalse(prefer.getRespondAsync());
131130
assertFalse(prefer.getDepthNoroot());
132131
}
@@ -136,9 +135,9 @@ public void testPrefer6() {
136135
final Prefer prefer = Prefer.valueOf("handling=lenient; return=minimal");
137136
assertTrue(prefer.getInclude().isEmpty());
138137
assertTrue(prefer.getOmit().isEmpty());
139-
assertEquals(of("minimal"), prefer.getPreference());
140-
assertEquals(of("lenient"), prefer.getHandling());
141-
assertFalse(prefer.getWait().isPresent());
138+
assertEquals("minimal", prefer.getPreference());
139+
assertEquals("lenient", prefer.getHandling());
140+
assertNull(prefer.getWait());
142141
assertFalse(prefer.getRespondAsync());
143142
assertFalse(prefer.getDepthNoroot());
144143
}
@@ -148,9 +147,9 @@ public void testPrefer7() {
148147
final Prefer prefer = Prefer.valueOf("respond-async; depth-noroot");
149148
assertTrue(prefer.getInclude().isEmpty());
150149
assertTrue(prefer.getOmit().isEmpty());
151-
assertFalse(prefer.getPreference().isPresent());
152-
assertFalse(prefer.getHandling().isPresent());
153-
assertFalse(prefer.getWait().isPresent());
150+
assertNull(prefer.getPreference());
151+
assertNull(prefer.getHandling());
152+
assertNull(prefer.getWait());
154153
assertTrue(prefer.getRespondAsync());
155154
assertTrue(prefer.getDepthNoroot());
156155
}
@@ -160,9 +159,9 @@ public void testPrefer8() {
160159
final Prefer prefer = Prefer.valueOf("handling=strict; return=minimal");
161160
assertTrue(prefer.getInclude().isEmpty());
162161
assertTrue(prefer.getOmit().isEmpty());
163-
assertEquals(of("minimal"), prefer.getPreference());
164-
assertEquals(of("strict"), prefer.getHandling());
165-
assertFalse(prefer.getWait().isPresent());
162+
assertEquals("minimal", prefer.getPreference());
163+
assertEquals("strict", prefer.getHandling());
164+
assertNull(prefer.getWait());
166165
assertFalse(prefer.getRespondAsync());
167166
assertFalse(prefer.getDepthNoroot());
168167
}
@@ -172,37 +171,43 @@ public void testPrefer9() {
172171
final Prefer prefer = Prefer.valueOf("handling=blah; return=minimal");
173172
assertTrue(prefer.getInclude().isEmpty());
174173
assertTrue(prefer.getOmit().isEmpty());
175-
assertEquals(of("minimal"), prefer.getPreference());
176-
assertFalse(prefer.getHandling().isPresent());
177-
assertFalse(prefer.getWait().isPresent());
174+
assertEquals("minimal", prefer.getPreference());
175+
assertNull(prefer.getHandling());
176+
assertNull(prefer.getWait());
178177
assertFalse(prefer.getRespondAsync());
179178
assertFalse(prefer.getDepthNoroot());
180179
}
181180

181+
@Test
182+
public void testPreferInvalidWait() {
183+
final Prefer prefer = Prefer.valueOf("wait=blah");
184+
assertNull(prefer);
185+
}
186+
182187
@Test
183188
public void testPrefer10() {
184189
final Prefer prefer = Prefer.valueOf("wait=4");
185190
assertTrue(prefer.getInclude().isEmpty());
186191
assertTrue(prefer.getOmit().isEmpty());
187-
assertFalse(prefer.getPreference().isPresent());
188-
assertFalse(prefer.getHandling().isPresent());
189-
assertEquals((Integer)4, prefer.getWait().get());
192+
assertNull(prefer.getPreference());
193+
assertNull(prefer.getHandling());
194+
assertEquals((Integer)4, prefer.getWait());
190195
assertFalse(prefer.getRespondAsync());
191196
assertFalse(prefer.getDepthNoroot());
192197
}
193198

194199
@Test
195200
public void testStaticInclude() {
196201
final Prefer prefer = Prefer.ofInclude();
197-
assertEquals(of("representation"), prefer.getPreference());
202+
assertEquals("representation", prefer.getPreference());
198203
assertTrue(prefer.getInclude().isEmpty());
199204
assertTrue(prefer.getOmit().isEmpty());
200205
}
201206

202207
@Test
203208
public void testStaticOmit() {
204209
final Prefer prefer = Prefer.ofOmit();
205-
assertEquals(of("representation"), prefer.getPreference());
210+
assertEquals("representation", prefer.getPreference());
206211
assertTrue(prefer.getInclude().isEmpty());
207212
assertTrue(prefer.getOmit().isEmpty());
208213
}

0 commit comments

Comments
 (0)