From 74246a69ecbbeeafb51f9d8c3ae2503c928355cc Mon Sep 17 00:00:00 2001
From: chris9408 <58786016+chris9408@users.noreply.github.com>
Date: Mon, 13 Jan 2020 22:17:54 +0200
Subject: [PATCH] [BAEL-3463] - Big Queue (#8517)
---
data-structures/pom.xml | 15 ++++
.../baeldung/bigqueue/BigQueueLiveTest.java | 82 +++++++++++++++++++
2 files changed, 97 insertions(+)
create mode 100644 data-structures/src/test/java/com/baeldung/bigqueue/BigQueueLiveTest.java
diff --git a/data-structures/pom.xml b/data-structures/pom.xml
index e8f4628062..f4a8ea3a14 100644
--- a/data-structures/pom.xml
+++ b/data-structures/pom.xml
@@ -12,6 +12,21 @@
1.0.0-SNAPSHOT
+
+
+ github.release.repo
+ https://raw.github.com/bulldog2011/bulldog-repo/master/repo/releases/
+
+
+
+
+
+ com.leansoft
+ bigqueue
+ 0.7.0
+
+
+
diff --git a/data-structures/src/test/java/com/baeldung/bigqueue/BigQueueLiveTest.java b/data-structures/src/test/java/com/baeldung/bigqueue/BigQueueLiveTest.java
new file mode 100644
index 0000000000..c0305a7ca3
--- /dev/null
+++ b/data-structures/src/test/java/com/baeldung/bigqueue/BigQueueLiveTest.java
@@ -0,0 +1,82 @@
+package com.baeldung.bigqueue;
+
+import com.leansoft.bigqueue.BigQueueImpl;
+import com.leansoft.bigqueue.IBigQueue;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import java.io.IOException;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+@RunWith(JUnit4.class)
+public class BigQueueLiveTest {
+
+ private IBigQueue bigQueue;
+
+ @Before
+ public void setup() throws IOException {
+ String queueDir = System.getProperty("user.home");
+ String queueName = "baeldung-queue";
+ bigQueue = new BigQueueImpl(queueDir, queueName);
+ }
+
+ @After
+ public void emptyQueue() throws IOException {
+ bigQueue.removeAll();
+ bigQueue.gc();
+ bigQueue.close();
+ }
+
+ @Test
+ public void whenAddingRecords_ThenTheSizeIsCorrect() throws IOException {
+ for (int i = 1; i <= 100; i++) {
+ bigQueue.enqueue(String.valueOf(i).getBytes());
+ }
+
+ assertEquals(100, bigQueue.size());
+ }
+
+ @Test
+ public void whenAddingRecords_ThenTheyCanBeRetrieved() throws IOException {
+ bigQueue.enqueue(String.valueOf("new_record").getBytes());
+
+ String record = new String(bigQueue.dequeue());
+ assertEquals("new_record", record);
+ }
+
+ @Test
+ public void whenDequeueingRecords_ThenTheyAreConsumed() throws IOException {
+ for (int i = 1; i <= 100; i++) {
+ bigQueue.enqueue(String.valueOf(i).getBytes());
+ }
+ bigQueue.dequeue();
+
+ assertEquals(99, bigQueue.size());
+ }
+
+ @Test
+ public void whenPeekingRecords_ThenSizeDoesntChange() throws IOException {
+ for (int i = 1; i <= 100; i++) {
+ bigQueue.enqueue(String.valueOf(i).getBytes());
+ }
+ String firstRecord = new String(bigQueue.peek());
+
+ assertEquals("1", firstRecord);
+ assertEquals(100, bigQueue.size());
+ }
+
+ @Test
+ public void whenEmptyingTheQueue_ThenItSizeIs0() throws IOException {
+ for (int i = 1; i <= 100; i++) {
+ bigQueue.enqueue(String.valueOf(i).getBytes());
+ }
+ bigQueue.removeAll();
+
+ assertEquals(0, bigQueue.size());
+ }
+
+}