@Test
	public void testRemovePromotion() {

		BlockingQueue<Promotion> promotionAux = null;

		Product book = new Product("Book", 1234, 2.30, 100);
		Product table = new Product("Table", 4321, 3.00, 100);
		Product printer = new Product("Printer", 1334, 1.20, 100);

		facade.addProduct(book);
		facade.addProduct(table);
		facade.addProduct(printer);

		Promotion promotion = new Promotion(book, 1.00, 1245);
		Promotion promotion2 = new Promotion(table, 1.00, 1246);
		Promotion promotion3 = new Promotion(table, 1.00, 1247);

		facade.addPromotion(promotion);
		facade.addPromotion(promotion2);
		facade.addPromotion(promotion3);

		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

		facade.getListPromotion(copyListOfAllPromotion);

		try {
			promotionAux = copyListOfAllPromotion.take();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

		assertEquals(3, promotionAux.size());
		assertFalse(promotionAux.size() == 2);
		assertTrue(promotionAux.contains(promotion));

		facade.removePromotion(promotion);
		facade.removePromotion(promotion2);

		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

		assertEquals(1, promotionAux.size());
		assertTrue(promotionAux.contains(promotion3));
		assertFalse(promotionAux.contains(promotion));
	}