Skip to content
Snippets Groups Projects
ItemUnitTest.java 1.75 KiB
Newer Older
package unitTest;

import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

import java.util.Iterator;
import java.util.Random;
import java.util.function.Function;
import java.util.stream.Stream;

import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.TestFactory;
import org.junit.jupiter.api.function.ThrowingConsumer;

import project.Item;

public class ItemUnitTest {

	@TestFactory
	public Stream<DynamicTest> deleteTestTrue() {

		Iterator<Integer> inputGenerator = new Iterator<Integer>() {

			int itemId;
			Random random = new Random();

			@Override
			public boolean hasNext() {

				return random.nextInt(100) % 10 != 0;

			}

			@Override
			public Integer next() {

				itemId = (int) (random.nextDouble() * 10);
				Item i = new Item();
				i.setId(itemId);
				return itemId;
			}

		};

		Function<Integer, String> displayNameGenerator = (input) -> "item ID: " + input;

		ThrowingConsumer<Integer> testExecutor = (input) -> assertTrue(Item.delete(input));

		return DynamicTest.stream(inputGenerator, displayNameGenerator, testExecutor);

	}

	@TestFactory
	public Stream<DynamicTest> deleteTestFalse() {

		Iterator<Integer> inputGenerator = new Iterator<Integer>() {

			int itemId;
			Random random = new Random();

			@Override
			public boolean hasNext() {

				return random.nextInt(100) % 10 != 0;

			}

			@Override
			public Integer next() {

				itemId = (int) (random.nextDouble() * 10);
				return itemId;
			}

		};

		Function<Integer, String> displayNameGenerator = (input) -> "item ID: " + input;

		ThrowingConsumer<Integer> testExecutor = (input) -> assertFalse(Item.delete(input));

		return DynamicTest.stream(inputGenerator, displayNameGenerator, testExecutor);

	}