How to use EventHandlerSubscription method of Atata.EventBus class

Best Atata code snippet using Atata.EventBus.EventHandlerSubscription

EventBus.cs

Source:EventBus.cs Github

copy

Full Screen

...9 /// </summary>10 public class EventBus : IEventBus11 {12 private readonly AtataContext _context;13 private readonly ConcurrentDictionary<Type, List<EventHandlerSubscription>> _subscriptionMap = new ConcurrentDictionary<Type, List<EventHandlerSubscription>>();14 /// <summary>15 /// Initializes a new instance of the <see cref="EventBus"/> class.16 /// </summary>17 /// <param name="context">The context.</param>18 public EventBus(AtataContext context)19 : this(context, null)20 {21 }22 internal EventBus(AtataContext context, IEnumerable<EventSubscriptionItem> eventSubscriptions)23 {24 _context = context.CheckNotNull(nameof(context));25 if (eventSubscriptions != null)26 foreach (var subscription in eventSubscriptions)27 Subscribe(subscription.EventType, subscription.EventHandler);28 }29 /// <inheritdoc/>30 public void Publish<TEvent>(TEvent eventData)31 {32 eventData.CheckNotNull(nameof(eventData));33 if (_subscriptionMap.TryGetValue(typeof(TEvent), out var eventHandlerSubscriptions))34 {35 object[] eventHandlersArray;36 lock (eventHandlerSubscriptions)37 {38 eventHandlersArray = eventHandlerSubscriptions.Select(x => x.EventHandler).ToArray();39 }40 foreach (IEventHandler<TEvent> handler in eventHandlersArray)41 {42 if (!(handler is IConditionalEventHandler<TEvent> conditionalEventHandler)43 || conditionalEventHandler.CanHandle(eventData, _context))44 {45 handler.Handle(eventData, _context);46 }47 }48 }49 }50 /// <inheritdoc/>51 public object Subscribe<TEvent>(Action eventHandler)52 {53 eventHandler.CheckNotNull(nameof(eventHandler));54 return Subscribe(new ActionEventHandler<TEvent>(eventHandler));55 }56 /// <inheritdoc/>57 public object Subscribe<TEvent>(Action<TEvent> eventHandler)58 {59 eventHandler.CheckNotNull(nameof(eventHandler));60 return Subscribe(new ActionEventHandler<TEvent>(eventHandler));61 }62 /// <inheritdoc/>63 public object Subscribe<TEvent>(Action<TEvent, AtataContext> eventHandler)64 {65 eventHandler.CheckNotNull(nameof(eventHandler));66 return Subscribe(new ActionEventHandler<TEvent>(eventHandler));67 }68 /// <inheritdoc/>69 public object Subscribe<TEvent, TEventHandler>()70 where TEventHandler : class, IEventHandler<TEvent>, new()71 =>72 Subscribe(new TEventHandler());73 /// <inheritdoc/>74 public object Subscribe<TEvent>(IEventHandler<TEvent> eventHandler) =>75 Subscribe(typeof(TEvent), eventHandler);76 private static List<EventHandlerSubscription> CreateEventHandlerSubscriptionList(Type eventType) =>77 new List<EventHandlerSubscription>();78 private object Subscribe(Type eventType, object eventHandler)79 {80 eventHandler.CheckNotNull(nameof(eventHandler));81 object subscription = new object();82 var eventHandlerSubscriptions = _subscriptionMap.GetOrAdd(eventType, CreateEventHandlerSubscriptionList);83 lock (eventHandlerSubscriptions)84 {85 eventHandlerSubscriptions.Add(new EventHandlerSubscription(subscription, eventHandler));86 }87 return subscription;88 }89 /// <inheritdoc/>90 public void Unsubscribe(object subscription)91 {92 subscription.CheckNotNull(nameof(subscription));93 foreach (var eventHandlerSubscriptions in _subscriptionMap.Values)94 {95 lock (eventHandlerSubscriptions)96 {97 if (eventHandlerSubscriptions.RemoveAll(x => x.SubscriptionObject == subscription) > 0)98 return;99 }100 }101 }102 /// <inheritdoc/>103 public void UnsubscribeHandler(object eventHandler)104 {105 eventHandler.CheckNotNull(nameof(eventHandler));106 foreach (var eventHandlerSubscriptions in _subscriptionMap.Values)107 {108 lock (eventHandlerSubscriptions)109 {110 eventHandlerSubscriptions.RemoveAll(x => Equals(x.EventHandler, eventHandler));111 }112 }113 }114 /// <inheritdoc/>115 public void UnsubscribeAll<TEvent>() =>116 UnsubscribeAll(typeof(TEvent));117 /// <inheritdoc/>118 public void UnsubscribeAll(Type eventType)119 {120 eventType.CheckNotNull(nameof(eventType));121 if (_subscriptionMap.TryGetValue(eventType, out var eventHandlerSubscriptions))122 {123 lock (eventHandlerSubscriptions)124 {125 eventHandlerSubscriptions.Clear();126 }127 }128 }129 private sealed class EventHandlerSubscription130 {131 public EventHandlerSubscription(object subscriptionObject, object eventHandler)132 {133 SubscriptionObject = subscriptionObject;134 EventHandler = eventHandler;135 }136 public object SubscriptionObject { get; }137 public object EventHandler { get; }138 }139 }140}...

Full Screen

Full Screen

EventHandlerSubscription

Using AI Code Generation

copy

Full Screen

1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Atata;7using NUnit.Framework;8{9 {10 public void _5()11 {12 var subscription = Atata.EventBus.Subscribe<PageObjectComponentLogEntry>(logEntry =>13 {14 if (logEntry.Component is IPageObjectComponent)15 {16 Console.WriteLine($"[{logEntry.Level}] {logEntry.ComponentName} ({logEntry.Component.GetType().Name}): {logEntry.Message}");17 }18 });19 Go.To<HomePage>()20 .SignIn.ClickAndGo()21 .Email.Set("

Full Screen

Full Screen

EventHandlerSubscription

Using AI Code Generation

copy

Full Screen

1using Atata;2{3 using _ = Page5;4 {5 public H1<_> Heading { get; private set; }6 public ButtonDelegate<_> GoToPage6 { get; private set; }7 protected override void OnOpen()8 {9 Go.To<Page5>();10 }11 protected override void OnAssertPageObject()12 {13 Assert.That(Heading.Displayed);14 }15 public void GoToPage6AndWait()16 {17 GoToPage6.ClickAndGo<Page6>();18 }19 }20}21using Atata;22{23 using _ = Page6;24 {25 public H1<_> Heading { get; private set; }26 protected override void OnOpen()27 {28 Go.To<Page6>();29 }30 protected override void OnAssertPageObject()31 {32 Assert.That(Heading.Displayed);33 }34 }35}36using Atata;37{38 using _ = Page7;39 {40 public H1<_> Heading { get; private set; }41 public ButtonDelegate<_> GoToPage8 { get; private set; }42 protected override void OnOpen()43 {44 Go.To<Page7>();45 }46 protected override void OnAssertPageObject()47 {48 Assert.That(Heading.Displayed);49 }50 public void GoToPage8AndWait()51 {52 GoToPage8.ClickAndGo<Page8>();53 }54 }55}56using Atata;57{58 using _ = Page8;59 {60 public H1<_> Heading { get; private set; }61 protected override void OnOpen()62 {63 Go.To<Page8>();64 }65 protected override void OnAssertPageObject()66 {67 Assert.That(Heading.Displayed);68 }69 }70}

Full Screen

Full Screen

EventHandlerSubscription

Using AI Code Generation

copy

Full Screen

1using Atata;2using NUnit.Framework;3using System;4using System.Collections.Generic;5using System.Linq;6using System.Text;7using System.Threading.Tasks;8{9 {10 public void _5()11 {12 Build();13 Subscribe<UIComponentLogEvent>(x => Console.WriteLine(x.Message));14 Subscribe<UIComponentLogEvent>(x =>15 {16 if (x.Level == LogLevel.Error)17 {18 Console.WriteLine($"Error: {x.Message}");19 }20 });21 Header.Should.Contain("Welcome to Atata Sample App");22 }23 }24}25using Atata;26using NUnit.Framework;27using System;28using System.Collections.Generic;29using System.Linq;30using System.Text;31using System.Threading.Tasks;32{33 {34 public void _6()35 {36 Build();

Full Screen

Full Screen

EventHandlerSubscription

Using AI Code Generation

copy

Full Screen

1Atata.EventBus.Subscribe<LogEvent>(e => Console.WriteLine(e.Message));2Atata.EventBus.Unsubscribe<LogEvent>(e => Console.WriteLine(e.Message));3Atata.EventBus.Subscribe<LogEvent>(e => Console.WriteLine(e.Message));4Atata.EventBus.Unsubscribe<LogEvent>(e => Console.WriteLine(e.Message));5Atata.EventBus.Subscribe<LogEvent>(e => Console.WriteLine(e.Message));6Atata.EventBus.Unsubscribe<LogEvent>(e => Console.WriteLine(e.Message));7Atata.EventBus.Subscribe<LogEvent>(e => Console.WriteLine(e.Message));8Atata.EventBus.Unsubscribe<LogEvent>(e => Console.WriteLine(e.Message));9Atata.EventBus.Subscribe<LogEvent>(e => Console.WriteLine(e.Message));10Atata.EventBus.Unsubscribe<LogEvent>(e => Console.WriteLine(e.Message));11Atata.EventBus.Subscribe<LogEvent>(e => Console.WriteLine(e.Message));12Atata.EventBus.Unsubscribe<LogEvent>(e => Console.WriteLine(e.Message));13Atata.EventBus.Subscribe<LogEvent>(e => Console.WriteLine(e.Message));

Full Screen

Full Screen

EventHandlerSubscription

Using AI Code Generation

copy

Full Screen

1Atata.EventBus.Subscribe<MyEvent>(e => Console.WriteLine(e.Message));2Atata.EventBus.Raise(new MyEvent { Message = "Hello World!" });3Atata.EventBus.Subscribe<MyEvent>(e => Console.WriteLine(e.Message));4Atata.EventBus.Unsubscribe<MyEvent>();5Atata.EventBus.Raise(new MyEvent { Message = "Hello World!" });6Atata.EventBus.Subscribe<MyEvent>(e => Console.WriteLine(e.Message));7Atata.EventBus.Unsubscribe<MyEvent>();8Atata.EventBus.Raise(new MyEvent { Message = "Hello World!" });9Atata.EventBus.Subscribe<MyEvent>(e => Console.WriteLine(e.Message));10Atata.EventBus.Unsubscribe<MyEvent>();11Atata.EventBus.Raise(new MyEvent { Message = "Hello World!" });12Atata.EventBus.Subscribe<MyEvent>(e => Console.WriteLine(e.Message));13Atata.EventBus.Raise(new MyEvent { Message = "Hello World!" });

Full Screen

Full Screen

EventHandlerSubscription

Using AI Code Generation

copy

Full Screen

1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Atata;7{8 {9 static void Main(string[] args)10 {11 AtataContext.Configure()12 .UseChrome()13 .UseCulture("en-US")14 .AddNUnitTestContextLogging()15 .AddNUnitTestAttachmentLogging()16 .UseAllNUnitFeatures()17 .LogNUnitError()18 .Build();19 Go.To<GooglePage>()20 .SearchFor("Atata")21 .SubscribeTo<WindowClosedEvent>(HandleWindowClosedEvent)22 .SubscribeTo<WindowClosedEvent>(HandleWindowClosedEvent, TimeSpan.FromSeconds(5))23 .SubscribeTo<WindowClosedEvent>(HandleWindowClosedEvent, TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(2));24 AtataContext.Current.CleanUp();25 }26 private static void HandleWindowClosedEvent(WindowClosedEvent e)27 {28 Console.WriteLine($"WindowClosedEvent handled with handler {nameof(HandleWindowClosedEvent)}.");29 }30 }31}32using System;33using System.Collections.Generic;34using System.Linq;35using System.Text;36using System.Threading.Tasks;37using Atata;38{39 {40 static void Main(string[] args)41 {42 AtataContext.Configure()43 .UseChrome()44 .UseCulture("en-US")45 .AddNUnitTestContextLogging()46 .AddNUnitTestAttachmentLogging()47 .UseAllNUnitFeatures()48 .LogNUnitError()49 .Build();

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Atata automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful