winlin

amf0 utest: finish utest for string to any

@@ -60,6 +60,10 @@ public: @@ -60,6 +60,10 @@ public:
60 virtual bool is_object_eof(); 60 virtual bool is_object_eof();
61 virtual bool is_ecma_array(); 61 virtual bool is_ecma_array();
62 public: 62 public:
  63 + /**
  64 + * get the string of any when is_string() indicates true.
  65 + * user must ensure the type is a string, or assert failed.
  66 + */
63 virtual std::string to_str(); 67 virtual std::string to_str();
64 public: 68 public:
65 virtual int size() = 0; 69 virtual int size() = 0;
@@ -22,6 +22,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -22,6 +22,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */ 22 */
23 #include <srs_utest_amf0.hpp> 23 #include <srs_utest_amf0.hpp>
24 24
  25 +#include <srs_core_autofree.hpp>
  26 +
25 VOID TEST(AMF0Test, Size) 27 VOID TEST(AMF0Test, Size)
26 { 28 {
27 // size of elem 29 // size of elem
@@ -259,3 +261,24 @@ VOID TEST(AMF0Test, Size) @@ -259,3 +261,24 @@ VOID TEST(AMF0Test, Size)
259 EXPECT_EQ(size, SrsAmf0Size::array(&o)); 261 EXPECT_EQ(size, SrsAmf0Size::array(&o));
260 } 262 }
261 } 263 }
  264 +
  265 +VOID TEST(AMF0Test, AnyElem)
  266 +{
  267 + SrsAmf0Any* o = NULL;
  268 +
  269 + // string
  270 + if (true) {
  271 + o = SrsAmf0Any::str();
  272 + SrsAutoFree(SrsAmf0Any, o, false);
  273 + EXPECT_TRUE(NULL != o);
  274 + EXPECT_TRUE(o->is_string());
  275 + EXPECT_STREQ("", o->to_str().c_str());
  276 + }
  277 + if (true) {
  278 + o = SrsAmf0Any::str("winlin");
  279 + SrsAutoFree(SrsAmf0Any, o, false);
  280 + EXPECT_TRUE(NULL != o);
  281 + EXPECT_TRUE(o->is_string());
  282 + EXPECT_STREQ("winlin", o->to_str().c_str());
  283 + }
  284 +}