예제 #1
0
        public void Respond()
        {
            Responder responder = GetTestResponder();
            Response  response  = responder.Respond(new Request("say_hello"));

            Assert.AreEqual("hello", response.Result.ToString());

            System.IO.Stream stream = typeof(ResponderTest).Assembly.GetManifestResourceStream(
                "Node.Net.Test.JsonRPC.Responder.Test.Data.json");
            IDictionary test_data = new Node.Net.Reader().Read <IDictionary>(stream);

            Assert.NotNull(test_data, nameof(test_data));

            foreach (string key in test_data.Keys)
            {
                /*
                 * if (key.Contains("set_properties_request"))
                 * {
                 *  int x = 0;
                 * }*/
                if (key.Contains("_request"))
                {
                    try
                    {
                        string request_data  = (test_data[key] as IDictionary)?.ToJson();
                        string response_text = responder.Respond(request_data);
                        if (test_data.Contains(key.Replace("_request", "_response")))
                        {
                            string response_json = (test_data[key.Replace("_request", "_response")] as IDictionary)?.ToJson();
                            Assert.AreEqual(response_json, response_text, key);
                        }
                    }
                    catch (System.Exception e)
                    {
                        throw new System.InvalidOperationException(key, e);
                    }
                }
            }
        }