From 610a970be002d1b80ffbffe0fb4e28782a5fa51d Mon Sep 17 00:00:00 2001 From: Sergei Date: Wed, 4 Jul 2018 18:34:23 +0700 Subject: [PATCH] Fix develop (#1534) Signed-off-by: Sergei --- .../validators/transaction_validator_test.cpp | 53 +++++++++++++++---- .../validators/validators_fixture.hpp | 2 +- 2 files changed, 45 insertions(+), 10 deletions(-) diff --git a/test/module/shared_model/validators/transaction_validator_test.cpp b/test/module/shared_model/validators/transaction_validator_test.cpp index 83c98ac511..34b72767aa 100644 --- a/test/module/shared_model/validators/transaction_validator_test.cpp +++ b/test/module/shared_model/validators/transaction_validator_test.cpp @@ -33,10 +33,10 @@ class TransactionValidatorTest : public ValidatorsTest { TestTransactionBuilder builder; auto tx = builder.creatorAccountId(creator_account_id) - .createdTime(created_time) - .quorum(1) - .build() - .getTransport(); + .createdTime(created_time) + .quorum(1) + .build() + .getTransport(); return tx; } shared_model::validation::DefaultTransactionValidator transaction_validator; @@ -111,13 +111,22 @@ TEST_F(TransactionValidatorTest, StatelessValidTest) { ASSERT_FALSE(answer.hasErrors()) << answer.reason(); } + /** - * @given transaction made of commands with valid fields - * @when commands validation is invoked - * @then answer has no errors + * @given Protobuf transaction object with unset command + * @when validate is called + * @then there is a error returned */ -TEST_F(TransactionValidatorTest, BatchValidTest) { - std::string creator_account_id = "admin@test"; +TEST_F(TransactionValidatorTest, UnsetCommand) { + iroha::protocol::Transaction tx = generateEmptyTransaction(); + tx.mutable_payload()->mutable_reduced_payload()->set_creator_account_id( + account_id); + tx.mutable_payload()->mutable_reduced_payload()->set_created_time( + created_time); + auto answer = transaction_validator.validate(proto::Transaction(tx)); + tx.mutable_payload()->mutable_reduced_payload()->add_commands(); + ASSERT_TRUE(answer.hasErrors()); +} /** * @given transaction made of commands with invalid fields @@ -155,3 +164,29 @@ TEST_F(TransactionValidatorTest, StatelessInvalidTest) { ASSERT_EQ(answer.getReasonsMap().size(), iroha::protocol::Command::descriptor()->field_count() + 1); } +/** + * @given transaction made of commands with valid fields + * @when commands validation is invoked + * @then answer has no errors + */ +TEST_F(TransactionValidatorTest, BatchValidTest) { + std::string creator_account_id = "admin@test"; + + TestTransactionBuilder builder; + auto tx = builder.creatorAccountId(creator_account_id) + .createdTime(created_time) + .quorum(1) + .batchMeta(interface::types::BatchType::ATOMIC, + std::vector()) + .createDomain("test", "test") + .build() + .getTransport(); + shared_model::validation::DefaultTransactionValidator transaction_validator; + auto result = proto::Transaction(iroha::protocol::Transaction(tx)); + auto answer = transaction_validator.validate(result); + + ASSERT_FALSE(answer.hasErrors()) << answer.reason(); + ASSERT_EQ(tx.payload().batch().type(), + static_cast(interface::types::BatchType::ATOMIC)); +} + diff --git a/test/module/shared_model/validators/validators_fixture.hpp b/test/module/shared_model/validators/validators_fixture.hpp index 5f69ce8259..04fd49aac9 100644 --- a/test/module/shared_model/validators/validators_fixture.hpp +++ b/test/module/shared_model/validators/validators_fixture.hpp @@ -160,7 +160,7 @@ class ValidatorsTest : public ::testing::Test { void *ptr = new std::shared_ptr(mcopy); std::shared_ptr *m = static_cast *>(ptr); - iterateContainerRecursive(*m, field_validators, field_op, validator); + this->iterateContainerRecursive(*m, field_validators, field_op, validator); } }); }