public void ExecuteProposal_Already_Executed_Proposal_Fails() { var duration = 10u; var contract = CreateContract(); contract.WhitelistAddress(voter); SetupMessage(proposalOwner); var proposalId = contract.CreateProposal(recipent, 100, duration, Description); SetupMessage(voter); contract.Vote(proposalId, true); SetupMessage(proposalOwner); SetupBlock(12); mContractState.Setup(m => m.GetBalance).Returns(() => 100); mTransactionExecutor.Setup(m => m.Transfer(mContractState.Object, recipent, 100)).Returns(TransferResult.Succeed()); var proposal = contract.GetProposal(proposalId); proposal.Executed = true; state.SetStruct($"Proposals:{proposalId}", proposal); contract.Invoking(m => m.ExecuteProposal(proposalId)) .Should() .Throw <SmartContractAssertException>() .WithMessage("The proposal is already executed."); }
public void MappAddress_Fails_If_SecondaryAddress_Is_Mapped_Already(Status status) { state.SetStruct($"MappingInfo:{secondaryAddress}", new MappingInfo { Primary = primaryAddress, Status = (int)status }); mContractState.Setup(x => x.Message).Returns(new Message(contractAddress, primaryAddress, 0)); var contract = new AddressMapper(mContractState.Object, ownerAddress); Assert.Throws <SmartContractAssertException>(() => contract.MapAddress(secondaryAddress)); }