|
@ -34,7 +34,7 @@ namespace test |
|
|
class InterfaceChecker |
|
|
class InterfaceChecker |
|
|
{ |
|
|
{ |
|
|
public: |
|
|
public: |
|
|
bool checkInterface(std::string const& _code, std::string const& _expectedInterfaceString) |
|
|
void checkInterface(std::string const& _code, std::string const& _expectedInterfaceString) |
|
|
{ |
|
|
{ |
|
|
m_compilerStack.parse(_code); |
|
|
m_compilerStack.parse(_code); |
|
|
std::string generatedInterfaceString = m_compilerStack.getInterface(); |
|
|
std::string generatedInterfaceString = m_compilerStack.getInterface(); |
|
@ -42,7 +42,9 @@ public: |
|
|
m_reader.parse(generatedInterfaceString, generatedInterface); |
|
|
m_reader.parse(generatedInterfaceString, generatedInterface); |
|
|
Json::Value expectedInterface; |
|
|
Json::Value expectedInterface; |
|
|
m_reader.parse(_expectedInterfaceString, expectedInterface); |
|
|
m_reader.parse(_expectedInterfaceString, expectedInterface); |
|
|
return expectedInterface == generatedInterface; |
|
|
BOOST_CHECK_MESSAGE(expectedInterface == generatedInterface, |
|
|
|
|
|
"Expected " << _expectedInterfaceString << |
|
|
|
|
|
"\n but got:\n" << generatedInterfaceString); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private: |
|
|
private: |
|
@ -50,7 +52,7 @@ private: |
|
|
Json::Reader m_reader; |
|
|
Json::Reader m_reader; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
BOOST_FIXTURE_TEST_SUITE(SolidityCompilerJSONInterfaceOutput, InterfaceChecker) |
|
|
BOOST_FIXTURE_TEST_SUITE(solidityABIJSON, InterfaceChecker) |
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(basic_test) |
|
|
BOOST_AUTO_TEST_CASE(basic_test) |
|
|
{ |
|
|
{ |
|
@ -76,7 +78,7 @@ BOOST_AUTO_TEST_CASE(basic_test) |
|
|
} |
|
|
} |
|
|
])"; |
|
|
])"; |
|
|
|
|
|
|
|
|
BOOST_CHECK(checkInterface(sourceCode, interface)); |
|
|
checkInterface(sourceCode, interface); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(empty_contract) |
|
|
BOOST_AUTO_TEST_CASE(empty_contract) |
|
@ -86,7 +88,7 @@ BOOST_AUTO_TEST_CASE(empty_contract) |
|
|
|
|
|
|
|
|
char const* interface = "[]"; |
|
|
char const* interface = "[]"; |
|
|
|
|
|
|
|
|
BOOST_CHECK(checkInterface(sourceCode, interface)); |
|
|
checkInterface(sourceCode, interface); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(multiple_methods) |
|
|
BOOST_AUTO_TEST_CASE(multiple_methods) |
|
@ -129,7 +131,7 @@ BOOST_AUTO_TEST_CASE(multiple_methods) |
|
|
} |
|
|
} |
|
|
])"; |
|
|
])"; |
|
|
|
|
|
|
|
|
BOOST_CHECK(checkInterface(sourceCode, interface)); |
|
|
checkInterface(sourceCode, interface); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(multiple_params) |
|
|
BOOST_AUTO_TEST_CASE(multiple_params) |
|
@ -160,7 +162,7 @@ BOOST_AUTO_TEST_CASE(multiple_params) |
|
|
} |
|
|
} |
|
|
])"; |
|
|
])"; |
|
|
|
|
|
|
|
|
BOOST_CHECK(checkInterface(sourceCode, interface)); |
|
|
checkInterface(sourceCode, interface); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(multiple_methods_order) |
|
|
BOOST_AUTO_TEST_CASE(multiple_methods_order) |
|
@ -204,7 +206,7 @@ BOOST_AUTO_TEST_CASE(multiple_methods_order) |
|
|
} |
|
|
} |
|
|
])"; |
|
|
])"; |
|
|
|
|
|
|
|
|
BOOST_CHECK(checkInterface(sourceCode, interface)); |
|
|
checkInterface(sourceCode, interface); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_SUITE_END() |
|
|
BOOST_AUTO_TEST_SUITE_END() |
|
|