@Test
	public void testFuneral0Or1(){
		final Room gy = roomFact.makeRoom(RoomName.GRAVEYARD);
		final Room cy = roomFact.makeRoom(RoomName.CRYPT);
		Mockery mocks = new Mockery() {
			{
				setImposteriser(ClassImposteriser.INSTANCE);
			}
		};

		card = new Funeral(enLocale);
		
		final Game mockGame = mocks.mock(Game.class);
		try {
			Field instanceField = Game.class.getDeclaredField("INSTANCE");
			instanceField.setAccessible(true);
			instanceField.set(null, mockGame);

			mocks.checking(new Expectations() {
				{
					oneOf(mockGame).getCurrentCharacter();
					will(returnValue(character));
					oneOf(mockGame).rollDice(6);
					will(returnValue(1));
					oneOf(mockGame).getRoomByRoomName(RoomName.GRAVEYARD);
					will(returnValue(null));
					oneOf(mockGame).getRoomByRoomName(RoomName.CRYPT);
					will(returnValue(null));
					
					oneOf(mockGame).getCurrentCharacter();
					will(returnValue(character));
					oneOf(mockGame).rollDice(5);
					will(returnValue(0));
					oneOf(mockGame).getRoomByRoomName(RoomName.GRAVEYARD);
					will(returnValue(gy));
					oneOf(mockGame).getRoomByRoomName(RoomName.CRYPT);
					will(returnValue(cy));
					oneOf(mockGame).chooseGraveyardOrCrypt();
					will(returnValue(RoomName.GRAVEYARD));
					oneOf(mockGame).getRoomByRoomName(RoomName.GRAVEYARD);
					will(returnValue(gy));
					
				}
			});
			
			card.happens();
			assertEquals(5, character.getCurrentSanity());
			assertEquals(2, character.getCurrentMight());
			assertEquals(entrance, character.getCurrentRoom());
			card.happens();
			assertEquals(5, character.getCurrentSanity());
			assertEquals(1, character.getCurrentMight());
			assertEquals(gy, character.getCurrentRoom());
			
			mocks.assertIsSatisfied();
		} catch (Exception e) {
			e.printStackTrace();
			Assert.fail();
		}
		
	}