PropertyListTest.cpp 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /******************************************************************
  2. *
  3. * uEcho for C
  4. *
  5. * Copyright (C) Satoshi Konno 2015
  6. *
  7. * This is licensed under BSD-style license, see file COPYING.
  8. *
  9. ******************************************************************/
  10. #include <boost/test/unit_test.hpp>
  11. #include <stdlib.h>
  12. #include <uecho/_property.h>
  13. BOOST_AUTO_TEST_CASE(PropertyListAdd)
  14. {
  15. uEchoPropertyList* props = uecho_propertylist_new();
  16. BOOST_CHECK_EQUAL(uecho_propertylist_size(props), 0);
  17. for (size_t n = uEchoPropertyCodeMin; n <= uEchoPropertyCodeMax; n++) {
  18. uEchoProperty* prop = uecho_property_new();
  19. uecho_property_setcode(prop, n);
  20. byte* prop_data = (byte*)malloc(n);
  21. uecho_property_setdata(prop, prop_data, n);
  22. BOOST_CHECK(uecho_propertylist_add(props, prop));
  23. free(prop_data);
  24. }
  25. BOOST_CHECK_EQUAL(uecho_propertylist_size(props), (uEchoPropertyCodeMax - uEchoPropertyCodeMin + 1));
  26. for (size_t n = uEchoPropertyCodeMin; n <= uEchoPropertyCodeMax; n++) {
  27. uEchoProperty* prop = uecho_propertylist_findbycode(props, n);
  28. BOOST_CHECK(prop);
  29. BOOST_CHECK_EQUAL(uecho_property_getcode(prop), n);
  30. BOOST_CHECK_EQUAL(uecho_property_getdatasize(prop), n);
  31. }
  32. BOOST_CHECK_EQUAL(uecho_propertylist_size(props), (uEchoPropertyCodeMax - uEchoPropertyCodeMin + 1));
  33. BOOST_CHECK(uecho_propertylist_clear(props));
  34. BOOST_CHECK_EQUAL(uecho_propertylist_size(props), 0);
  35. uecho_propertylist_delete(props);
  36. }
  37. BOOST_AUTO_TEST_CASE(PropertyListSet)
  38. {
  39. uEchoPropertyList* props = uecho_propertylist_new();
  40. BOOST_CHECK_EQUAL(uecho_propertylist_size(props), 0);
  41. for (size_t n = uEchoPropertyCodeMin; n <= uEchoPropertyCodeMax; n++) {
  42. byte* prop_data = (byte*)malloc(n);
  43. BOOST_CHECK(uecho_propertylist_setdata(props, n, prop_data, n));
  44. free(prop_data);
  45. }
  46. BOOST_CHECK_EQUAL(uecho_propertylist_size(props), (uEchoPropertyCodeMax - uEchoPropertyCodeMin + 1));
  47. for (size_t n = uEchoPropertyCodeMin; n <= uEchoPropertyCodeMax; n++) {
  48. uEchoProperty* prop = uecho_propertylist_findbycode(props, n);
  49. BOOST_CHECK(prop);
  50. BOOST_CHECK_EQUAL(uecho_property_getcode(prop), n);
  51. BOOST_CHECK_EQUAL(uecho_property_getdatasize(prop), n);
  52. }
  53. BOOST_CHECK_EQUAL(uecho_propertylist_size(props), (uEchoPropertyCodeMax - uEchoPropertyCodeMin + 1));
  54. BOOST_CHECK(uecho_propertylist_clear(props));
  55. BOOST_CHECK_EQUAL(uecho_propertylist_size(props), 0);
  56. uecho_propertylist_delete(props);
  57. }