/* * Boost.Extension / zone test * * (C) Copyright Jeremy Pack 2007 * Distributed under the Boost Software License, Version 1.0. (See * accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) * * See http://www.boost.org/ for latest version. */ #include #include #define BOOST_TEST_MAIN #include #include "fruit.hpp" using namespace boost::extensions; BOOST_AUTO_TEST_CASE(add_one) { factory_map z; BOOST_CHECK_EQUAL((z.get().size()), size_t(0)); z.get()["A round fruit"].set(); BOOST_CHECK_EQUAL((z.get().size()), size_t(1)); BOOST_CHECK_EQUAL((z.get().size()), size_t(0)); } BOOST_AUTO_TEST_CASE(add_multiple) { factory_map z; BOOST_CHECK_EQUAL((z.get().size()), size_t(0)); z.get()["A round fruit"].set(); BOOST_CHECK_EQUAL((z.get().size()), size_t(1)); BOOST_CHECK_EQUAL((z.get().size()), size_t(0)); z.get()["A fruit that is not round"] .set(); BOOST_CHECK_EQUAL((z.get().size()), size_t(2)); BOOST_CHECK_EQUAL((z.get().size()), size_t(0)); z.get()["A round fruit"].set(); BOOST_CHECK_EQUAL((z.get().size()), size_t(2)); BOOST_CHECK_EQUAL((z.get().size()), size_t(1)); } BOOST_AUTO_TEST_CASE(readd) { factory_map z; BOOST_CHECK_EQUAL((z.get().size()), size_t(0)); z.get()["A round fruit"].set(); BOOST_CHECK_EQUAL((z.get().size()), size_t(1)); BOOST_CHECK_EQUAL((z.get().size()), size_t(0)); z.get()["A round fruit"].set(); BOOST_CHECK_EQUAL((z.get().size()), size_t(1)); BOOST_CHECK_EQUAL((z.get().size()), size_t(0)); z.get()["A round fruit"].set(); BOOST_CHECK_EQUAL((z.get().size()), size_t(1)); BOOST_CHECK_EQUAL((z.get().size()), size_t(1)); } BOOST_AUTO_TEST_CASE(different_base) { factory_map z; BOOST_CHECK_EQUAL((z.get().size()), size_t(0)); z.get()["A round fruit"].set(); z.get()["A round fruit that isn't very sweet"].set(); z.get() [vegetable_info("Tomato", 112)].set(); BOOST_CHECK_EQUAL((z.get().size()), size_t(2)); BOOST_CHECK_EQUAL((z.get().size()), size_t(1)); BOOST_CHECK_EQUAL((z.get().begin()->first.get_calories()), 112); }