MapDb3CollectionFactoryTest.java

/*******************************************************************************
 * Copyright (c) 2024 Eclipse RDF4J contributors.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Distribution License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 *******************************************************************************/
package org.eclipse.rdf4j.collection.factory.mapdb;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;

import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.Queue;

import org.junit.jupiter.api.Test;

public class MapDb3CollectionFactoryTest {

	@Test
	void queuOfferAnd() {
		try (MapDb3CollectionFactory mapDb3CollectionFactory = new MapDb3CollectionFactory(1)) {
			Queue<String> q = mapDb3CollectionFactory.createQueue();
			int size = 1024;
			for (int i = 0; i < size; i++) {
				assertTrue(q.offer(Integer.toString(i)));
			}
			assertEquals(size, q.size());
			for (int i = 0; i < size; i++) {
				String p = q.peek();
				assertEquals(p, Integer.toString(i));
				String p2 = q.peek();
				assertEquals(p2, Integer.toString(i));
				String s = q.poll();
				assertEquals(s, Integer.toString(i));
			}
			assertEquals(0, q.size());
		}
	}

	@Test
	void iterator() {
		try (MapDb3CollectionFactory mapDb3CollectionFactory = new MapDb3CollectionFactory(1)) {
			Queue<String> q = mapDb3CollectionFactory.createQueue();
			int size = 1024;
			for (int i = 0; i < size; i++) {
				assertTrue(q.offer(Integer.toString(i)));
			}
			assertEquals(size, q.size());
			Iterator<String> iter = q.iterator();
			for (int i = 0; i < size; i++) {
				assertTrue(iter.hasNext());
				assertEquals(iter.next(), Integer.toString(i));
			}
			assertFalse(iter.hasNext());
			assertEquals(size, q.size());
			try {
				iter.next();
				fail();
			} catch (NoSuchElementException e) {
				assertNotNull(e);
			}
		}
	}
}