public static void Init() { Initializer.ReleaseDependencies(); Initializer.LoadDependencies(); // Mock Room User Mock<IRoomUser> roomUser = MakeRoomUser(); mRoomUser = roomUser.Object; // Make user session Func<IOperationResult<IDictionary<IPlayer, int>>> valuesGetter = () => { IDictionary<IPlayer, int> values = new Dictionary<IPlayer, int>(); values.Add(Opp, 10); values.Add(User, 20); return Mok.Helper.CreateResultWith(ResultValue.Fail, values); }; Mock<IUserSession> uSession = MakeUserSession(roomUser, valuesGetter); UserSession = uSession.Object; Mock<IRoomUser> roomOpponent = MakeRoomOpponent(); Mock<IUserSession> oSession = MakeOpponentSession(roomOpponent, valuesGetter); OppSession = oSession.Object; Mok.Helper.SetupAccountManager(ResultValue.Fail, ResultValue.Success, uSession.Object, oSession.Object); // Setup the room Mock<IRoom> moqRoom = MakeRoom(roomUser, roomOpponent); mRoom = moqRoom.Object; // Setup the users' cards (8) IOperable<Mock<ICard>> buildOperation = CreateCardsMaker(); int i = 0; mUserCards = buildOperation .With(moqCard => moqCard.SetupGet(c => c.Name).Returns("user-card#" + ((++i % 8) + 1))) .Build().Select(moq => moq.Object); mOppCards = buildOperation .With(moqCard => moqCard.SetupGet(c => c.Name).Returns("opp-card#" + ((++i % 8) + 1))) .Build().Select(moq => moq.Object); // Setup a successful operation result Mock<IOperationResult> opResult = MakeOperationResult(); // Setup the users Mock<IPlayer> moqUser = SetupUsers(opResult); mUser = moqUser.Object; // Setup the battle opponent Mock<IPlayer> moqOpp = MakeOpponentPlayer(opResult); mOpp = moqOpp.Object; // Setup the battle scenario Mock<IBattleDirector> director = MakeBattleDirector(opResult); mBattleDirector = director.Object; // Setup the Rooms Manager Mock<IRoomsManager> moqRoomsManager = MakeRoomsManager(roomOpponent); Mok.Helper.Inject(moqRoomsManager.Object); }
private void Init(string sessionId) { Contract.Requires(!string.IsNullOrEmpty(sessionId)); session = SessionHelper.GetSession(sessionId); var result = Dependency.Locator.GetSingleton<IRoomsManager>() .GetRoomUser(session); if (result.Result == ResultValue.Success) { roomUser = result.ResultData; director = roomUser.Room.BattlesManager .GetOngoingBattle(roomUser); scenario = director.Scenario; this.InitCommonState(); switch (scenario.State) { case BattleState.WaitingForCardElection: this.SetCardElectionState(); break; case BattleState.WaitingForCardRemoval: this.SetCardRemovalState(); break; case BattleState.CalculatingResult: this.SetCalculatingState(); break; case BattleState.Concluded: this.SetConcludedState(); break; case BattleState.Aborted: this.SetAbortedState(); break; } } else { throw new NavigationException("Primero debe iniciar una batalla"); } }