| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #include <gmock/gmock.h>
- #include <gtest/gtest.h>
- #include <json/value.h>
- #include <jvalidate/adapter.h>
- #include <jvalidate/adapters/jsoncpp.h>
- #include <jvalidate/detail/array_iterator.h>
- #include <jvalidate/detail/object_iterator.h>
- using namespace jvalidate::adapter;
- using testing::IsEmpty;
- TEST(JsonCppAdapterTest, IteratorDefaultCtors) {
- using ArrayIterator =
- detail::JsonArrayIterator<Json::ValueConstIterator, JsonCppAdapter<Json::Value const>>;
- using ObjectIterator =
- detail::JsonObjectIterator<Json::ValueConstIterator, JsonCppAdapter<Json::Value const>>;
- EXPECT_THAT(ArrayIterator(), ArrayIterator());
- EXPECT_THAT(ObjectIterator(), ObjectIterator());
- }
- TEST(JsonCppAdapterTest, Empty) {
- EXPECT_THAT(&AdapterTraits<Json::Value>::const_empty(),
- &AdapterTraits<Json::Value const>::const_empty());
- }
- TEST(JsonCppAdapterTest, NumberThatFitsInIntIsIntType) {
- Json::Value json = 10.0;
- EXPECT_THAT(JsonCppAdapter(json).type(), Type::Integer);
- }
- TEST(JsonCppAdapterTest, NumberThatDoesFitsInIntIsNumberType) {
- Json::Value json = 10.5;
- EXPECT_THAT(JsonCppAdapter(json).type(), Type::Number);
- }
- TEST(JsonCppAdapterTest, UIntThatFitsInIntIsIntType) {
- Json::Value json = 10ULL;
- EXPECT_THAT(JsonCppAdapter(json).type(), Type::Integer);
- }
- TEST(JsonCppAdapterTest, UIntThatDoesNotFitInIntIsNumberType) {
- Json::Value json = 9223372036854775808ULL;
- EXPECT_THAT(JsonCppAdapter(json).type(), Type::Number);
- }
- TEST(JsonCppAdapterTest, ObjectAdapterIsNullSafe) {
- JsonCppObjectAdapter<Json::Value const> object(nullptr);
- EXPECT_THAT(object.size(), 0);
- EXPECT_THAT(*object, IsEmpty());
- EXPECT_NO_THROW(object.find("A"));
- EXPECT_THAT(object.begin(), object.end());
- EXPECT_THAT(object.find("A"), object.end());
- EXPECT_FALSE(object.contains("A"));
- EXPECT_NO_THROW(object["A"]);
- EXPECT_THAT(object["A"].type(), Type::Null);
- }
- TEST(JsonCppAdapterTest, ArrayAdapterIsNullSafe) {
- jvalidate::adapter::detail::SimpleArrayAdapter<Json::Value const> array(nullptr);
- EXPECT_THAT(array.size(), 0);
- EXPECT_THAT(*array, IsEmpty());
- EXPECT_THAT(array.begin(), array.end());
- EXPECT_NO_THROW(array[0]);
- EXPECT_THAT(array[0].type(), Type::Null);
- }
- #if !defined(JVALIDATE_MONOTEST)
- int main(int argc, char ** argv) {
- testing::InitGoogleMock(&argc, argv);
- return RUN_ALL_TESTS();
- }
- #endif
|