class A5Q4
{
 public static void main( String[] args )
 {
  User stephen, bob, grace, mohamad, diana, alan;
  Item dvd1, dvd2, dvd3, game1, game2, robot;

  System.out.println( "Test of the class MyEBServer:" );
  System.out.println( "============================" );

  // Initialize the array of registered transactions

  MyEBServer.initialize( 8 );

  // Create some users
  stephen = new User( "Stephen Harper", "prime", "minister" );
  bob = new User( "Bob Hope", "bobh", "Noël" );
  grace = new User( "Grace Hopper", "grace", "Informatique" );
  mohamad = new User("Mohamad Eid", "meid", "great");
  diana = new User("Diana Inkpen", "diana", "wonderful");  
  alan = new User("Alan Turing", "alan", "test");
  
  // Create some items to sell

  dvd1 = new Item("Harry Potter III", true);
  dvd2 = new Item("Schindler's List", false); 
  dvd3 = new Item("Ice age", false); 
  game1 = new Item("HALO 2", true);
  game2 = new Item("The Sims", false);
  robot = new Item ("Vacuum Cleaner Robot", true); 
 
  // bob and grace are selling items
  MyEBServer.addItemToSell(bob, dvd1, 12);
  MyEBServer.addItemToSell(bob, dvd2, 9);
  MyEBServer.addItemToSell(bob, game1, 70.5);
  MyEBServer.addItemToSell(grace, game2, 60);
  MyEBServer.addItemToSell(grace, robot, 200);
  MyEBServer.addItemToSell(stephen, dvd3, 10);
  
  //buyers are bidding (for one item at a time)
  MyEBServer.addBid(bob, game1, 75);
  MyEBServer.addBid(diana, game1, 80);
  MyEBServer.addBid(alan, robot, 200);
  MyEBServer.addBid(alan, robot, 205.75);
  MyEBServer.addBid(diana, robot, 210);
  
  MyEBServer.displayBidsForItem(game1);
  MyEBServer.displayBidsForItem(robot);
  
  // the server decides who wins the bid (the user who offered more money), and sells the item
  MyEBServer.executePurchases();
  
  
  //more transactions
  MyEBServer.addBid(diana, game2,70);
  MyEBServer.addBid(mohamad, game2, 75);
  MyEBServer.addBid(alan, dvd2, 40);
  MyEBServer.addBid(stephen, game2, 65);
  
  MyEBServer.executePurchases();
  
  MyEBServer.displayBidsForItem(dvd3);
  MyEBServer.displayBidsForItem(game2);
  MyEBServer.displayBidsForItem(dvd2);
  
  // print summary of all purchases;
   System.out.println( "\nThe summary of purchases:" );
  System.out.println( "============================" );
  MyEBServer.displayPurchases();
   
 }
}