예제 #1
0
        private void RunAssertion(
            EPServiceProvider epService, string typename, FunctionSendEvent send, Object @event)
        {
            string      epl       = "select * from " + typename;
            EPStatement statement = epService.EPAdministrator.CreateEPL(epl);
            var         listener  = new SupportUpdateListener();

            statement.Events += listener.Update;

            send.Invoke(epService, @event);

            EventBean eventBean = listener.AssertOneGetNewAndReset();

            JSONEventRenderer jsonEventRenderer = epService.EPRuntime.EventRenderer.GetJSONRenderer(statement.EventType);
            string            json = jsonEventRenderer.Render(eventBean).RegexReplaceAll("(\\s|\\n|\\t)", "");

            Assert.AreEqual("{\"MyInt\":1,\"MyString\":\"abc\",\"Nested\":{\"MyInsideInt\":10}}", json);

            XMLEventRenderer xmlEventRenderer = epService.EPRuntime.EventRenderer.GetXMLRenderer(statement.EventType);
            string           xml = xmlEventRenderer.Render("root", eventBean).RegexReplaceAll("(\\s|\\n|\\t)", "");

            Assert.AreEqual("<?xmlversion=\"1.0\"encoding=\"UTF-8\"?><root><MyInt>1</MyInt><MyString>abc</MyString><Nested><MyInsideInt>10</MyInsideInt></Nested></root>", xml);

            statement.Dispose();
        }
예제 #2
0
 public void Render(EventBean theEvent, StringWriter writer)
 {
     string result;
     if (format == LogSinkOutputFormat.json)
     {
         JSONEventRenderer renderer = jsonRendererCache.Get(theEvent.EventType);
         if (renderer == null)
         {
             renderer = GetJsonRenderer(theEvent.EventType);
             jsonRendererCache.Put(theEvent.EventType, renderer);
         }
         result = renderer.Render(theEvent.EventType.Name, theEvent);
     }
     else
     {
         XMLEventRenderer renderer = xmlRendererCache.Get(theEvent.EventType);
         if (renderer == null)
         {
             renderer = GetXmlRenderer(theEvent.EventType);
             xmlRendererCache.Put(theEvent.EventType, renderer);
         }
         result = renderer.Render(theEvent.EventType.Name, theEvent);
     }
     writer.Write(result);
 }