@@ -304,3 +304,56 @@ TEST(hub_connection_tests, send_message_complex_type_return)
304304
305305 ASSERT_EQ (test.serialize (), U (" {\" Address\" :{\" Street\" :\" main st\" ,\" Zip\" :\" 98052\" },\" Age\" :15,\" Name\" :\" test\" }" ));
306306}
307+
308+ TEST (hub_connection_tests, progress_report)
309+ {
310+ auto hub_conn = std::make_shared<signalr::hub_connection>(url);
311+ std::vector<int > vec;
312+
313+ auto hub_proxy = hub_conn->create_hub_proxy (U (" hubConnection" ));
314+
315+ hub_conn->start ().then ([&hub_proxy, &vec]()
316+ {
317+ return hub_proxy.invoke <web::json::value>(U (" invokeWithProgress" ), [&vec](const web::json::value& arguments)
318+ {
319+ vec.push_back (arguments.as_integer ());
320+ });
321+
322+ }).get ();
323+
324+ ASSERT_EQ (vec.size (), 5 );
325+
326+ for (size_t i = 0 ; i < vec.size (); i++)
327+ {
328+ ASSERT_EQ (vec[i], i);
329+ }
330+ }
331+
332+ TEST (hub_connection_tests, progress_report_with_return)
333+ {
334+ auto hub_conn = std::make_shared<signalr::hub_connection>(url);
335+ std::vector<int > vec;
336+
337+ auto hub_proxy = hub_conn->create_hub_proxy (U (" hubConnection" ));
338+
339+ auto test = hub_conn->start ().then ([&hub_proxy, &vec]()
340+ {
341+ web::json::value obj{};
342+ obj[0 ] = web::json::value (U (" test" ));
343+
344+ return hub_proxy.invoke <web::json::value>(U (" invokeWithProgress" ), obj, [&vec](const web::json::value& arguments)
345+ {
346+ vec.push_back (arguments.as_integer ());
347+ });
348+
349+ }).get ();
350+
351+ ASSERT_EQ (test.serialize (), U (" \" test done!\" " ));
352+
353+ ASSERT_EQ (vec.size (), 5 );
354+
355+ for (size_t i = 0 ; i < vec.size (); i++)
356+ {
357+ ASSERT_EQ (vec[i], i);
358+ }
359+ }
0 commit comments