Skip to content

Commit

Permalink
Test for consensus validator
Browse files Browse the repository at this point in the history
  • Loading branch information
l4l committed Mar 4, 2017
1 parent 6c95f3b commit 27bd2fb
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
4 changes: 3 additions & 1 deletion core/validation/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
SET(KECCAK_PATH "${PROJECT_SOURCE_DIR}/core/vendor/KeccakCodePackage")
SET(ED25519_PATH "${PROJECT_SOURCE_DIR}/core/vendor/ed25519")

ADD_LIBRARY(validator STATIC
add_library(validator STATIC
#consensus_event_validator.cpp
transaction_validator.cpp
)

target_link_libraries(validator signature)
26 changes: 25 additions & 1 deletion test/validation/transaction_validator_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,13 @@

using Api::ConsensusEvent;
using Api::Transaction;
using Api::EventSignature;
using Api::TxSignatures;


std::string public_key_b64 = "slyr7oz2+EU6dh2dY9+jNeO/hVrXCkT3rGhcNZo5rrE=";
std::string signature_b64 = "gdMUgjyo++4QpF1xDJNdk1a5zmDAEPM67WD4cn6CVZqDxC8nShb/L1Tokgo53HSOPDB0qXAVzcBvfcJ1WLjrAQ==";
std::string hash = "46ed8c250356759f68930a94996faaa8f8c98ecbe0dcc58c479c8fad71e30096";
std::string signature_b64 = "gdMUgjyo++4QpF1xDJNdk1a5zmDAEPM67WD4cn6CVZqDxC8nShb/L1Tokgo53HSOPDB0qXAVzcBvfcJ1WLjrAQ==";

TEST(transaction_validator, verify_transaction_event) {
auto tx = std::make_unique<Transaction>();
Expand All @@ -39,4 +40,27 @@ TEST(transaction_validator, verify_transaction_event) {
tx->add_txsignatures()->CopyFrom(sig);
ASSERT_EQ(transaction_validator::signaturesAreValid(tx),
signature::verify(tx->txsignatures(0).signature(), tx->hash(), tx->txsignatures(0).publickey()));

// Wrong hashes shouldn't be validated
tx->set_hash("123");
ASSERT_NE(transaction_validator::signaturesAreValid(tx),
signature::verify(signature_b64, hash, public_key_b64));
}

TEST(transaction_validator, verify_consensus_event) {
auto ev = std::make_unique<ConsensusEvent>();
auto tx = new Transaction;
EventSignature sig;
tx->set_hash(hash);
sig.set_publickey(public_key_b64);
sig.set_signature(signature_b64);
ev->set_allocated_transaction(tx);
ev->add_eventsignatures()->CopyFrom(sig);
ASSERT_EQ(transaction_validator::signaturesAreValid(ev),
signature::verify(ev->eventsignatures(0).signature(), ev->transaction().hash(), ev->eventsignatures(0).publickey()));

// Wrong hashes shouldn't be validated
tx->set_hash("123");
ASSERT_NE(transaction_validator::signaturesAreValid(ev),
signature::verify(signature_b64, hash, public_key_b64));
}

0 comments on commit 27bd2fb

Please sign in to comment.