public void Rehearsal() { var action = new DailyReward { avatarAddress = _avatarAddress, }; var nextState = action.Execute(new ActionContext { BlockIndex = 0, PreviousStates = new State(), Random = new TestRandom(), Rehearsal = true, Signer = _agentAddress, }); var updatedAddresses = new List <Address> { _avatarAddress, _avatarAddress.Derive(LegacyInventoryKey), _avatarAddress.Derive(LegacyWorldInformationKey), _avatarAddress.Derive(LegacyQuestListKey), }; Assert.Equal(updatedAddresses.ToImmutableHashSet(), nextState.UpdatedAddresses); }
public void Execute() { var dailyRewardAction = new DailyReward { avatarAddress = _avatarAddress, }; var nextState = dailyRewardAction.Execute(new ActionContext { BlockIndex = 0, PreviousStates = _initialState, Random = new TestRandom(), Rehearsal = false, Signer = _agentAddress, }); var gameConfigState = nextState.GetGameConfigState(); var nextAvatarState = nextState.GetAvatarState(_avatarAddress); Assert.Equal(gameConfigState.ActionPointMax, nextAvatarState.actionPoint); Assert.Single(nextAvatarState.mailBox); var mail = nextAvatarState.mailBox.First(); var rewardMail = mail as DailyRewardMail; Assert.NotNull(rewardMail); var rewardResult = rewardMail.attachment as DailyReward.DailyRewardResult; Assert.NotNull(rewardResult); Assert.Single(rewardResult.materials); var material = rewardResult.materials.First(); Assert.Equal(400000, material.Key.Id); Assert.Equal(10, material.Value); }
public void ExecuteThrowFailedLoadStateException() { var action = new DailyReward { avatarAddress = _avatarAddress, }; Assert.Throws <FailedLoadStateException>(() => action.Execute(new ActionContext() { PreviousStates = new State(), Signer = _agentAddress, BlockIndex = 0, }) ); }
private IAccountStateDelta ExecuteInternal(IAccountStateDelta previousStates, long blockIndex = 0) { var dailyRewardAction = new DailyReward { avatarAddress = _avatarAddress, }; return(dailyRewardAction.Execute(new ActionContext { BlockIndex = blockIndex, PreviousStates = previousStates, Random = new TestRandom(), Rehearsal = false, Signer = _agentAddress, })); }
public void Execute() { var dailyRewardAction = new DailyReward { avatarAddress = _avatarAddress, }; var nextState = dailyRewardAction.Execute(new ActionContext { BlockIndex = 0, PreviousStates = _initialState, Rehearsal = false, Signer = _agentAddress, }); var gameConfigState = nextState.GetGameConfigState(); var nextAvatarState = nextState.GetAvatarState(_avatarAddress); Assert.Equal(gameConfigState.ActionPointMax, nextAvatarState.actionPoint); }