public void InitializeMember_BurnTokensOnMint_AssertEqual()
        {
            this.member = new Member(this.addressFactory.Create(), this.contractRegistry, this.permissionManager.Address);
            this.contractRegistry.RegisterContract(this.member);
            var mintedStrategy = new AddTokensMintedStrategyAction(
                string.Empty, this.member.Address, this.tokenManager.Address, new BurnTokensReceivedStrategy());

            this.permissionManager.ExecuteAction(mintedStrategy);

            var addTokenMintPermission = new AddPermissionAction(
                string.Empty,
                this.member.Address,
                new Permission(typeof(TokensMintedAction)),
                this.tokenManager.Address);

            this.permissionManager.ExecuteAction(addTokenMintPermission);

            var addTokenBurnPermission = new AddPermissionAction(
                string.Empty,
                this.tokenManager.Address,
                new Permission(typeof(BurnAction)),
                this.member.Address);

            this.permissionManager.ExecuteAction(addTokenBurnPermission);

            var mintAction = new MintAction(
                string.Empty,
                this.tokenManager.Address,
                400,
                this.member.Address);

            this.permissionManager.ExecuteAction(mintAction);

            Assert.Equal(0, this.tokenManager.TaggedBalanceOf(this.member.Address).TotalBalance);
        }
Example #2
0
        public void SplitReward_AccordingToTheHours()
        {
            var task = this.CreateTask(null);

            this.CreateTokenInteractionPermissions(task.Address);

            var mintAction = new MintAction(string.Empty, this.tokenManager.Address, 160, task.Address);

            this.permissionManager.ExecuteAction(mintAction);

            var employee1 = this.addressFactory.Create();
            var employee2 = this.addressFactory.Create();
            var employee3 = this.addressFactory.Create();

            this.TrackHours_ReturnsSplitterTrack(employee1, task.Address, 5);
            this.TrackHours_ReturnsSplitterTrack(employee2, task.Address, 15);
            this.TrackHours_ReturnsSplitterTrack(employee3, task.Address, 20);

            var stageAction = new ChangeStageAction(string.Empty, task.Address, TaskStage.Finalized);

            this.permissionManager.ExecuteAction(stageAction);

            var employee1Tokens = this.tokenManager.TaggedBalanceOf(employee1).TotalBalance;
            var employee2Tokens = this.tokenManager.TaggedBalanceOf(employee2).TotalBalance;
            var employee3Tokens = this.tokenManager.TaggedBalanceOf(employee3).TotalBalance;

            Assert.Equal(20, employee1Tokens);
            Assert.Equal(60, employee2Tokens);
            Assert.Equal(80, employee3Tokens);
        }
Example #3
0
        public void ReceiveMintedTokens()
        {
            var task = this.CreateTask(null);

            this.CreateTokenInteractionPermissions(task.Address);

            var mintAction = new MintAction(
                string.Empty,
                this.tokenManager.Address,
                160,
                task.Address);

            this.permissionManager.ExecuteAction(mintAction);
            Assert.Equal(160, task.TokenManagersToBalances[this.tokenManager.Address]);
        }