public void GetSystemState_ParameterError() { var result = new object[3] { -1, "caller_id must be a string", new object[3] {new object[0], new object[0], new object[0]} }; MXmlRpcClientProtocol.AllInstances.UrlSetString = (t1, t2) => { }; MMasterProxy.AllInstances.BeginGetSystemStateStringAsyncCallbackObject = (t1, t2, t3, t4) => { t3(null); return null; }; MMasterProxy.AllInstances.EndGetSystemStateIAsyncResult = (t1, t2) => result; var client = new MasterClient(new Uri("http://localhost")); var ex = AssertEx.Throws<AggregateException>(() => client.GetSystemStateAsync(null).Wait()); ex.InnerException.Message.Is("caller_id must be a string"); }
public void GetSystemState_Success() { var result = new object[3] { 1, "current system state", new object[3][][]{ new object[3][]{ new object[2]{ "/chatter", new string[1]{ "/rosjava_tutorial_pubsub/talker" } }, new object[2]{ "/rosout", new string[2]{ "/rosjava_tutorial_pubsub/listener", "/rosjava_tutorial_pubsub/talker" } }, new object[2]{ "/rosout_agg", new string[1]{ "/rosout" } } }, new object[2][]{ new object[2]{ "/chatter", new string[1]{ "/rosjava_tutorial_pubsub/listener" } }, new object[2]{ "/rosout", new string[1]{ "/rosout" } } }, new object[2][]{ new object[2]{ "/rosout/set_logger_level", new string[1]{ "/rosout" } }, new object[2]{ "/rosout/get_loggers", new string[1]{ "/rosout" } } } } }; MXmlRpcClientProtocol.AllInstances.UrlSetString = (t1, t2) => { }; MMasterProxy.AllInstances.BeginGetSystemStateStringAsyncCallbackObject = (t1, t2, t3, t4) => { t3(null); return null; }; MMasterProxy.AllInstances.EndGetSystemStateIAsyncResult = (t1, t2) => result; var client = new MasterClient(new Uri("http://localhost")); var ret = client.GetSystemStateAsync("/test").Result; ret.Publishers.Count.Is(3); ret.Subscribers.Count.Is(2); ret.Services.Count.Is(2); }