@Test
	public void testSilence4orGreater2InBasement(){
		Mockery mocks = new Mockery() {
			{
				setImposteriser(ClassImposteriser.INSTANCE);
			}
		};
		
		card = new Silence(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).getCharacters();
					will(returnValue(characters));
					oneOf(mockGame).rollDice(6);
					will(returnValue(5));
					oneOf(mockGame).rollDice(7);
					will(returnValue(6));
					oneOf(mockGame).getCharacters();
					will(returnValue(characters));
					oneOf(mockGame).rollDice(4);
					will(returnValue(5));
					oneOf(mockGame).rollDice(5);
					will(returnValue(6));
				}
			});
			
			character.setCurrentRoom(game.getRoomByRoomName(RoomName.BASEMENTLANDING));
			character2.setCurrentRoom(game.getRoomByRoomName(RoomName.BASEMENTLANDING));
			
			assertEquals(4, character.getCurrentKnowledge());
			assertEquals(6, character.getCurrentSanity());
			assertEquals(3, character2.getCurrentKnowledge());
			assertEquals(4, character2.getCurrentSanity());
			card.happens();
			assertEquals(4, character.getCurrentKnowledge());
			assertEquals(6, character.getCurrentSanity());
			assertEquals(3, character2.getCurrentKnowledge());
			assertEquals(4, character2.getCurrentSanity());
			character.incrementSanity();
			character2.incrementSanity();
			card.happens();
			assertEquals(4, character.getCurrentKnowledge());
			assertEquals(7, character.getCurrentSanity());
			assertEquals(3, character2.getCurrentKnowledge());
			assertEquals(5, character2.getCurrentSanity());

			mocks.assertIsSatisfied();
		} catch (Exception e) {
			e.printStackTrace();
			Assert.fail();
		}
		
	}