public void Subscribe(string id, AlertMonitoringFunction function) { mutex.WaitOne(); if (!alertMonitoringList.ContainsKey(id)) { alertMonitoringList.Add(id, new AlertMonitoringFunction(function)); } mutex.ReleaseMutex(); }
public void Given_Invalid_Arguments_When_TryGetValue_Invoked_Then_Invalid_Result_Asserted() { Callbacks callbacks = new Callbacks(); AlertMonitoringFunction func = new AlertMonitoringFunction(callbacks.CallbackFunc); alertMonitorList.Subscribe("id", func); Assert.IsNull(alertMonitorList.TryGetValue("id2")); alertMonitorList.Unsubscribe("id"); }
public void Given_Valid_Arguments_When_Unsubscribe_Invoked_Then_Valid_Result_Asserted() { Callbacks callbacks = new Callbacks(); AlertMonitoringFunction func = new AlertMonitoringFunction(callbacks.CallbackFunc); alertMonitorList.Subscribe("id", func); Assert.IsFalse(alertMonitorList.IsEmpty()); alertMonitorList.Unsubscribe("id"); Assert.IsTrue(alertMonitorList.IsEmpty()); }
public void Given_Valid_Arguments_When_Multiple_Instance_Invoked_Then_Valid_Result_Asserted() { Callbacks callbacks = new Callbacks(); AlertMonitoringFunction func = new AlertMonitoringFunction(callbacks.CallbackFunc); alertMonitorList.Subscribe("id", func); SharedResources.AlertMonitorList.AlertMonitorList list = SharedResources.AlertMonitorList.AlertMonitorList.Instance; Assert.IsFalse(list.IsEmpty()); alertMonitorList.Unsubscribe("id"); Assert.IsTrue(list.IsEmpty()); }
public void Given_Valid_Arguments_When_Subscribe_Invoked_Then_Valid_Result_Asserted() { Callbacks callbacks = new Callbacks(); AlertMonitoringFunction func = new AlertMonitoringFunction(callbacks.CallbackFunc); alertMonitorList.Subscribe("id", func); SharedResources.AlertMonitorList.AlertMonitorList list = SharedResources.AlertMonitorList.AlertMonitorList.Instance; AlertMonitoringFunction output; output = list.TryGetValue("id"); PatientAlert alert = new PatientAlert(); output?.Invoke(alert); Assert.AreEqual("TestPassed", alert.PatientId); alertMonitorList.Unsubscribe("id"); }
private static void TryInvoke(PatientAlert alert, AlertMonitoringFunction func) { func?.Invoke(alert); }