@@ -54,10 +54,71 @@ await TokenHolderContractStub.ContributeProfits.SendAsync(new ContributeProfitsI
5454
5555 {
5656 var tokenHolderProfitScheme = await TokenHolderContractStub . GetScheme . CallAsync ( Starter ) ;
57- tokenHolderProfitScheme . SchemeId . ShouldNotBeNull ( ) ;
57+ var schemeId = tokenHolderProfitScheme . SchemeId ;
58+ schemeId . ShouldNotBeNull ( ) ;
59+
60+ var result = await TokenHolderContractStub . CreateScheme . SendWithExceptionAsync ( new CreateTokenHolderProfitSchemeInput
61+ {
62+ Symbol = "AUG"
63+ } ) ;
64+
65+ result . TransactionResult . Status . ShouldBe ( TransactionResultStatus . Failed ) ;
66+ result . TransactionResult . Error . ShouldContain ( "Token holder profit scheme already exists" ) ;
5867 }
5968 }
6069
70+ [ Fact ]
71+ public async Task AddBeneficiaryWithWrongManagerTest ( )
72+ {
73+ var symbol = "AUG" ;
74+ var totalSupply = 10000000 ;
75+ var transferAmount = 1000 ;
76+ await StarterCreateIssueAndApproveTokenAsync ( symbol , totalSupply , totalSupply ) ;
77+ await TokenHolderContractStub . CreateScheme . SendAsync ( new CreateTokenHolderProfitSchemeInput
78+ {
79+ Symbol = symbol
80+ } ) ;
81+
82+ await TokenContractStub . Transfer . SendAsync ( new TransferInput
83+ {
84+ To = Other ,
85+ Amount = transferAmount ,
86+ Symbol = symbol
87+ } ) ;
88+
89+ await OtherTokenHolderContractStub . RegisterForProfits . SendAsync ( new RegisterForProfitsInput
90+ {
91+ SchemeManager = Starter ,
92+ Amount = 10
93+ } ) ;
94+
95+ var tokenHolderProfitScheme = await TokenHolderContractStub . GetScheme . CallAsync ( Other ) ;
96+ tokenHolderProfitScheme . SchemeId . ShouldBeNull ( ) ;
97+ tokenHolderProfitScheme . Symbol . ShouldBeEmpty ( ) ;
98+
99+ tokenHolderProfitScheme = await TokenHolderContractStub . GetScheme . CallAsync ( Starter ) ;
100+
101+ var scheme = await ProfitContractStub . GetScheme . CallAsync ( tokenHolderProfitScheme . SchemeId ) ;
102+ scheme . TotalShares . ShouldBe ( 10 ) ;
103+
104+ var result = await OtherTokenHolderContractStub . AddBeneficiary . SendWithExceptionAsync ( new AddTokenHolderBeneficiaryInput
105+ {
106+ Beneficiary = Other ,
107+ Shares = 100
108+ } ) ;
109+ result . TransactionResult . Status . ShouldBe ( TransactionResultStatus . Failed ) ;
110+ result . TransactionResult . Error . ShouldContain ( "Token holder profit scheme not found" ) ;
111+
112+ await TokenHolderContractStub . AddBeneficiary . SendAsync ( new AddTokenHolderBeneficiaryInput
113+ {
114+ Beneficiary = Other ,
115+ Shares = 100
116+ } ) ;
117+
118+ scheme = await ProfitContractStub . GetScheme . CallAsync ( tokenHolderProfitScheme . SchemeId ) ;
119+ scheme . TotalShares . ShouldBe ( 110 ) ;
120+ }
121+
61122 [ Fact ]
62123 public async Task ContributeProfitsTest ( )
63124 {
@@ -130,7 +191,7 @@ await TokenHolderContractStub.AddBeneficiary.SendAsync(new AddTokenHolderBenefic
130191
131192 {
132193 var originScheme = await ProfitContractStub . GetScheme . CallAsync ( tokenHolderProfitScheme . SchemeId ) ;
133- originScheme . TotalShares . ShouldBe ( newShare ) ;
194+ originScheme . TotalShares . ShouldBe ( newShare + 1 ) ;
134195 }
135196 }
136197
0 commit comments