public void cannot_add_a_null_resource_key() { var repo = new HandlerRepository(); Executing(() => repo.AddResourceHandler(null, TypeSystems.Default.FromClr(typeof(Frodo)))) .ShouldThrow <ArgumentNullException>(); }
public void ExecuteReturnType() { var handler = new HandlerRepository(); var patient = handler.Execute<MockDataHandler, Patient>(new { ID = 1, firstName = "name", lastName = "lastName" }); Assert.AreEqual(1, patient.PatientID); Assert.AreEqual("name", patient.FirstName); Assert.AreEqual("lastName", patient.LastName); }
public void AddHandler_GetHandlersByMessage() { var subject = new HandlerRepository(); subject.AddHandler(typeof(MessageFake), typeof(FakeHandler)); var handlers = subject.GetHandlersByMessage(typeof(MessageFake)); Assert.IsTrue(handlers.Count(x => x == typeof(FakeHandler)) == 1); }
public void canoot_add_the_same_handler_type_twice_to_the_same_key() { var type = TypeSystems.Default.FromClr(typeof(string)); var repo = new HandlerRepository(); repo.AddResourceHandler("ring of power", type); Executing(() => repo.AddResourceHandler("ring of power", type)) .ShouldThrow <ArgumentException>(); }
public void enumerating_over_the_list_of_handlers_will_only_return_distinct_handlers() { var gilGalad = TypeSystems.Default.FromClr(typeof(GilGalad)); var repo = new HandlerRepository(); repo.AddResourceHandler("Narya", gilGalad); repo.AddResourceHandler("Vilya", gilGalad); repo.GetHandlerTypes().ShouldContain(gilGalad).Count().ShouldBe(1); }
public void the_same_handler_can_be_registered_for_two_resources() { var gilGalad = TypeSystems.Default.FromClr(typeof(GilGalad)); var repo = new HandlerRepository(); repo.AddResourceHandler("Narya", gilGalad); repo.AddResourceHandler("Vilya", gilGalad); repo.GetHandlerTypesFor("Narya").FirstOrDefault().ShouldBe(gilGalad); repo.GetHandlerTypesFor("Vilya").FirstOrDefault().ShouldBe(gilGalad); }
public void the_first_handler_is_returned_when_two_handlers_are_registered_for_the_same_key() { var handler1 = TypeSystems.Default.FromClr(typeof(Sauron)); var handler2 = TypeSystems.Default.FromClr(typeof(Frodo)); var repo = new HandlerRepository(); repo.AddResourceHandler("ring of power", handler1); repo.AddResourceHandler("ring of power", handler2); repo.GetHandlerTypesFor("ring of power").FirstOrDefault().ShouldBe(handler1); }
public void two_handlers_can_be_registered_for_the_same_key() { var handler1 = TypeSystems.Default.FromClr(typeof(Sauron)); var handler2 = TypeSystems.Default.FromClr(typeof(Frodo)); var repo = new HandlerRepository(); repo.AddResourceHandler("ring of power", handler1); repo.AddResourceHandler("ring of power", handler2); repo.GetHandlerTypesFor("ring of power").ShouldBe(new[] { handler1, handler2 }); }
/// <summary> /// Messages the received. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The args.</param> protected virtual void MessageReceived(object sender, OutputGatewayEventHandlerArgs <TMessage, MessageHeader> args) { InvokeOnMessageReceived(); if (args.Header.CallContext != null && args.Header.CallContext.ContainsKey("DEBUG_MESSAGE")) { Logger.Warn(string.Format("Ha llegado el Mensaje:{0}", args.SerializedMessage)); Logger.Warn(string.Format("Tipo del Mensaje:{0}", args.Header.BodyType)); } Session currentSession = SessionFactory.Create(); if (args.Header.Type == MessageBusType.Reply) { CallerContext requester = args.Header.CallStack.Pop(); if (requester.Identification.Equals(Identification)) { currentSession = requester.Session; } else { Logger.Debug("Reply Message not mine"); return; } } var listTask = new List <Thread>(); //Buscar en los handlers para procesar el mensaje foreach (Type type in HandlerRepository.GetHandlersByMessage(args.Message.GetType())) { Type typeClosure = type; var th = new Thread(() => ExecuteHandler(args, typeClosure, currentSession)); th.Start(); listTask.Add(th); } foreach (var thread in listTask) { thread.Join(TimeSpan.FromMinutes(3)); } }
public void ExecuteNoReturnType() { var handler = new HandlerRepository(); handler.Execute<MockDataHandler>(new { ID = 1, firstName = "name", lastName = "lastName" }); }
public void ExecuteComplexObject() { var handler = new HandlerRepository(); handler.Execute<MockComplexDataHandler>(new { patient = new Patient { PatientID = 1, FirstName = "name", LastName = "lastName" } }); }
/// <summary> /// Gets the message types. /// </summary> /// <returns></returns> public IEnumerable <Type> GetMessageTypes() { return(HandlerRepository.GetMessageTypes()); }