public void TearDown() { if (InstrumentationHelper.ENABLED) { InstrumentationHelper.EndTest(); } _dataFlowRuntime = null; _epService = null; _listener = null; }
public void SetUp() { _epService = EPServiceProviderManager.GetDefaultProvider(SupportConfigFactory.GetConfiguration()); _epService.Initialize(); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.StartTest(_epService, GetType(), GetType().FullName); } _dataFlowRuntime = _epService.EPRuntime.DataFlowRuntime; _listener = new SupportUpdateListener(); }
public void TestCreateStartStop() { String epl = "@Name('Create-A-Flow') create dataflow MyGraph Emitter -> outstream<?> {}"; EPStatement stmt = _epService.EPAdministrator.CreateEPL(epl); EPDataFlowRuntime dfruntime = _epService.EPRuntime.DataFlowRuntime; EPAssertionUtil.AssertEqualsAnyOrder(new String[] { "MyGraph" }, dfruntime.GetDataFlows()); EPDataFlowDescriptor desc = dfruntime.GetDataFlow("MyGraph"); Assert.AreEqual("MyGraph", desc.DataFlowName); Assert.AreEqual(EPStatementState.STARTED, desc.StatementState); Assert.AreEqual("Create-A-Flow", desc.StatementName); dfruntime.Instantiate("MyGraph"); // test duplicate TryInvalidCompile(epl, "Error starting statement: Data flow by name 'MyGraph' has already been declared ["); // stop - can no longer instantiate but still exists stmt.Stop(); // not removed Assert.AreEqual(EPStatementState.STOPPED, dfruntime.GetDataFlow("MyGraph").StatementState); TryInvalidCompile(epl, "Error starting statement: Data flow by name 'MyGraph' has already been declared ["); TryInstantiate("MyGraph", "Data flow by name 'MyGraph' is currently in STOPPED statement state"); TryInstantiate("DUMMY", "Data flow by name 'DUMMY' has not been defined"); // destroy - should be gone stmt.Dispose(); // removed, create again Assert.AreEqual(null, dfruntime.GetDataFlow("MyGraph")); Assert.AreEqual(0, dfruntime.GetDataFlows().Length); TryInstantiate("MyGraph", "Data flow by name 'MyGraph' has not been defined"); try { stmt.Start(); Assert.Fail(); } catch (IllegalStateException ex) { Assert.AreEqual("Cannot start statement, statement is in destroyed state", ex.Message); } // new one, try start-stop-start stmt = _epService.EPAdministrator.CreateEPL(epl); stmt.Stop(); stmt.Start(); dfruntime.Instantiate("MyGraph"); }
public override void Run(EPServiceProvider epService) { EPDataFlowRuntime dataFlowRuntime = epService.EPRuntime.DataFlowRuntime; Assert.AreEqual(0, dataFlowRuntime.SavedConfigurations.Length); Assert.IsNull(dataFlowRuntime.GetSavedConfiguration("MyFirstFlow")); Assert.IsFalse(dataFlowRuntime.RemoveSavedConfiguration("MyFirstFlow")); try { dataFlowRuntime.InstantiateSavedConfiguration("MyFirstFlow"); Assert.Fail(); } catch (EPDataFlowInstantiationException ex) { Assert.AreEqual("Dataflow saved configuration 'MyFirstFlow' could not be found", ex.Message); } try { dataFlowRuntime.SaveConfiguration("MyFirstFlow", "MyDataflow", null); Assert.Fail(); } catch (EPDataFlowNotFoundException ex) { Assert.AreEqual("Failed to locate data flow 'MyDataflow'", ex.Message); } // finally create one epService.EPAdministrator.CreateEPL("create objectarray schema MyEvent ()"); epService.EPAdministrator.CreateEPL("create dataflow MyDataflow " + "BeaconSource -> outdata<MyEvent> {" + " iterations:1" + "}" + "EventBusSink(outdata) {}"); // add it dataFlowRuntime.SaveConfiguration("MyFirstFlow", "MyDataflow", null); Assert.AreEqual(1, dataFlowRuntime.SavedConfigurations.Length); EPDataFlowSavedConfiguration savedConfiguration = dataFlowRuntime.GetSavedConfiguration(dataFlowRuntime.SavedConfigurations[0]); Assert.AreEqual("MyFirstFlow", savedConfiguration.SavedConfigurationName); Assert.AreEqual("MyDataflow", savedConfiguration.DataflowName); try { dataFlowRuntime.SaveConfiguration("MyFirstFlow", "MyDataflow", null); Assert.Fail(); } catch (EPDataFlowAlreadyExistsException ex) { Assert.AreEqual("Data flow saved configuration by name 'MyFirstFlow' already exists", ex.Message); } // remove it Assert.IsTrue(dataFlowRuntime.RemoveSavedConfiguration("MyFirstFlow")); Assert.IsFalse(dataFlowRuntime.RemoveSavedConfiguration("MyFirstFlow")); Assert.AreEqual(0, dataFlowRuntime.SavedConfigurations.Length); Assert.IsNull(dataFlowRuntime.GetSavedConfiguration("MyFirstFlow")); // add once more to instantiate dataFlowRuntime.SaveConfiguration("MyFirstFlow", "MyDataflow", null); EPDataFlowInstance instance = dataFlowRuntime.InstantiateSavedConfiguration("MyFirstFlow"); var listener = new SupportUpdateListener(); epService.EPAdministrator.CreateEPL("select * from MyEvent").Events += listener.Update; instance.Run(); Assert.IsTrue(listener.GetAndClearIsInvoked()); EPAssertionUtil.AssertEqualsExactOrder(new string[] { "MyFirstFlow" }, dataFlowRuntime.SavedConfigurations); Assert.IsNotNull(dataFlowRuntime.GetSavedConfiguration("MyFirstFlow")); // add/remove instance dataFlowRuntime.SaveInstance("F1", instance); EPAssertionUtil.AssertEqualsExactOrder(new string[] { "F1" }, dataFlowRuntime.SavedInstances); EPDataFlowInstance instanceFromSvc = dataFlowRuntime.GetSavedInstance("F1"); Assert.AreEqual("MyDataflow", instanceFromSvc.DataFlowName); try { dataFlowRuntime.SaveInstance("F1", instance); Assert.Fail(); } catch (EPDataFlowAlreadyExistsException ex) { // expected Assert.AreEqual("Data flow instance name 'F1' already saved", ex.Message); } Assert.IsTrue(dataFlowRuntime.RemoveSavedInstance("F1")); Assert.IsFalse(dataFlowRuntime.RemoveSavedInstance("F1")); }