/**
  * Tests if an auction is started an Ended, if i get a successRatio 0 and an AverageTime of 50ms
  */
 @Test
 public void testAuctionStartedEndedNoBid() {
   Date d = new Date();
   AuctionStarted as = new AuctionStarted("Auction1", "AUCTION_STARTED", d.getTime(), 1);
   dummyAs.processEvent(as);
   try {
     Thread.sleep(400);
   } catch (InterruptedException e) {
     e.printStackTrace();
   }
   AuctionEnded ae = new AuctionEnded("Auction2", "AUCTION_ENDED", d.getTime() + 50, 1);
   dummyAs.processEvent(ae);
   // Wait for processing
   try {
     Thread.sleep(400);
   } catch (InterruptedException e) {
     e.printStackTrace();
   }
   // Tests the Events
   ArrayList<Event> al = ci.getEvents();
   Iterator<Event> it = al.iterator();
   // AuctionStart
   assertEquals("AUCTION_STARTED", it.next().getType());
   assertEquals("AUCTION_ENDED", it.next().getType());
   // AuctionTime Average should be 50
   AuctionTimeAvg atavg = (AuctionTimeAvg) it.next();
   assertEquals(atavg.getValue(), 50, 0);
   // AuctionSuccessRatio should be 0
   AuctionSuccessRatio asuc = (AuctionSuccessRatio) it.next();
   assertEquals(asuc.getValue(), 0, 0);
 }
 /** Test if the auctionSuccessFullRatio will be 1, if there is a bid placed on it */
 @Test
 public void testBidOnAuctionChangesRatio() {
   Date d = new Date();
   AuctionStarted as = new AuctionStarted("Auction1", "AUCTION_STARTED", d.getTime(), 1);
   dummyAs.processEvent(as);
   BidPlaced bp = new BidPlaced("AuctionBid1", "BID_PLACED", d.getTime(), "Daniel", 1, 100);
   dummyAs.processEvent(bp);
   try {
     Thread.sleep(200);
   } catch (InterruptedException e1) {
     e1.printStackTrace();
   }
   AuctionEnded ae = new AuctionEnded("Auction2", "AUCTION_ENDED", d.getTime() + 50, 1);
   dummyAs.processEvent(ae);
   // Wait for processing
   try {
     Thread.sleep(1000);
   } catch (InterruptedException e) {
     e.printStackTrace();
   }
   // Tests the Events
   ArrayList<Event> al = ci.getEvents();
   Iterator<Event> it = al.iterator();
   // AuctionStart
   assertEquals("AUCTION_STARTED", it.next().getType());
   // First Event should be BidPlaced
   assertEquals("BID_PLACED", it.next().getType());
   // NExt event is new BidPriceMax -> 100
   BidPriceMax bpmax = (BidPriceMax) it.next();
   assertEquals(bpmax.getValue(), 100, 0);
   assertEquals("AUCTION_ENDED", it.next().getType());
   // AuctionTime Average should be 50
   AuctionTimeAvg atavg = (AuctionTimeAvg) it.next();
   assertEquals(atavg.getValue(), 50, 0);
   // AuctionSuccessRatio should be 1
   AuctionSuccessRatio asuc = (AuctionSuccessRatio) it.next();
   assertEquals(asuc.getValue(), 1, 0);
 }