public void DuplicateLinkNameDifferentRoleTest() { string name = "DuplicateLinkNameDifferentRoleTest"; this.linkProcessor = new TestLinkProcessor(); this.host.RegisterLinkProcessor(this.linkProcessor); string linkName = "same-link-for-different-role"; var connection = new Connection(Address); var session1 = new Session(connection); var sender = new SenderLink(session1, linkName, name); sender.Send(new Message("msg1"), SendTimeout); var session2 = new Session(connection); var receiver = new ReceiverLink(session2, linkName, name); receiver.SetCredit(2, false); var message = receiver.Receive(); Assert.IsTrue(message != null, "No message was received"); receiver.Accept(message); connection.Close(); }
public void ContainerHostTargetLinkEndpointTest() { string name = "ContainerHostTargetLinkEndpointTest"; List <Message> messages = new List <Message>(); this.linkProcessor = new TestLinkProcessor( link => new TargetLinkEndpoint(new TestMessageProcessor(50, messages), link)); this.host.RegisterLinkProcessor(this.linkProcessor); int count = 190; var connection = new Connection(Address); var session = new Session(connection); var sender = new SenderLink(session, "send-link", "any"); for (int i = 0; i < count; i++) { var message = new Message("msg" + i); message.Properties = new Properties() { GroupId = name }; sender.Send(message, SendTimeout); } sender.Close(); session.Close(); connection.Close(); Assert.AreEqual(count, messages.Count); }
public void ContainerHostLinkProcessorTest() { string name = "ContainerHostLinkProcessorTest"; this.host.RegisterLinkProcessor(this.linkProcessor = new TestLinkProcessor()); int count = 80; var connection = new Connection(Address); var session = new Session(connection); var sender = new SenderLink(session, "send-link", "any"); for (int i = 0; i < count; i++) { var message = new Message("msg" + i); message.Properties = new Properties() { GroupId = name }; sender.Send(message, SendTimeout); } sender.Close(); session.Close(); connection.Close(); }
public void TestCleanup() { if (this.linkProcessor != null) { this.host.UnregisterLinkProcessor(this.linkProcessor); this.linkProcessor = null; } }
/// <summary> /// Registers a link processor to handle received attach performatives. /// </summary> /// <param name="linkProcessor">The link processor to be registered.</param> public void RegisterLinkProcessor(ILinkProcessor linkProcessor) { if (this.linkProcessor != null) { throw new AmqpException(ErrorCode.NotAllowed, this.linkProcessor.GetType().Name + " already registered"); } this.linkProcessor = linkProcessor; }
/// <summary> /// Unregisters a link processor that was previously registered. /// </summary> /// <param name="linkProcessor">The link processor to unregister.</param> /// <remarks>If the linkProcessor was not registered or is different /// from the current registered one, an exception is thrown.</remarks> public void UnregisterLinkProcessor(ILinkProcessor linkProcessor) { if (this.linkProcessor != linkProcessor) { throw new AmqpException(ErrorCode.NotAllowed, "The provided linkProcessor was not registered"); } this.linkProcessor = null; }
public static Task <Session> OpenAndLinkEndpointAsync(LinkEndpoint endpoint) { ILinkProcessor fakeLinkProcessor = Substitute.For <ILinkProcessor>(); fakeLinkProcessor .When(instance => instance.Process(Arg.Any <AttachContext>())) .Do(call => call.Arg <AttachContext>().Complete(endpoint, 3)); return(OpenAndLinkProcessorAsync(fakeLinkProcessor)); }
public ActivityService(ICepRepository repository, IActivityProcessor processor, ILinkProcessor linkProcessor, IGraphProcessor graphProcessor) { _repository = repository; _activityProcessor = processor; _linkProcessor = linkProcessor; _graphProcessor = graphProcessor; }
public void ContainerHostSourceLinkEndpointTest() { string name = "ContainerHostSourceLinkEndpointTest"; int count = 100; Queue <Message> messages = new Queue <Message>(); for (int i = 0; i < count; i++) { messages.Enqueue(new Message("test") { Properties = new Properties() { MessageId = name + i } }); } var source = new TestMessageSource(messages); this.linkProcessor = new TestLinkProcessor(link => new SourceLinkEndpoint(source, link)); this.host.RegisterLinkProcessor(this.linkProcessor); var connection = new Connection(Address); var session = new Session(connection); var receiver = new ReceiverLink(session, "receiver0", name); int released = 0; int rejected = 0; for (int i = 1; i <= count; i++) { Message message = receiver.Receive(); if (i % 5 == 0) { receiver.Reject(message); rejected++; } else if (i % 17 == 0) { receiver.Release(message); released++; } else { receiver.Accept(message); } } receiver.Close(); session.Close(); connection.Close(); Thread.Sleep(200); Assert.AreEqual(released, messages.Count); Assert.AreEqual(rejected, source.DeadletterMessage.Count); }
public static async Task <Session> OpenAndLinkProcessorAsync(ILinkProcessor linkProcessor) { ContainerHost host = Open(); host.RegisterLinkProcessor(linkProcessor); Connection connection = await host.ConnectAsync(); var session = new Session(connection); session.AddClosedCallback((_, __) => host.Close()); return(session); }
public void ContainerHostProcessorOrderTest() { string name = "ContainerHostProcessorOrderTest"; List <Message> messages = new List <Message>(); this.host.RegisterMessageProcessor(name, new TestMessageProcessor(50, messages)); this.linkProcessor = new TestLinkProcessor(); this.host.RegisterLinkProcessor(this.linkProcessor); int count = 80; var connection = new Connection(Address); var session = new Session(connection); var sender = new SenderLink(session, "send-link", name); for (int i = 0; i < count; i++) { var message = new Message("msg" + i); message.Properties = new Properties() { GroupId = name }; sender.Send(message, SendTimeout); } sender.Close(); this.host.RegisterMessageSource(name, new TestMessageSource(new Queue <Message>(messages))); var receiver = new ReceiverLink(session, "recv-link", name); for (int i = 0; i < count; i++) { var message = receiver.Receive(); receiver.Accept(message); } receiver.Close(); sender = new SenderLink(session, "send-link", "any"); for (int i = 0; i < count; i++) { var message = new Message("msg" + i); message.Properties = new Properties() { GroupId = name }; sender.Send(message, SendTimeout); } sender.Close(); session.Close(); connection.Close(); }
public async Task IsAuthorized_ReturnsFalse_WhenSessionConnectionClosedBeforeAuthorized() { ListenerLink link = null; var authorized = false; ILinkProcessor fakeLinkProcessor = Substitute.For <ILinkProcessor>(); fakeLinkProcessor .When(instance => instance.Process(Arg.Any <AttachContext>())) .Do(c => { AttachContext attachContext = c.ArgAt <AttachContext>(0); link = attachContext.Link; attachContext.Complete(new Error(ErrorCode.IllegalState) { Description = "Test" }); }); ContainerHost host = TestAmqpHost.Open(); try { host.RegisterLinkProcessor(fakeLinkProcessor); Connection connection = await host.ConnectAndAttachAsync(); await connection.CloseAsync(); await Task.Delay(500); var securityContext = new SecurityContext(); securityContext.Authorize(link.Session.Connection); authorized = securityContext.IsAuthorized(link.Session.Connection); } finally { host.Close(); } authorized.ShouldBeFalse(); }
public void Initialize(string url, IEnumerable <AssetModel> assets, IEnumerable <string> blacklistedExtensions, bool usesRobotsTxt = true) { _defaultUri = UrlHelper.CreatUri(url); _masterDomain = UrlHelper.GetDomain(_defaultUri); _absolutePath = Regex.Match(_defaultUri.AbsoluteUri, RegexExpression.GET_BASE_URL).Value; _linkProcessor = new LinkProcessor(_robots, _processedList, _toProcessList, _masterDomain, _absolutePath); if (usesRobotsTxt) { _robots = _setupManager.ReadRobotsTxt(_absolutePath); } _htmlProcessor.AssetList = assets; _htmlProcessor.BlacklistedExtensions = blacklistedExtensions; if (_robots.IsPathAllowed(Crawler.USER_AGENT, _defaultUri.AbsolutePath)) { _toProcessList.Push(_defaultUri.AbsoluteUri); } IsInitialized = true; }
// processing objects /** * Adds a link to the current paragraph. * @since 5.0.6 */ public void ProcessLink() { if (currentParagraph == null) { currentParagraph = new Paragraph(); } // The link provider allows you to do additional processing ILinkProcessor i = null; if (providers.ContainsKey(LINK_PROVIDER)) { i = (ILinkProcessor)providers[LINK_PROVIDER]; } if (i == null || !i.Process(currentParagraph, chain)) { // sets an Anchor for all the Chunks in the current paragraph String href = chain[HtmlTags.HREF]; if (href != null) { foreach (Chunk ck in currentParagraph.Chunks) { ck.SetAnchor(href); } } } // a link should be added to the current paragraph as a phrase if (stack.Count == 0) { // no paragraph to add too, 'a' tag is first element Paragraph tmp = new Paragraph(new Phrase(currentParagraph)); currentParagraph = tmp; } else { Paragraph tmp = (Paragraph)stack.Pop(); tmp.Add(new Phrase(currentParagraph)); currentParagraph = tmp; } }
public void ContainerHostPlainPrincipalTest() { string name = "ContainerHostPlainPrincipalTest"; ListenerLink link = null; var linkProcessor = new TestLinkProcessor(); linkProcessor.OnLinkAttached += a => link = a; this.host.RegisterLinkProcessor(this.linkProcessor = linkProcessor); var connection = new Connection(Address); var session = new Session(connection); var sender = new SenderLink(session, name, name); sender.Send(new Message("msg1"), SendTimeout); connection.Close(); Assert.IsTrue(link != null, "link is null"); var listenerConnection = (ListenerConnection)link.Session.Connection; Assert.IsTrue(listenerConnection.Principal != null, "principal is null"); Assert.IsTrue(listenerConnection.Principal.Identity.AuthenticationType == "PLAIN", "wrong auth type"); }
public async Task IsAuthorized_ReturnsTrue_WhenSameConnectionAuthorizedTwice() { var authorized = false; var links = new List <ListenerLink>(); ILinkProcessor fakeLinkProcessor = Substitute.For <ILinkProcessor>(); fakeLinkProcessor .When(instance => instance.Process(Arg.Any <AttachContext>())) .Do(c => { AttachContext attachContext = c.ArgAt <AttachContext>(0); links.Add(attachContext.Link); attachContext.Complete(new Error(ErrorCode.IllegalState) { Description = "Test" }); }); ContainerHost host = TestAmqpHost.Open(); try { host.RegisterLinkProcessor(fakeLinkProcessor); Connection connection = await host.ConnectAndAttachAsync(2); var securityContext = new SecurityContext(); securityContext.Authorize(links[0].Session.Connection); securityContext.Authorize(links[1].Session.Connection); authorized = securityContext.IsAuthorized(links[1].Session.Connection); await connection.CloseAsync(); } finally { host.Close(); } authorized.ShouldBeTrue(); }
public void ContainerHostSaslAnonymousTest() { string name = "ContainerHostSaslAnonymousTest"; ListenerLink link = null; var linkProcessor = new TestLinkProcessor(); linkProcessor.OnLinkAttached += a => link = a; this.host.RegisterLinkProcessor(this.linkProcessor = linkProcessor); var factory = new ConnectionFactory(); factory.SASL.Profile = SaslProfile.Anonymous; var connection = factory.CreateAsync(new Address(Address.Host, Address.Port, null, null, "/", Address.Scheme)).Result; var session = new Session(connection); var sender = new SenderLink(session, name, name); sender.Send(new Message("msg1"), SendTimeout); connection.Close(); Assert.IsTrue(link != null, "link is null"); var listenerConnection = (ListenerConnection)link.Session.Connection; Assert.IsTrue(listenerConnection.Principal == null, "principal should be null"); }
public void ContainerHostTargetLinkEndpointTest() { string name = "ContainerHostTargetLinkEndpointTest"; List<Message> messages = new List<Message>(); this.linkProcessor = new TestLinkProcessor( link => new TargetLinkEndpoint(new TestMessageProcessor(50, messages), link)); this.host.RegisterLinkProcessor(this.linkProcessor); int count = 190; var connection = new Connection(Address); var session = new Session(connection); var sender = new SenderLink(session, "send-link", "any"); for (int i = 0; i < count; i++) { var message = new Message("msg" + i); message.Properties = new Properties() { GroupId = name }; sender.Send(message, SendTimeout); } sender.Close(); session.Close(); connection.Close(); Assert.AreEqual(count, messages.Count); }
public LinkController(ILinkProcessor linkProcessor) => processor = linkProcessor;
public BaseController(IMediator mediator, ILinkProcessor processor) { _mediator = mediator; _processor = processor; }
public static IEnumerable <LinkModel> CreateLinksForCountries(PageData pageData, SortingArguments sortArgs, FilterArguments filter, string path, ILinkProcessor processor) { var links = new List <LinkModel>(); if (pageData.HasPrevPage) { links.Add(new LinkModel { Href = processor.ProcessLinksForCollection(new ResourceParameters { PageArgs = new PageArguments { PageIndex = pageData.PageIndex, PageSize = pageData.PageSize }, SortArgs = sortArgs, FilterArgs = filter, Path = path, LinkType = LinkType.Previous }), Method = "GET", Rel = "prev_page" }); } if (pageData.HasNextPage) { links.Add(new LinkModel { Href = processor.ProcessLinksForCollection(new ResourceParameters { PageArgs = new PageArguments { PageIndex = pageData.PageIndex, PageSize = pageData.PageSize }, SortArgs = sortArgs, FilterArgs = filter, Path = path, LinkType = LinkType.Next }), Method = "GET", Rel = "prev_page" }); } links.Add(new LinkModel { Href = processor.ProcessLinksForCollection(new ResourceParameters { PageArgs = new PageArguments { PageIndex = pageData.PageIndex, PageSize = pageData.PageSize }, SortArgs = sortArgs, FilterArgs = filter, Path = path, LinkType = LinkType.Current }), Method = "GET", Rel = "self" }); return(links); }
public CountriesController(IMediator mediator, ILinkProcessor processor) : base(mediator, processor) { }
public void ContainerHostProcessorOrderTest() { string name = "ContainerHostProcessorOrderTest"; List<Message> messages = new List<Message>(); this.host.RegisterMessageProcessor(name, new TestMessageProcessor(50, messages)); this.linkProcessor = new TestLinkProcessor(); this.host.RegisterLinkProcessor(this.linkProcessor); int count = 80; var connection = new Connection(Address); var session = new Session(connection); var sender = new SenderLink(session, "send-link", name); for (int i = 0; i < count; i++) { var message = new Message("msg" + i); message.Properties = new Properties() { GroupId = name }; sender.Send(message, SendTimeout); } sender.Close(); this.host.RegisterMessageSource(name, new TestMessageSource(new Queue<Message>(messages))); var receiver = new ReceiverLink(session, "recv-link", name); for (int i = 0; i < count; i++) { var message = receiver.Receive(); receiver.Accept(message); } receiver.Close(); sender = new SenderLink(session, "send-link", "any"); for (int i = 0; i < count; i++) { var message = new Message("msg" + i); message.Properties = new Properties() { GroupId = name }; sender.Send(message, SendTimeout); } sender.Close(); session.Close(); connection.Close(); }
public RegionsController(IMediator mediator, ILinkProcessor processor) : base(mediator, processor) { }
public void MyTestCleanup() { this.linkProcessor = null; this.ClassCleanup(); }
public LanguagesController(IMediator mediator, ILinkProcessor processor) : base(mediator, processor) { }
public void ContainerHostSourceLinkEndpointTest() { string name = "ContainerHostSourceLinkEndpointTest"; int count = 100; Queue<Message> messages = new Queue<Message>(); for (int i = 0; i < count; i++) { messages.Enqueue(new Message("test") { Properties = new Properties() { MessageId = name + i } }); } var source = new TestMessageSource(messages); this.linkProcessor = new TestLinkProcessor(link => new SourceLinkEndpoint(source, link)); this.host.RegisterLinkProcessor(this.linkProcessor); var connection = new Connection(Address); var session = new Session(connection); var receiver = new ReceiverLink(session, "receiver0", name); int released = 0; int rejected = 0; for (int i = 1; i <= count; i++) { Message message = receiver.Receive(); if (i % 5 == 0) { receiver.Reject(message); rejected++; } else if (i % 17 == 0) { receiver.Release(message); released++; } else { receiver.Accept(message); } } receiver.Close(); session.Close(); connection.Close(); Thread.Sleep(200); Assert.AreEqual(released, messages.Count); Assert.AreEqual(rejected, source.DeadletterMessage.Count); }
public void RegisterLinkProcessor(ILinkProcessor linkProcessor) { containerHost.RegisterLinkProcessor(linkProcessor); }