Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[COLLECTIONS-758] Add test cases for AbstractQueueDecorator #113

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@
*/
package org.apache.commons.collections4.queue;

import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.assertNull;

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
Expand Down Expand Up @@ -169,11 +173,14 @@ public void testQueueOffer() {
public void testQueueElement() {
resetEmpty();

try {
Exception noSuchElementException = assertThrows(NoSuchElementException.class, () -> {
getCollection().element();
fail("Queue.element should throw NoSuchElementException");
} catch (final NoSuchElementException e) {
// expected
});
String message = noSuchElementException.getMessage();
if (null == message) {
assertNull(message);
} else {
assertTrue(message.contains("queue is empty"));
}

resetFull();
Expand All @@ -200,11 +207,14 @@ public void testQueueElement() {
verify();
}

try {
noSuchElementException = assertThrows(NoSuchElementException.class, () -> {
getCollection().element();
fail("Queue.element should throw NoSuchElementException");
} catch (final NoSuchElementException e) {
// expected
});
message = noSuchElementException.getMessage();
if (null == message) {
assertNull(message);
} else {
assertTrue(message.contains("queue is empty"));
}
}

Expand Down Expand Up @@ -253,11 +263,14 @@ public void testQueueRemove() {

resetEmpty();

try {
Exception exception = assertThrows(NoSuchElementException.class, () -> {
getCollection().remove();
fail("Queue.remove should throw NoSuchElementException");
} catch (final NoSuchElementException e) {
// expected
});
String message = exception.getMessage();
if (null == message) {
assertNull(message);
} else {
assertTrue(message.contains("queue is empty"));
}

resetFull();
Expand All @@ -270,11 +283,14 @@ public void testQueueRemove() {
verify();
}

try {
Exception noSuchElementException = assertThrows(NoSuchElementException.class, () -> {
getCollection().element();
fail("Queue.remove should throw NoSuchElementException");
} catch (final NoSuchElementException e) {
// expected
});
message = exception.getMessage();
if (null == message) {
assertNull(message);
} else {
assertTrue(message.contains("queue is empty"));
}
}

Expand Down Expand Up @@ -313,8 +329,8 @@ public void testEmptyQueueSerialization() throws IOException, ClassNotFoundExcep
return;
}

final byte[] objekt = writeExternalFormToBytes((Serializable) queue);
final Queue<E> queue2 = (Queue<E>) readExternalFormFromBytes(objekt);
final byte[] object = writeExternalFormToBytes((Serializable) queue);
final Queue<E> queue2 = (Queue<E>) readExternalFormFromBytes(object);

assertEquals("Both queues are empty", 0, queue.size());
assertEquals("Both queues are empty", 0, queue2.size());
Expand All @@ -328,8 +344,8 @@ public void testFullQueueSerialization() throws IOException, ClassNotFoundExcept
return;
}

final byte[] objekt = writeExternalFormToBytes((Serializable) queue);
final Queue<E> queue2 = (Queue<E>) readExternalFormFromBytes(objekt);
final byte[] object = writeExternalFormToBytes((Serializable) queue);
final Queue<E> queue2 = (Queue<E>) readExternalFormFromBytes(object);

assertEquals("Both queues are same size", size, queue.size());
assertEquals("Both queues are same size", size, queue2.size());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@
*/
package org.apache.commons.collections4.queue;

import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.assertNull;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
Expand Down Expand Up @@ -120,16 +124,16 @@ public void testCircularFifoQueueCircular() {
list.add((E) "C");
final Queue<E> queue = new CircularFifoQueue<>(list);

assertEquals(true, queue.contains("A"));
assertEquals(true, queue.contains("B"));
assertEquals(true, queue.contains("C"));
assertTrue(queue.contains("A"));
assertTrue(queue.contains("B"));
assertTrue(queue.contains("C"));

queue.add((E) "D");

assertEquals(false, queue.contains("A"));
assertEquals(true, queue.contains("B"));
assertEquals(true, queue.contains("C"));
assertEquals(true, queue.contains("D"));
assertTrue(queue.contains("B"));
assertTrue(queue.contains("C"));
assertTrue(queue.contains("D"));

assertEquals("B", queue.peek());
assertEquals("B", queue.remove());
Expand All @@ -150,48 +154,40 @@ public void testCircularFifoQueueRemove() {
verify();
}

try {
Exception exception = assertThrows(NoSuchElementException.class, () -> {
getCollection().remove();
fail("Empty queue should raise Underflow.");
} catch (final NoSuchElementException e) {
// expected
}
});
assertTrue(exception.getMessage().contains("queue is empty"));
}

/**
* Tests that the constructor correctly throws an exception.
*/
public void testConstructorException1() {
try {
Exception exception = assertThrows(IllegalArgumentException.class, () -> {
new CircularFifoQueue<E>(0);
} catch (final IllegalArgumentException ex) {
return;
}
fail();
});
assertTrue(exception.getMessage().contains("The size must be greater than 0"));
}

/**
* Tests that the constructor correctly throws an exception.
*/
public void testConstructorException2() {
try {
Exception exception = assertThrows(IllegalArgumentException.class, () -> {
new CircularFifoQueue<E>(-20);
} catch (final IllegalArgumentException ex) {
return;
}
fail();
});
assertTrue(exception.getMessage().contains("The size must be greater than 0"));
}

/**
* Tests that the constructor correctly throws an exception.
*/
public void testConstructorException3() {
try {
Exception exception = assertThrows(NullPointerException.class, () -> {
new CircularFifoQueue<E>(null);
} catch (final NullPointerException ex) {
return;
}
fail();
});
assertNull(exception.getMessage());
}

@SuppressWarnings("unchecked")
Expand Down Expand Up @@ -374,7 +370,7 @@ public void testRepeatedSerialization() throws Exception {
final CircularFifoQueue<E> b = new CircularFifoQueue<>(2);
b.add((E) "a");
assertEquals(1, b.size());
assertEquals(true, b.contains("a"));
assertTrue(b.contains("a"));

ByteArrayOutputStream bos = new ByteArrayOutputStream();
new ObjectOutputStream(bos).writeObject(b);
Expand All @@ -383,11 +379,11 @@ public void testRepeatedSerialization() throws Exception {
new ByteArrayInputStream(bos.toByteArray())).readObject();

assertEquals(1, b2.size());
assertEquals(true, b2.contains("a"));
assertTrue(b2.contains("a"));
b2.add((E) "b");
assertEquals(2, b2.size());
assertEquals(true, b2.contains("a"));
assertEquals(true, b2.contains("b"));
assertTrue(b2.contains("a"));
assertTrue(b2.contains("b"));

bos = new ByteArrayOutputStream();
new ObjectOutputStream(bos).writeObject(b2);
Expand All @@ -396,12 +392,12 @@ public void testRepeatedSerialization() throws Exception {
new ByteArrayInputStream(bos.toByteArray())).readObject();

assertEquals(2, b3.size());
assertEquals(true, b3.contains("a"));
assertEquals(true, b3.contains("b"));
assertTrue(b3.contains("a"));
assertTrue(b3.contains("b"));
b3.add((E) "c");
assertEquals(2, b3.size());
assertEquals(true, b3.contains("b"));
assertEquals(true, b3.contains("c"));
assertTrue(b3.contains("b"));
assertTrue(b3.contains("c"));
}

public void testGetIndex() {
Expand All @@ -424,13 +420,10 @@ public void testGetIndex() {

public void testAddNull() {
final CircularFifoQueue<E> b = new CircularFifoQueue<>(2);
try {
Exception exception = assertThrows(NullPointerException.class, () -> {
b.add(null);
fail();
} catch (final NullPointerException ex) {
return;
}
fail();
});
assertTrue(exception.getMessage().contains("element"));
}

public void testDefaultSizeAndGetError1() {
Expand All @@ -442,12 +435,10 @@ public void testDefaultSizeAndGetError1() {
fifo.add((E) "4");
fifo.add((E) "5");
assertEquals(5, fifo.size());
try {
Exception exception = assertThrows(NoSuchElementException.class, () -> {
fifo.get(5);
} catch (final NoSuchElementException ex) {
return;
}
fail();
});
assertTrue(exception.getMessage().contains("The specified index 5 is outside the available range [0, 5)"));
}

public void testDefaultSizeAndGetError2() {
Expand All @@ -459,12 +450,15 @@ public void testDefaultSizeAndGetError2() {
fifo.add((E) "4");
fifo.add((E) "5");
assertEquals(5, fifo.size());
try {
Exception exception2 = assertThrows(NoSuchElementException.class, () -> {
fifo.get(-2);
} catch (final NoSuchElementException ex) {
return;
});
String message = exception2.getMessage();
if (null == message) {
assertNull(message);
} else {
assertTrue(message.contains("The specified index -2 is outside the available range"));
}
fail();
}

@Override
Expand Down
Loading