private void CreatePoll(VotingModel votingModel, MinBalanceModel balanceModel, ulong?holdingId)
        {
            var       name               = Utilities.GenerateRandomString(10);
            var       description        = Utilities.GenerateRandomString(30);
            var       finishHeight       = TestSettings.MaxHeight + 1000;
            const int minNumberOfOptions = 1;
            const int maxNumberOfOptions = 1;
            const int minRangeValue      = 0;
            const int maxRangeValue      = 1;
            var       options            = new List <string> {
                "How are you doing?"
            };
            const int minBalance = 1;

            var createPollParameters = new CreatePollParameters(name, description, finishHeight, votingModel,
                                                                minNumberOfOptions, maxNumberOfOptions, minRangeValue, maxRangeValue, options)
            {
                MinBalance      = minBalance,
                MinBalanceModel = balanceModel,
                HoldingId       = holdingId
            };

            var createPollReply = _votingSystemService.CreatePoll(createPollParameters,
                                                                  CreateTransaction.CreateTransactionBySecretPhrase(fee: Amount.CreateAmountFromNxt(10))).Result;

            VerifyCreatePollParameters(createPollParameters, createPollReply.Transaction.Attachment as MessagingPollCreationAttachment);
        }
        private void SendEncryptedMessageToSelfBySecretPhrase()
        {
            using (Logger = new TestsessionLogger(_logger))
            {
                const string expected   = "Hello World!";
                var          parameters = CreateTransaction.CreateTransactionBySecretPhrase(false, Amount.CreateAmountFromNxt(3));
                parameters.EncryptedMessageToSelf = new CreateTransactionParameters.MessageToBeEncryptedToSelf(expected, true);
                var sendMesageResult = _messageService.SendMessage(parameters).Result;
                var actual           = sendMesageResult.Transaction.EncryptToSelfMessage;

                AssertIsTrue(actual.IsCompressed, nameof(actual.IsCompressed));
                AssertIsTrue(actual.IsText, nameof(actual.IsText));
                AssertIsNull(actual.MessageToEncrypt, nameof(actual.MessageToEncrypt));
                AssertIsNotNull(actual.Data, nameof(actual.Data));
                AssertIsNotNull(actual.Nonce, nameof(actual.Nonce));
            }
        }
        private void SendEncryptedDataBySecretPhrase()
        {
            using (Logger = new TestsessionLogger(_logger))
            {
                byte[] expected   = { 4, 7, 1, 64, 23, 91, 1, 45, 23 };
                var    parameters = CreateTransaction.CreateTransactionBySecretPhrase(false, Amount.CreateAmountFromNxt(3));
                parameters.EncryptedMessage = new CreateTransactionParameters.MessageToBeEncrypted(expected, true);
                var sendMesageResult = _messageService.SendMessage(parameters, TestSettings.Account2.AccountRs).Result;
                var actual           = sendMesageResult.Transaction.EncryptedMessage;

                AssertIsFalse(actual.IsPrunable, nameof(actual.IsPrunable));
                AssertIsTrue(actual.IsCompressed, nameof(actual.IsCompressed));
                AssertIsFalse(actual.IsText, nameof(actual.IsText));
                AssertIsNull(actual.MessageToEncrypt, nameof(actual.MessageToEncrypt));
                AssertIsNull(actual.EncryptedMessageHash, nameof(actual.EncryptedMessageHash));
                AssertIsNotNull(actual.Data, nameof(actual.Data));
                AssertIsNotNull(actual.Nonce, nameof(actual.Nonce));
            }
        }
        public void Test()
        {
            using (Logger = new TestsessionLogger(_logger))
            {
                if (!TestSettings.RunCostlyTests)
                {
                    Logger.Warn("RunCostlyTests is set to false, skipping CastVote");
                    return;
                }

                var castVoteReply = _votingSystemService.CastVote(TestSettings.PollId, new Dictionary <int, int> {
                    { 0, 1 }
                },
                                                                  CreateTransaction.CreateTransactionBySecretPhrase(true)).Result;

                var attachment = (MessagingVoteCastingAttachment)castVoteReply.Transaction.Attachment;
                AssertEquals(2, attachment.Votes.Count, "vote count");
                AssertEquals(1, attachment.Votes[0], "vote value at index 0");
                AssertEquals(-128, attachment.Votes[1], "vote value at index 1");
            }
        }