public void Setup()
 {
     randomMock    = new Mock <IRandomProvider>();
     combatMock    = new Mock <ICombatInstance>();
     publisherMock = new Mock <IEventPublisher <EventType> >();
     mapMock       = new Mock <IMap>();
     mapMock.Setup(f => f.Start).Returns(startPos);
     mapMock.Setup(f => f.Goal).Returns(goalPos);
     eventRecipientMock = new Mock <IEventRecipient <ICombatUpdateEvent> >();
     combatFactoryMock  = new Mock <ICombatInstanceFactory>(MockBehavior.Strict);
     combatFactoryMock.Setup(f => f.CreateInstance(It.IsAny <ICharacter[]>())).Returns(combatMock.Object);
     CombatManager.ClearInstance();
     timeProviderMock = new Mock <ITimeProvider>();
     gameManagerMock  = new Mock <IGameManager>();
     gameManagerMock.Setup(e => e.GridMap).Returns(mapMock.Object);
     SingletonProvider.MainRandomProvider = randomMock.Object;
     SingletonProvider.MainGameManager    = gameManagerMock.Object;
     SingletonProvider.MainEventPublisher = publisherMock.Object;
     manager = new CombatManager(combatFactoryMock.Object);
 }