public void OnOpenResponseFromServer(IOpenTimedChestResponse i_response, ITimedChestPM i_chestPM, ITimedChestData i_data) { if (i_response.IsOpeningVerified()) { IDungeonReward reward = RewardSpawner.Create(i_response.GetReward()); reward.Award(); UpdateNextAvailableTime(i_data.GetId(), i_response.GetNextAvailableTime()); i_chestPM.ShowOpenReward(reward); i_chestPM.UpdateProperties(); } }
public void WhenChestOpenResponseIsReceived_ChestPM_RewardGetsSet_And_UpdatePropertiesCalled() { ITimedChestPM mockPM = Substitute.For <ITimedChestPM>(); IOpenTimedChestResponse mockResponse = Substitute.For <IOpenTimedChestResponse>(); mockResponse.IsOpeningVerified().Returns(true); systemUnderTest.OnOpenResponseFromServer(mockResponse, mockPM, Substitute.For <ITimedChestData>()); mockPM.Received().ShowOpenReward(Arg.Any <IDungeonReward>()); mockPM.Received().UpdateProperties(); }
public void WhenChestOpenResponseIsReceived_SpawnerCreatesAndAwardsReward() { IOpenTimedChestResponse mockResponse = Substitute.For <IOpenTimedChestResponse>(); mockResponse.GetReward().Returns(Substitute.For <IGameRewardData>()); mockResponse.IsOpeningVerified().Returns(true); IDungeonReward mockReward = Substitute.For <IDungeonReward>(); MockRewardSpawner.Create(Arg.Any <IGameRewardData>()).Returns(mockReward); systemUnderTest.OnOpenResponseFromServer(mockResponse, Substitute.For <ITimedChestPM>(), Substitute.For <ITimedChestData>()); MockRewardSpawner.Received().Create(Arg.Any <IGameRewardData>()); mockReward.Received().Award(); }
public void WhenChestOpenResponseIsReceived_ChestsNextAvailableTime_IsUpdatedInSaveData() { IOpenTimedChestResponse mockResponse = Substitute.For <IOpenTimedChestResponse>(); mockResponse.IsOpeningVerified().Returns(true); mockResponse.GetNextAvailableTime().Returns(1000); ITimedChestData mockData = Substitute.For <ITimedChestData>(); mockData.GetId().Returns("TestId"); systemUnderTest.SaveData = new Dictionary <string, ITimedChestSaveDataEntry>() { { "TestId", new TimedChestSaveDataEntry() { NextAvailableTime = 0 } } }; systemUnderTest.OnOpenResponseFromServer(mockResponse, Substitute.For <ITimedChestPM>(), mockData); Assert.AreEqual(1000, systemUnderTest.SaveData["TestId"].GetNextAvailableTime()); }