예제 #1
0
        public async Task GetCandidates_Success()
        {
            //no candidate
            {
                var candidates = await Starter.GetCandidatesAsync();

                candidates.PublicKeys.Count.ShouldBe(0);
                candidates.Addresses.Count.ShouldBe(0);
            }

            //with candidate
            {
                var candidateInformation = TestUserHelper.GenerateNewUser();
                await Starter.TransferTokenAsync(candidateInformation, DPoSContractConsts.LockTokenForElection);

                var balance = await Starter.GetBalanceAsync(candidateInformation);

                Assert.Equal(DPoSContractConsts.LockTokenForElection, balance);

                // The candidate announce election.
                var candidate = Starter.CreateNewContractTester(candidateInformation);
                await candidate.AnnounceElectionAsync("AElfin");

                //Assert
                var candidates = await candidate.GetCandidatesAsync();

                candidates.PublicKeys.Count.ShouldBe(1);
                candidates.Addresses.Count.ShouldBe(1);
                candidates.IsInitialMiners.ShouldBeFalse();
            }
        }