public BpmnSynchronizer(
     IBpmnEventHandler bpmnEventHandler,
     IProcessManager processManager,
     IContractManager contractManager,
     EditElementService editElementService,
     IJSRuntime jsRuntime)
 {
     _bpmnEventHandler   = bpmnEventHandler;
     _processManager     = processManager;
     _editElementService = editElementService;
     _contractManager    = contractManager;
     _jsRuntime          = jsRuntime;
 }
        public void AssignNewElement_ShouldNotify()
        {
            var editElementService = new EditElementService();
            var element            = new ScriptTask()
            {
                Id = "Script-1"
            };
            var mock = new Mock <IEditElementConsumer>();
            Expression <Action <IEditElementConsumer> > call =
                m => m.ConsumeEditElementAssigned(editElementService, It.Is <EditElementEventArgs>(editArgs => editArgs.processElement == element));

            mock.Setup(call).Verifiable();
            editElementService.EditElementAssigned += mock.Object.ConsumeEditElementAssigned;
            // ACT
            editElementService.EditElement = element;
            // ASSERT
            mock.Verify(call, Times.Once);
        }
        public void AssignNewElementAndChangeIt_ShouldNotify()
        {
            var editElementService = new EditElementService();
            var element            = new ScriptTask()
            {
                Id = "Script-1"
            };
            var mock = new Mock <IEditElementConsumer>();
            Expression <Action <IEditElementConsumer> > call = m => m.ConsumeEditElementChanged(editElementService, EventArgs.Empty);

            mock.Setup(call).Verifiable();
            editElementService.EditElementModified += mock.Object.ConsumeEditElementChanged;
            // ACT
            editElementService.EditElement = element;
            element.Name = "Hello";
            editElementService.EditedElementModified();
            // ASSERT
            mock.Verify(call, Times.Once);
        }