DatabaseTest.cpp 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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 <uecho/std/database.h>
  12. #include <uecho/util/strings.h>
  13. BOOST_AUTO_TEST_CASE(DatabaseStandardManufacture)
  14. {
  15. uEchoDatabase* db = uecho_standard_getdatabase();
  16. BOOST_CHECK(db);
  17. uEchoManufactureCode man_codes[] = { 0x00000B, 0x000005 };
  18. const char* man_names[] = { "Panasonic", "Sharp" };
  19. for (int n = 0; n < (sizeof(man_codes) / sizeof(uEchoManufactureCode)); n++) {
  20. uEchoManufacture* man = uecho_database_getmanufacture(db, man_codes[n]);
  21. BOOST_CHECK(man);
  22. BOOST_CHECK_EQUAL(uecho_strncmp(uecho_manufacture_getname(man), man_names[n], uecho_strlen(man_names[n])), 0);
  23. }
  24. }
  25. BOOST_AUTO_TEST_CASE(DatabaseStandardSuperObject)
  26. {
  27. uEchoDatabase* db = uecho_standard_getdatabase();
  28. BOOST_CHECK(db);
  29. byte obj_group_code = 0x00;
  30. byte obj_class_code = 0x00;
  31. uEchoObject* obj = uecho_database_getobject(db, obj_group_code, obj_class_code);
  32. BOOST_CHECK(obj);
  33. byte obj_prop_codes[] = {
  34. 0x80
  35. };
  36. uEchoPropertyAttr obj_prop_attrs[] = {
  37. uEchoPropertyAttr(uEchoPropertyAttrReadRequired | uEchoPropertyAttrWrite | uEchoPropertyAttrAnnoRequired),
  38. };
  39. for (int n = 0; n < (sizeof(obj_prop_codes) / sizeof(byte)); n++) {
  40. uEchoProperty* prop = uecho_object_getproperty(obj, obj_prop_codes[n]);
  41. BOOST_CHECK(prop);
  42. BOOST_CHECK_EQUAL(uecho_property_getattribute(prop), obj_prop_attrs[n]);
  43. }
  44. }
  45. BOOST_AUTO_TEST_CASE(DatabaseStandardNodeProfile)
  46. {
  47. uEchoDatabase* db = uecho_standard_getdatabase();
  48. BOOST_CHECK(db);
  49. byte obj_group_code = 0x0E;
  50. byte obj_class_code = 0xF0;
  51. uEchoObject* obj = uecho_database_getobject(db, obj_group_code, obj_class_code);
  52. BOOST_CHECK(obj);
  53. byte obj_prop_codes[] = {
  54. 0x80
  55. };
  56. uEchoPropertyAttr obj_prop_attrs[] = {
  57. uEchoPropertyAttr(uEchoPropertyAttrReadRequired | uEchoPropertyAttrAnnoRequired),
  58. };
  59. for (int n = 0; n < (sizeof(obj_prop_codes) / sizeof(byte)); n++) {
  60. uEchoProperty* prop = uecho_object_getproperty(obj, obj_prop_codes[n]);
  61. BOOST_CHECK(prop);
  62. BOOST_CHECK_EQUAL(uecho_property_getattribute(prop), obj_prop_attrs[n]);
  63. }
  64. }
  65. BOOST_AUTO_TEST_CASE(DatabaseStandardDevice)
  66. {
  67. uEchoDatabase* db = uecho_standard_getdatabase();
  68. BOOST_CHECK(db);
  69. byte obj_group_code = 0x02;
  70. byte obj_class_code = 0x91;
  71. uEchoObject* obj = uecho_database_getobject(db, obj_group_code, obj_class_code);
  72. BOOST_CHECK(obj);
  73. byte obj_prop_codes[] = {
  74. 0x80
  75. };
  76. uEchoPropertyAttr obj_prop_attrs[] = {
  77. uEchoPropertyAttr(uEchoPropertyAttrReadRequired | uEchoPropertyAttrWriteRequired | uEchoPropertyAttrAnnoRequired),
  78. };
  79. for (int n = 0; n < (sizeof(obj_prop_codes) / sizeof(byte)); n++) {
  80. uEchoProperty* prop = uecho_object_getproperty(obj, obj_prop_codes[n]);
  81. BOOST_CHECK(prop);
  82. BOOST_CHECK_EQUAL(uecho_property_getattribute(prop), obj_prop_attrs[n]);
  83. }
  84. }