/**
 * Note: To run these tests you will need to make getNextAcceptableBid()
 * public temporarily.
 *
 * Make sure you make it private again after testing
 */

// Remember to try and bid before an item has been added!!!
public class CatalogDriver
{

    public static void main(String[] args)
    {
        Catalog      catalog;
	Lot          lot;
	String[]     text;


	catalog = new Catalog("Test Catalog 1");

	System.out.println("\nTest 1:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 1");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


	catalog.acceptBid(100.00, 123);
	System.out.println("\nTest 2:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 1");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


       text = new String[2];
       text[0]     = "Table";
       text[1]     = "Handmade";
       lot = new Lot("1",text);
	catalog.addLot(lot);
	System.out.println("\nTest 3:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 1");
        System.out.println("    1                Table");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());



	catalog.acceptBid(100.00, 123);
	System.out.println("\nTest 4:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 1");
        System.out.println("    1                Table");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


	catalog.nextLot();
	catalog.acceptBid(100.00, 123);
	System.out.println("\nTest 5:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 1");
        System.out.println("    1                Table   100.00 (  123)");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


	System.out.println("\nTest 6:");
	System.out.print("Expected: false\n");
	System.out.print("Actual:   ");
	System.out.println(catalog.hasMoreLots());


	System.out.println("\nTest 7:");
	System.out.print("Expected: 110.00\n");
	System.out.print("Actual:   ");
	System.out.printf("%6.2f\n",catalog.getNextAcceptableBid());


	catalog.acceptBid(1105.00, 456);
	System.out.println("\nTest 8:");
	System.out.print("Expected: 1205.00\n");
	System.out.print("Actual:   ");
	System.out.printf("%7.2f\n",catalog.getNextAcceptableBid());



	catalog = new Catalog("Test Catalog 2");
       text[0]     = "GI Joe";
       text[1]     = "Action Figure";
       lot = new Lot("1",text);
	catalog.addLot(lot);
	System.out.println("\nTest 9:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());

       text[0]     = "Barbie Doll";
       text[1]     = "Doll";
       lot = new Lot("1a",text, 25.00);
	catalog.addLot(lot);
	System.out.println("\nTest 10:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe");
        System.out.println("   1a          Barbie Doll");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());

       text[0]     = "Incredible Hulk";
       text[1]     = "Action Figure";
       lot = new Lot("2",text);
	catalog.addLot(lot);
	System.out.println("\nTest 11:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe");
        System.out.println("   1a          Barbie Doll");
        System.out.println("    2      Incredible Hulk");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());

	catalog.acceptBid(5.00, 1031);
	System.out.println("\nTest 12:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe");
        System.out.println("   1a          Barbie Doll");
        System.out.println("    2      Incredible Hulk");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


	lot = catalog.nextLot();
	catalog.acceptBid(5.00, 1031);
	System.out.println("\nTest 13:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe     5.00 ( 1031)");
        System.out.println("   1a          Barbie Doll");
        System.out.println("    2      Incredible Hulk");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());

	catalog.acceptBid(51);
	System.out.println("\nTest 14:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe     6.00 (   51)");
        System.out.println("   1a          Barbie Doll");
        System.out.println("    2      Incredible Hulk");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


	catalog.acceptBid(50.00,94);
	System.out.println("\nTest 15:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe    50.00 (   94)");
        System.out.println("   1a          Barbie Doll");
        System.out.println("    2      Incredible Hulk");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


	catalog.acceptBid(52.00,1031);
	System.out.println("\nTest 16:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe    50.00 (   94)");
        System.out.println("   1a          Barbie Doll");
        System.out.println("    2      Incredible Hulk");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


	catalog.acceptBid(55.00,1031);
	System.out.println("\nTest 17:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe    55.00 ( 1031)");
        System.out.println("   1a          Barbie Doll");
        System.out.println("    2      Incredible Hulk");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


      lot.close();        
	lot = catalog.nextLot();
	System.out.println("\nTest 18:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe    55.00 ( 1031)*");
        System.out.println("   1a          Barbie Doll");
        System.out.println("    2      Incredible Hulk");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


	catalog.acceptBid(67);
	System.out.println("\nTest 19:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe    55.00 ( 1031)*");
        System.out.println("   1a          Barbie Doll     1.00 (   67)");
        System.out.println("    2      Incredible Hulk");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


	catalog.acceptBid(513);
	System.out.println("\nTest 20:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe    55.00 ( 1031)*");
        System.out.println("   1a          Barbie Doll     2.00 (  513)");
        System.out.println("    2      Incredible Hulk");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


        lot.close();        
	lot = catalog.nextLot();
	catalog.acceptBid(65.00, 312);
	System.out.println("\nTest 21:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe    55.00 ( 1031)*");
        System.out.println("   1a          Barbie Doll     2.00 (  513)");
        System.out.println("    2      Incredible Hulk    65.00 (  312)");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());

	System.out.println("\nTest 22:");
	System.out.print("Expected: ");
	System.out.printf("%5.2f\n",55.00);
	System.out.print("Actual:   ");
	System.out.printf("%5.2f\n",catalog.totalValue());


	catalog.acceptBid(58);
	System.out.println("\nTest 23:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe    55.00 ( 1031)*");
        System.out.println("   1a          Barbie Doll     2.00 (  513)");
        System.out.println("    2      Incredible Hulk    75.00 (   58)");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());

        lot.close();        
	lot = catalog.nextLot();
	System.out.println("\nTest 24:");
	System.out.print("Expected: ");
	System.out.println("Test Catalog 2");
        System.out.println("    1               GI Joe    55.00 ( 1031)*");
        System.out.println("   1a          Barbie Doll     2.00 (  513)");
        System.out.println("    2      Incredible Hulk    75.00 (   58)*");
	System.out.print("Actual:   ");
	System.out.println(catalog.toString());


	System.out.println("\nTest 25:");
	System.out.print("Expected: ");
	System.out.printf("%5.2f\n",130.00);
	System.out.print("Actual:   ");
	System.out.printf("%5.2f\n",catalog.totalValue());



	System.out.println("\nTest 26:");
	System.out.print("Expected: false\n");
	System.out.print("Actual:   ");
	System.out.println(catalog.hasMoreLots());


    }


}
