public override void Run(EPServiceProvider epService) { foreach (var clazz in new Type[] { typeof(SupportBean_A), typeof(SupportBean_B), typeof(SupportBean_C) }) { epService.EPAdministrator.Configuration.AddEventType(clazz); } // all: unidirectional and full-outer-join RunAssertion2Stream(epService); RunAssertion3Stream(epService); RunAssertion3StreamMixed(epService); RunAssertion4StreamWhereClause(epService); // no-view-declared TryInvalid(epService, "select * from SupportBean_A unidirectional full outer join SupportBean_B#keepall unidirectional", "Error starting statement: The unidirectional keyword requires that no views are declared onto the stream (applies to stream 1)"); // not-all-unidirectional TryInvalid(epService, "select * from SupportBean_A unidirectional full outer join SupportBean_B unidirectional full outer join SupportBean_C#keepall", "Error starting statement: The unidirectional keyword must either apply to a single stream or all streams in a full outer join"); // no iterate SupportMessageAssertUtil.TryInvalidIterate(epService, "select * from SupportBean_A unidirectional full outer join SupportBean_B unidirectional", "Iteration over a unidirectional join is not supported"); }