public void ChangeRewardReceiver_WhenInvalidReceiver_ThrowsException()
        {
            var task   = this.CreateTask(null);
            var action = new ChnageTaskRewardReceiverAction(string.Empty, task.Address, task.Address);

            Assert.Throws <UnallowedRewardReceiverException>(() => this.permissionManager.ExecuteAction(action));
        }
        public void ChangeRewardReceiver()
        {
            var receiver = this.addressFactory.Create();
            var task     = this.CreateTask(null);
            var action   = new ChnageTaskRewardReceiverAction(string.Empty, task.Address, receiver);

            this.permissionManager.ExecuteAction(action);
            Assert.Equal(receiver, task.TokenReceiver);
        }
        private bool HandleRewardReceiverChange(ChnageTaskRewardReceiverAction action)
        {
            if (action.RewardReceiver.CompareTo(action.Target) == 0)
            {
                throw new UnallowedRewardReceiverException(this, action.RewardReceiver);
            }

            this.TokenReceiver = action.RewardReceiver;
            return(true);
        }
Example #4
0
        private bool HandleAddTask(AddTaskAction action)
        {
            Task task = action.Task;

            if (task.TokenReceiver.CompareTo(this.DefaultTokenSplitter) != 0)
            {
                var changeReceiverAction =
                    new ChnageTaskRewardReceiverAction(
                        string.Empty,
                        task.Address,
                        this.DefaultTokenSplitter);
                this.OnSend(changeReceiverAction);
            }

            // maybe should also remove contract from registry
            return(this.tasksAddresses.Add(action.Task.Address));
        }