package integrationTest; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; import java.text.ParseException; import java.util.ArrayList; import java.util.Collection; import org.junit.jupiter.api.DynamicTest; import org.junit.jupiter.api.TestFactory; import org.junit.jupiter.api.function.Executable; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import exceptions.BidBelowZeroException; import project.Auction; import project.AuctionManager; import project.User; public class AuctionManagerIntegrationTest { @TestFactory public Collection<DynamicTest> externalAddBidTestFalse() { Auction auction = Auction.getInstance(); User user = User.getInstance(); AuctionManager manager = AuctionManager.getInstance(); ArrayList<Integer> values = new ArrayList<Integer>(); manager.setAuction(auction); for (int i = 1; i < 6; i++) { values.add(i); } Collection<DynamicTest> dynamicTests = new ArrayList<DynamicTest>(); for (int e = 0; e < 5; e++) { DynamicTest dTest; auction.setPrice(10); int toCheck = values.get(e); Executable exec = () -> assertFalse(manager.placeBid(user, toCheck)); dTest = DynamicTest.dynamicTest("Lower bid than current auction price", exec); dynamicTests.add(dTest); } return dynamicTests; } @ParameterizedTest @ValueSource(ints = { 2, 3, 4, 5, 6 }) public void externalAddBidTrue(int toCheck) throws BidBelowZeroException, ParseException { Auction auction = Auction.getInstance(); User user = User.getInstance(); AuctionManager manager = AuctionManager.getInstance(); auction.setPrice(1); manager.setAuction(auction); assertTrue(manager.placeBid(user, toCheck)); } }