private void RunAssertionNewSchema() { string epl = EventRepresentationChoice.AVRO.GetAnnotationText() + " select 1 as myInt," + "{1L, 2L} as myLongArray," + this.GetType().FullName + ".MakeByteArray() as myByteArray, " + this.GetType().FullName + ".MakeMapStringString() as myMap " + "from SupportBean"; EPStatement statement = _epService.EPAdministrator.CreateEPL(epl); SupportUpdateListener listener = new SupportUpdateListener(); statement.AddListener(listener); _epService.EPRuntime.SendEvent(new SupportBean()); EventBean @event = listener.AssertOneGetNewAndReset(); string json = SupportAvroUtil.AvroToJson(@event); Console.WriteLine(json); Assert.AreEqual(1, @event.Get("myInt")); EPAssertionUtil.AssertEqualsExactOrder(new long[] { 1L, 2L }, @event.Get("myLongArray").UnwrapIntoArray <long>()); Assert.IsTrue(CompatExtensions.IsEqual(new byte[] { 1, 2, 3 }, ((byte[])@event.Get("myByteArray")))); Assert.AreEqual("[k1=v1]", CompatExtensions.Render(@event.Get("myMap").AsStringDictionary())); var designSchema = SchemaBuilder.Record("name", TypeBuilder.RequiredInt("myInt"), TypeBuilder.Field("myLongArray", TypeBuilder.Array(TypeBuilder.Union(TypeBuilder.Null(), TypeBuilder.Long()))), TypeBuilder.Field("myByteArray", TypeBuilder.Bytes()), TypeBuilder.Field("myMap", TypeBuilder.Map( TypeBuilder.String(TypeBuilder.Property(AvroConstant.PROP_STRING_KEY, AvroConstant.PROP_STRING_VALUE))))); var assembledSchema = ((AvroEventType)@event.EventType).SchemaAvro; var compareMsg = SupportAvroUtil.CompareSchemas(designSchema, assembledSchema); Assert.IsNull(compareMsg, compareMsg); statement.Dispose(); }
public void Run(RegressionEnvironment env) { var insertInto = typeof(EPLInsertIntoPopulateCreateStreamAvro).FullName; var epl = "@Name('s0') " + EventRepresentationChoice.AVRO.GetAnnotationText() + " select 1 as myInt," + "{1L, 2L} as myLongArray," + $"{insertInto}.MakeByteArray() as myByteArray, " + $"{insertInto}.MakeMapStringString() as myMap " + "from SupportBean"; env.CompileDeploy(epl).AddListener("s0"); env.SendEventBean(new SupportBean()); var @event = env.Listener("s0").AssertOneGetNewAndReset(); var json = SupportAvroUtil.AvroToJson(@event); Console.Out.WriteLine(json); Assert.AreEqual(1, @event.Get("myInt")); EPAssertionUtil.AssertEqualsExactOrder( new[] {1L, 2L}, @event.Get("myLongArray").UnwrapIntoArray<long>()); CollectionAssert.AreEqual(new byte[] {1, 2, 3}, (byte[]) @event.Get("myByteArray")); Assert.AreEqual("{\"k1\"=\"v1\"}", @event.Get("myMap").RenderAny()); var designSchema = SchemaBuilder.Record( "name", RequiredInt("myInt"), Field("myLongArray", Array(LongType())), Field("myByteArray", BytesType()), Field("myMap", Map(StringType(Property(AvroConstant.PROP_STRING_KEY, AvroConstant.PROP_STRING_VALUE))))); var assembledSchema = ((AvroEventType) @event.EventType).SchemaAvro; var compareMsg = SupportAvroUtil.CompareSchemas(designSchema, assembledSchema); Assert.IsNull(compareMsg, compareMsg); env.UndeployAll(); }
private void RunAssertionNewSchema(EPServiceProvider epService) { string epl = EventRepresentationChoice.AVRO.GetAnnotationText() + " select 1 as myInt," + "{1L, 2L} as myLongArray," + GetType().FullName + ".MakeByteArray() as myByteArray, " + GetType().FullName + ".MakeMapStringString() as myMap " + "from SupportBean"; EPStatement statement = epService.EPAdministrator.CreateEPL(epl); var listener = new SupportUpdateListener(); statement.Events += listener.Update; epService.EPRuntime.SendEvent(new SupportBean()); EventBean @event = listener.AssertOneGetNewAndReset(); string json = SupportAvroUtil.AvroToJson(@event); Assert.AreEqual(1, @event.Get("myInt")); EPAssertionUtil.AssertEqualsExactOrder(new long[] { 1L, 2L }, @event.Get("myLongArray").UnwrapIntoArray <long>()); Assert.IsTrue(Collections.AreEqual(new byte[] { 1, 2, 3 }, @event.Get("myByteArray").UnwrapIntoArray <byte>())); Assert.AreEqual("[k1=v1]", @event.Get("myMap").UnwrapStringDictionary().Render()); var designSchema = SchemaBuilder.Record( "name", RequiredInt("myInt"), Field("myLongArray", Array(Union(NullType(), LongType()))), Field("myByteArray", BytesType()), Field("myMap", Map(StringType(Property(AvroConstant.PROP_STRING_KEY, AvroConstant.PROP_STRING_VALUE)))) ); Schema assembledSchema = ((AvroEventType)@event.EventType).SchemaAvro; string compareMsg = SupportAvroUtil.CompareSchemas(designSchema, assembledSchema); Assert.IsNull(compareMsg, compareMsg); statement.Dispose(); }