@Test
	public void testReturningInfoAboutFutureHistory() throws CommandExecutionException {
		History<ICommand> history = new History<>(new TestHistoryStrategy(), mock(EventBus.class));
		history.setMaximumCapacity(100);
		ICommand cmd1 = new HistoryTest.SampleCmd1();
		ICommand cmd2 = new HistoryTest.SampleCmd2();
		
		history.execute(cmd1);
		history.execute(cmd2);
		history.undo();
		history.undo();
		
		List<CommandInfo<ICommand>> info = history.getHistory();
		Assert.assertEquals(3, info.size());
		Assert.assertEquals("Base command", info.get(0).getName());
		Assert.assertFalse(info.get(0).isFuture());
		Assert.assertTrue(info.get(0).isBase());

		Assert.assertEquals("Sample command 1", info.get(1).getName());
		Assert.assertEquals(HistoryTest.SampleCmd1.class, info.get(1).getType());
		Assert.assertTrue(info.get(1).isFuture());
		Assert.assertTrue(info.get(1).acceptsCommand(cmd1));
		Assert.assertFalse(info.get(1).acceptsCommand(cmd2));
		Assert.assertFalse(info.get(1).isBase());
		
		Assert.assertEquals("SampleCmd2", info.get(2).getName());
		Assert.assertEquals(HistoryTest.SampleCmd2.class, info.get(2).getType());
		Assert.assertTrue(info.get(2).isFuture());
		Assert.assertTrue(info.get(2).acceptsCommand(cmd2));
		Assert.assertFalse(info.get(2).acceptsCommand(cmd1));
		Assert.assertFalse(info.get(2).isBase());
	}