Skip to content

Commit 4eaac76

Browse files
committed
Fix test in LinkedQueueTest.java
1 parent 518fc83 commit 4eaac76

File tree

1 file changed

+31
-55
lines changed
  • 2-0-data-structures-and-algorithms/2-2-3-linked-queue/src/test/java/com/bobocode/cs

1 file changed

+31
-55
lines changed

2-0-data-structures-and-algorithms/2-2-3-linked-queue/src/test/java/com/bobocode/cs/LinkedQueueTest.java

Lines changed: 31 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -19,39 +19,27 @@ public class LinkedQueueTest {
1919
private static final String NODE_NAME = "Node";
2020
private static final String SIZE_NAME = "size";
2121

22-
private static final Predicate<Field> NODE_FIELD = field -> field
23-
.getType().getSimpleName().equals(NODE_NAME)
24-
& (field.getName().contains("next"));
25-
26-
private static final Predicate<Field> ELEMENT_FIELD = field -> field
27-
.getGenericType()
28-
.getTypeName()
29-
.equals("T")
30-
& (field.getName().contains("elem")
31-
| field.getName().contains("value")
32-
| field.getName().contains("item"));
33-
34-
private static final Predicate<Field> NEXT_FIELD = field -> field
35-
.getGenericType()
36-
.getTypeName()
37-
.equals("Node<T>")
38-
& (field.getName().contains("next"));
39-
40-
private static final Predicate<Field> SIZE_FIELD = field -> field
41-
.getType()
42-
.getSimpleName()
43-
.equals("int")
44-
& (field.getName().equals(SIZE_NAME));
45-
46-
private static final Predicate<Field> HEAD_FIELD = field -> field
47-
.getType().getSimpleName().equals(NODE_NAME)
48-
& (field.getName().contains("head")
49-
| field.getName().contains("first"));
50-
51-
private static final Predicate<Field> TAIL_FIELD = field -> field
52-
.getType().getSimpleName().equals(NODE_NAME)
53-
& (field.getName().contains("tail")
54-
| field.getName().contains("last"));
22+
private static final Predicate<Field> NODE_FIELD = field -> field.getType().getSimpleName().equals(NODE_NAME)
23+
&& (field.getName().contains("next"));
24+
25+
private static final Predicate<Field> ELEMENT_FIELD = field -> field.getGenericType().getTypeName().equals("T")
26+
&& (field.getName().contains("elem")
27+
|| field.getName().contains("value")
28+
|| field.getName().contains("item"));
29+
30+
private static final Predicate<Field> NEXT_FIELD = field -> field.getGenericType().getTypeName().endsWith("Node<T>")
31+
&& (field.getName().contains("next"));
32+
33+
private static final Predicate<Field> SIZE_FIELD = field -> field.getType().getSimpleName().equals("int")
34+
&& (field.getName().equals(SIZE_NAME));
35+
36+
private static final Predicate<Field> HEAD_FIELD = field -> field.getType().getSimpleName().equals(NODE_NAME)
37+
&& (field.getName().contains("head")
38+
|| field.getName().contains("first"));
39+
40+
private static final Predicate<Field> TAIL_FIELD = field -> field.getType().getSimpleName().equals(NODE_NAME)
41+
&& (field.getName().contains("tail")
42+
|| field.getName().contains("last"));
5543

5644
private Queue<Integer> integerQueue = new LinkedQueue<>();
5745

@@ -281,27 +269,17 @@ private Object pollElementFromQueue() {
281269

282270
@SneakyThrows
283271
private void addIntElementToQueue(int value) {
284-
Object nodeObj = createNode(value);
285-
286-
Object head = getAccessibleFieldByPredicate(this.integerQueue,
287-
HEAD_FIELD)
288-
.get(this.integerQueue);
289-
290-
Object tail = getAccessibleFieldByPredicate(this.integerQueue,
291-
TAIL_FIELD)
292-
.get(this.integerQueue);
293-
294-
Integer size = (Integer) getAccessibleFieldByPredicate(this.integerQueue,
295-
SIZE_FIELD)
296-
.get(this.integerQueue);
272+
Object newNode = createNode(value);
273+
Object head = getAccessibleFieldByPredicate(this.integerQueue, HEAD_FIELD).get(this.integerQueue);
274+
Object tail = getAccessibleFieldByPredicate(this.integerQueue, TAIL_FIELD).get(this.integerQueue);
275+
Integer size = (Integer) getAccessibleFieldByPredicate(this.integerQueue, SIZE_FIELD).get(this.integerQueue);
297276

298277
if (head == null) {
299-
setHead(nodeObj);
300-
setTail(nodeObj);
278+
setHead(newNode);
301279
} else {
302-
setNextInNode(tail, nodeObj);
303-
setTail(nodeObj);
280+
setNextNode(tail, newNode);
304281
}
282+
setTail(newNode);
305283

306284
if (size == null) {
307285
setInternalSize(1);
@@ -359,11 +337,9 @@ private void setTail(Object obj) {
359337
}
360338

361339
@SneakyThrows
362-
private void setNextInNode(Object target, Object obj) {
363-
Field[] nodeFields = target.getClass().getDeclaredFields();
364-
/*`nodeFields[1]` is the `next` filed*/
365-
nodeFields[1].setAccessible(true);
366-
nodeFields[1].set(target, obj);
340+
private void setNextNode(Object current, Object next) {
341+
Field nodeNextField = getAccessibleFieldByPredicate(current, NEXT_FIELD);
342+
nodeNextField.set(current, next);
367343
}
368344

369345
private Field getAccessibleFieldByPredicate(Object object, Predicate<Field> predicate) {

0 commit comments

Comments
 (0)