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");
        }
예제 #6
0
 private static void TryInvoke(PatientAlert alert, AlertMonitoringFunction func)
 {
     func?.Invoke(alert);
 }