Best Coyote code snippet using Microsoft.Coyote.Actors.Mocks.MockEventQueue.OnIgnoreEvent
MockEventQueue.cs
Source:MockEventQueue.cs  
...116                if (this.IsEventIgnored(this.RaisedEvent.e))117                {118                    // TODO: should the user be able to raise an ignored event?119                    // The raised event is ignored in the current state.120                    this.OnIgnoreEvent(this.RaisedEvent.e, this.RaisedEvent.eventGroup, this.RaisedEvent.info);121                    this.RaisedEvent = default;122                }123                else124                {125                    (Event e, EventGroup eventGroup, EventInfo info) raisedEvent = this.RaisedEvent;126                    this.RaisedEvent = default;127                    return (DequeueStatus.Raised, raisedEvent.e, raisedEvent.eventGroup, raisedEvent.info);128                }129            }130            // Make sure this happens before a potential dequeue.131            var hasDefaultHandler = this.IsDefaultHandlerAvailable();132            // Try to dequeue the next event, if there is one.133            var (e, eventGroup, info) = this.TryDequeueEvent();134            if (e != null)135            {136                // Found next event that can be dequeued.137                return (DequeueStatus.Success, e, eventGroup, info);138            }139            // No event can be dequeued, so check if there is a default event handler.140            if (!hasDefaultHandler)141            {142                // There is no default event handler installed, so do not return an event.143                this.IsEventHandlerRunning = false;144                return (DequeueStatus.NotAvailable, null, null, null);145            }146            // TODO: check op-id of default event.147            // A default event handler exists.148            string stateName = this.Owner is StateMachine stateMachine ?149                NameResolver.GetStateNameForLogging(stateMachine.CurrentState) : string.Empty;150            var eventOrigin = new EventOriginInfo(this.Owner.Id, this.Owner.GetType().FullName, stateName);151            return (DequeueStatus.Default, DefaultEvent.Instance, null, new EventInfo(DefaultEvent.Instance, eventOrigin));152        }153        /// <summary>154        /// Dequeues the next event and its metadata, if there is one available, else returns null.155        /// </summary>156        private (Event e, EventGroup eventGroup, EventInfo info) TryDequeueEvent(bool checkOnly = false)157        {158            // Try to dequeue the next event, if there is one.159            var node = this.Queue.First;160            while (node != null)161            {162                // Iterates through the events and metadata in the inbox.163                var nextNode = node.Next;164                var currentEvent = node.Value;165                if (this.IsEventIgnored(currentEvent.e))166                {167                    if (!checkOnly)168                    {169                        // Removes an ignored event.170                        this.Queue.Remove(node);171                        this.OnIgnoreEvent(currentEvent.e, currentEvent.eventGroup, currentEvent.info);172                    }173                    node = nextNode;174                    continue;175                }176                else if (this.IsEventDeferred(currentEvent.e))177                {178                    // Skips a deferred event.179                    this.OnDeferEvent(currentEvent.e, currentEvent.eventGroup, currentEvent.info);180                    node = nextNode;181                    continue;182                }183                if (!checkOnly)184                {185                    this.Queue.Remove(node);186                }187                return currentEvent;188            }189            return default;190        }191        /// <inheritdoc/>192        public void RaiseEvent(Event e, EventGroup eventGroup)193        {194            string stateName = this.Owner is StateMachine stateMachine ?195                NameResolver.GetStateNameForLogging(stateMachine.CurrentState) : string.Empty;196            var eventOrigin = new EventOriginInfo(this.Owner.Id, this.Owner.GetType().FullName, stateName);197            var info = new EventInfo(e, eventOrigin);198            this.RaisedEvent = (e, eventGroup, info);199            this.OnRaiseEvent(e, eventGroup, info);200        }201        /// <inheritdoc/>202        public Task<Event> ReceiveEventAsync(Type eventType, Func<Event, bool> predicate = null)203        {204            var eventWaitTypes = new Dictionary<Type, Func<Event, bool>>205            {206                { eventType, predicate }207            };208            return this.ReceiveEventAsync(eventWaitTypes);209        }210        /// <inheritdoc/>211        public Task<Event> ReceiveEventAsync(params Type[] eventTypes)212        {213            var eventWaitTypes = new Dictionary<Type, Func<Event, bool>>();214            foreach (var type in eventTypes)215            {216                eventWaitTypes.Add(type, null);217            }218            return this.ReceiveEventAsync(eventWaitTypes);219        }220        /// <inheritdoc/>221        public Task<Event> ReceiveEventAsync(params Tuple<Type, Func<Event, bool>>[] events)222        {223            var eventWaitTypes = new Dictionary<Type, Func<Event, bool>>();224            foreach (var e in events)225            {226                eventWaitTypes.Add(e.Item1, e.Item2);227            }228            return this.ReceiveEventAsync(eventWaitTypes);229        }230        /// <summary>231        /// Waits for an event to be enqueued.232        /// </summary>233        private Task<Event> ReceiveEventAsync(Dictionary<Type, Func<Event, bool>> eventWaitTypes)234        {235            this.OnReceiveInvoked();236            (Event e, EventGroup eventGroup, EventInfo info) receivedEvent = default;237            var node = this.Queue.First;238            while (node != null)239            {240                // Dequeue the first event that the caller waits to receive, if there is one in the queue.241                if (eventWaitTypes.TryGetValue(node.Value.e.GetType(), out Func<Event, bool> predicate) &&242                    (predicate is null || predicate(node.Value.e)))243                {244                    receivedEvent = node.Value;245                    this.Queue.Remove(node);246                    break;247                }248                node = node.Next;249            }250            if (receivedEvent == default)251            {252                this.ReceiveCompletionSource = new TaskCompletionSource<Event>();253                this.EventWaitTypes = eventWaitTypes;254                this.OnWaitEvent(this.EventWaitTypes.Keys);255                return this.ReceiveCompletionSource.Task;256            }257            this.OnReceiveEventWithoutWaiting(receivedEvent.e, receivedEvent.eventGroup, receivedEvent.info);258            return Task.FromResult(receivedEvent.e);259        }260        /// <summary>261        /// Checks if the specified event is currently ignored.262        /// </summary>263        [MethodImpl(MethodImplOptions.AggressiveInlining)]264        protected virtual bool IsEventIgnored(Event e) => this.Owner.IsEventIgnored(e);265        /// <summary>266        /// Checks if the specified event is currently deferred.267        /// </summary>268        [MethodImpl(MethodImplOptions.AggressiveInlining)]269        protected virtual bool IsEventDeferred(Event e) => this.Owner.IsEventDeferred(e);270        /// <summary>271        /// Checks if a default handler is currently available.272        /// </summary>273        [MethodImpl(MethodImplOptions.AggressiveInlining)]274        protected virtual bool IsDefaultHandlerAvailable()275        {276            bool result = this.Owner.IsDefaultHandlerInstalled();277            if (result)278            {279                this.Owner.Context.Scheduler.ScheduleNextOperation();280            }281            return result;282        }283        /// <summary>284        /// Notifies the actor that an event has been enqueued.285        /// </summary>286        [MethodImpl(MethodImplOptions.AggressiveInlining)]287        protected virtual void OnEnqueueEvent(Event e, EventGroup eventGroup, EventInfo eventInfo) =>288            this.Owner.OnEnqueueEvent(e, eventGroup, eventInfo);289        /// <summary>290        /// Notifies the actor that an event has been raised.291        /// </summary>292        [MethodImpl(MethodImplOptions.AggressiveInlining)]293        protected virtual void OnRaiseEvent(Event e, EventGroup eventGroup, EventInfo eventInfo) =>294            this.Owner.OnRaiseEvent(e, eventGroup, eventInfo);295        /// <summary>296        /// Notifies the actor that it is waiting to receive an event of one of the specified types.297        /// </summary>298        [MethodImpl(MethodImplOptions.AggressiveInlining)]299        protected virtual void OnWaitEvent(IEnumerable<Type> eventTypes) => this.Owner.OnWaitEvent(eventTypes);300        /// <summary>301        /// Notifies the actor that an event it was waiting to receive has been enqueued.302        /// </summary>303        [MethodImpl(MethodImplOptions.AggressiveInlining)]304        protected virtual void OnReceiveEvent(Event e, EventGroup eventGroup, EventInfo eventInfo) =>305            this.Owner.OnReceiveEvent(e, eventGroup, eventInfo);306        /// <summary>307        /// Notifies the actor that an event it was waiting to receive was already in the308        /// event queue when the actor invoked the receive statement.309        /// </summary>310        [MethodImpl(MethodImplOptions.AggressiveInlining)]311        protected virtual void OnReceiveEventWithoutWaiting(Event e, EventGroup eventGroup, EventInfo eventInfo) =>312            this.Owner.OnReceiveEventWithoutWaiting(e, eventGroup, eventInfo);313        /// <summary>314        /// Notifies the actor that <see cref="ReceiveEventAsync(Type[])"/> or one of its overloaded methods was invoked.315        /// </summary>316        [MethodImpl(MethodImplOptions.AggressiveInlining)]317        protected virtual void OnReceiveInvoked() => this.Owner.OnReceiveInvoked();318        /// <summary>319        /// Notifies the actor that an event has been ignored.320        /// </summary>321        [MethodImpl(MethodImplOptions.AggressiveInlining)]322        protected virtual void OnIgnoreEvent(Event e, EventGroup eventGroup, EventInfo eventInfo) => this.Owner.OnIgnoreEvent(e);323        /// <summary>324        /// Notifies the actor that an event has been deferred.325        /// </summary>326        [MethodImpl(MethodImplOptions.AggressiveInlining)]327        protected virtual void OnDeferEvent(Event e, EventGroup eventGroup, EventInfo eventInfo) => this.Owner.OnDeferEvent(e);328        /// <summary>329        /// Notifies the actor that an event has been dropped.330        /// </summary>331        [MethodImpl(MethodImplOptions.AggressiveInlining)]332        protected virtual void OnDropEvent(Event e, EventGroup eventGroup, EventInfo eventInfo) =>333            this.Owner.OnDropEvent(e, eventInfo);334        /// <summary>335        /// Checks if the assertion holds, and if not, throws an <see cref="AssertionFailureException"/> exception.336        /// </summary>...OnIgnoreEvent
Using AI Code Generation
1using System;2using System.Threading.Tasks;3using Microsoft.Coyote;4using Microsoft.Coyote.Actors;5using Microsoft.Coyote.Actors.Mocks;6using Microsoft.Coyote.Testing;7using Microsoft.Coyote.TestingServices;8using Microsoft.Coyote.TestingServices.Runtime;9{10    {11        static void Main(string[] args)12        {13            var configuration = Configuration.Create().WithTestingIterations(1000);14            var testEngine = TestingEngineFactory.CreateBugFindingEngine(configuration, null);15            testEngine.Run(async () =>16            {17                var runtime = testEngine.TestRuntime as ITestingRuntime;18                var actor = runtime.CreateActor(typeof(MyActor));19                runtime.SendEvent(actor, new MyEvent());OnIgnoreEvent
Using AI Code Generation
1using System;2using System.Threading.Tasks;3using Microsoft.Coyote;4using Microsoft.Coyote.Actors;5using Microsoft.Coyote.Actors.Mocks;6using Microsoft.Coyote.Specifications;7using Microsoft.Coyote.Tasks;8{9    [OnEventGotoState(typeof(UnitEvent), typeof(Init))]10    {11        [OnEntry(nameof(InitOnEntry))]12        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction))]13        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction2))]14        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction3))]15        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction4))]16        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction5))]17        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction6))]18        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction7))]19        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction8))]20        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction9))]21        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction10))]22        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction11))]23        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction12))]24        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction13))]25        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction14))]26        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction15))]27        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction16))]28        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction17))]29        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction18))]30        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction19))]31        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction20))]32        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction21))]33        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction22))]34        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction23))]35        [OnEventDoAction(typeof(UnitEvent), nameof(InitDoAction24))]OnIgnoreEvent
Using AI Code Generation
1using System;2using System.Threading.Tasks;3using Microsoft.Coyote.Actors;4using Microsoft.Coyote.Actors.Mocks;5using Microsoft.Coyote.Actors.Timers;6using Microsoft.Coyote.Specifications;7using Microsoft.Coyote.SystematicTesting;8using Microsoft.Coyote.Tasks;9using Microsoft.Coyote.Tests.Common;10using Microsoft.Coyote.Tests.Common.Actors;11using Microsoft.Coyote.Tests.Common.Runtime;12using Xunit;13using Xunit.Abstractions;14{15    {16        public MockEventQueueTests(ITestOutputHelper output)17            : base(output)18        {19        }20        {21        }22        {23        }24        {25        }26        {27        }28        {29        }30        {31        }32        {33        }34        {35        }36        {37        }38        {39        }40        {41        }42        {43        }44        {45        }46        {47        }48        {49        }50        {51        }52        {53        }54        {55        }56        {57        }58        {59        }60        {61        }62        {63        }64        {65        }66        {67        }68        {69        }70        {71            public MachineId Id;72            public Config(MachineId id)73            {74                this.Id = id;75            }76        }77        {78        }79        {80            private MachineId Id;81            [OnEntry(nameof(InitOnEntry))]OnIgnoreEvent
Using AI Code Generation
1using System;2using Microsoft.Coyote.Actors;3using Microsoft.Coyote.Actors.Mocks;4using Microsoft.Coyote.TestingServices;5using Microsoft.Coyote.TestingServices.Runtime;6using Microsoft.Coyote.TestingServices.SchedulingStrategies;7using Microsoft.Coyote.TestingServices.Threading;8using Microsoft.Coyote.TestingServices.Tracing.Schedule;9using Microsoft.Coyote.Tests.Common;10using Xunit;11using Xunit.Abstractions;12{13    {14        public OnIgnoreEventTests(ITestOutputHelper output)15            : base(output)16        {17        }18        [Fact(Timeout = 5000)]19        public void TestOnIgnoreEvent()20        {21            this.TestWithError(r =>22            {23                r.RegisterMonitor(typeof(M));24                r.CreateActor(typeof(A));25            },26            configuration: GetConfiguration().WithTestingIterations(10),27            replay: true);28        }29        {30            [OnEventDoAction(typeof(EventA), nameof(OnEventA))]31            {32            }33            private void OnEventA(Event e)34            {35                this.Assert(false, "Detected an assertion failure.");36            }37        }38        {39            protected override async Task OnInitializeAsync(Event initialEvent)40            {41                await this.SendEventAsync(this.Id, new EventA());42            }43        }44        {45        }46    }47}48using System;49using System.Collections.Generic;50using System.Linq;51using System.Threading.Tasks;52using Microsoft.Coyote.Actors;53using Microsoft.Coyote.Actors.Mocks;54using Microsoft.Coyote.TestingServices;55using Microsoft.Coyote.TestingServices.Runtime;56using Microsoft.Coyote.TestingServices.SchedulingStrategies;57using Microsoft.Coyote.TestingServices.Threading;58using Microsoft.Coyote.TestingServices.Tracing.Schedule;59using Microsoft.Coyote.Tests.Common;60using Xunit;61using Xunit.Abstractions;62{63    {OnIgnoreEvent
Using AI Code Generation
1using Microsoft.Coyote.Actors;2using Microsoft.Coyote.Actors.Mocks;3using Microsoft.Coyote.Specifications;4using System;5using System.Collections.Generic;6using System.Linq;7using System.Text;8using System.Threading.Tasks;9using System.Threading;10{11    {12        static void Main(string[] args)13        {14            var config = Configuration.Create();15            config.SchedulingIterations = 10;16            config.SchedulingSeed = 0;17            config.SchedulingStrategy = SchedulingStrategy.DFS;18            config.SchedulingMaxSteps = 10;19            config.EnableCycleDetection = true;20            config.EnableDataRaceDetection = true;21            config.EnableHotStateDetection = true;22            config.EnableLivelockDetection = true;23            config.EnableOperationCanceledException = true;24            config.EnablePCT = true;25            config.EnableRandomExecution = true;26            config.EnableTimerCancellation = true;27            config.EnableUnfairnessDetection = true;28            config.EnableVerbosity = true;29            config.EnableActorLogging = true;30            config.EnableStateGraph = true;31            config.EnableActivityCoverage = true;32            config.EnableBuggyTraceTesting = true;33            config.EnableFairScheduling = true;34            config.EnableFairSchedulingRandomization = true;35            config.EnableFairSchedulingRandomizationInterval = 1000;36            config.EnableFairSchedulingRandomizationProbability = 0.5;37            config.EnableActorMonitoring = true;38            config.EnableStateGraph = true;39            config.EnableActivityCoverage = true;40            config.EnableBuggyTraceTesting = true;41            config.EnableFairScheduling = true;42            config.EnableFairSchedulingRandomization = true;43            config.EnableFairSchedulingRandomizationInterval = 1000;44            config.EnableFairSchedulingRandomizationProbability = 0.5;45            var runtime = RuntimeFactory.Create(config);46            runtime.CreateActor(typeof(A));47            runtime.CreateActor(typeof(B));48            runtime.CreateActor(typeof(C));49            runtime.CreateActor(typeof(D));50            runtime.CreateActor(typeof(E));51            runtime.CreateActor(typeof(F));52            runtime.CreateActor(typeof(G));53            runtime.CreateActor(typeof(H));54            runtime.CreateActor(typeof(I));55            runtime.CreateActor(typeof(J));56            runtime.CreateActor(typeof(K));57            runtime.CreateActor(typeof(L));58            runtime.CreateActor(typeof(M));59            runtime.CreateActor(typeof(N));60            runtime.CreateActor(typeof(O));61            runtime.CreateActor(typeof(P));OnIgnoreEvent
Using AI Code Generation
1using System;2using Microsoft.Coyote;3using Microsoft.Coyote.Actors;4using Microsoft.Coyote.Actors.Mocks;5using Microsoft.Coyote.Specifications;6using Microsoft.Coyote.SystematicTesting;7using Microsoft.Coyote.Tasks;8{9    {10        public static void Main(string[] args)11        {12            var configuration = Configuration.Create().WithNumberOfIterations(1);13            var test = new SystematicTestingEngine(configuration);14            test.RegisterMonitor(typeof(Monitor));15            test.Run();16        }17    }18    {19        [OnEventDoAction(typeof(EOnIgnoreEvent
Using AI Code Generation
1{2    {3        public MockEventQueue(IActorRuntime runtime, Actor actor, Event initialEvent)4            : base(runtime, actor, initialEvent)5        {6        }7        public void OnIgnoreEvent(Event e)8        {9            this.OnIgnoreEvent(e, null);10        }11    }12}13{14    {15        public MockActor()16        {17            this.OnEvent<MockEvent>(this.HandleMockEvent);18        }19        private void HandleMockEvent(Event e)20        {21            this.Assert((e as MockEvent).Value == 10, "Value is not 10.");22            this.RaiseEvent(new Halt());23        }24    }25}26{27    {28        public int Value;29        public MockEvent(int value)30        {31            this.Value = value;32        }33    }34}35{36    {37        public MockRuntime()38            : base(new ActorRuntimeOptions())39        {40        }41        protected override EventQueue CreateEventQueue(IActorRuntime runtime, Actor actor, Event initialEvent)42        {43            return new MockEventQueue(runtime, actor, initialEvent);44        }45    }46}47{48    {49        public static void Main()50        {51            var runtime = new MockRuntime();52            runtime.CreateActor(typeof(MockActor));53            runtime.SendEvent(new MockEvent(10));54            runtime.Run();55        }56    }57}58{59    {60        public static void Main()61        {62            var runtime = new MockRuntime();63            runtime.CreateActor(typeof(MockActor));64            runtime.SendEvent(new MockEvent(10));65            runtime.Run();66        }67    }68}69{70    {OnIgnoreEvent
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.Coyote.Actors.Mocks;7using Microsoft.Coyote.Actors;8using Microsoft.Coyote.Specifications;9{10    {11        static void Main(string[] args)12        {13            var runtime = RuntimeFactory.Create();14            runtime.CreateActor(typeof(Actor1));15            runtime.CreateActor(typeof(Actor2));16            runtime.CreateActor(typeof(Actor3));17            runtime.CreateActor(typeof(Actor4));18            runtime.CreateActor(typeof(Actor5));19            runtime.CreateActor(typeof(Actor6));20            runtime.CreateActor(typeof(Actor7));21            runtime.CreateActor(typeof(Actor8));22            runtime.CreateActor(typeof(Actor9));23            runtime.CreateActor(typeof(Actor10));24            runtime.CreateActor(typeof(Actor11));25            runtime.CreateActor(typeof(Actor12));26            runtime.CreateActor(typeof(Actor13));27            runtime.CreateActor(typeof(Actor14));28            runtime.CreateActor(typeof(Actor15));29            runtime.CreateActor(typeof(Actor16));30            runtime.CreateActor(typeof(Actor17));31            runtime.CreateActor(typeof(Actor18));32            runtime.CreateActor(typeof(Actor19));33            runtime.CreateActor(typeof(Actor20));34            runtime.CreateActor(typeof(Actor21));35            runtime.CreateActor(typeof(Actor22));36            runtime.CreateActor(typeof(Actor23));37            runtime.CreateActor(typeof(Actor24));38            runtime.CreateActor(typeof(Actor25));39            runtime.CreateActor(typeof(Actor26));40            runtime.CreateActor(typeof(Actor27));41            runtime.CreateActor(typeof(Actor28));42            runtime.CreateActor(typeof(Actor29));43            runtime.CreateActor(typeof(Actor30));44            runtime.CreateActor(typeof(Actor31));45            runtime.CreateActor(typeof(Actor32));46            runtime.CreateActor(typeof(Actor33));47            runtime.CreateActor(typeof(Actor34));48            runtime.CreateActor(typeof(Actor35));49            runtime.CreateActor(typeof(Actor36));50            runtime.CreateActor(typeof(Actor37));51            runtime.CreateActor(typeof(Actor38));52            runtime.CreateActor(typeof(Actor39));53            runtime.CreateActor(typeof(Actor40));54            runtime.CreateActor(typeof(Actor41));55            runtime.CreateActor(typeof(Actor42));56            runtime.CreateActor(typeof(Actor43));57            runtime.CreateActor(typeof(Actor44));58            runtime.CreateActor(typeof(Actor45));59            runtime.CreateActor(typeof(Actor46));OnIgnoreEvent
Using AI Code Generation
1{2    public static void Main()3    {4        var config = Configuration.Create().WithTestingIterations(100);5        var runtime = TestingEngineFactory.Create(config, typeof(TestingEngine));6        var test = new Test1();7        runtime.RegisterMonitor(typeof(TestingEngine)OnIgnoreEvent
Using AI Code Generation
1using Microsoft.Coyote.Actors;2using Microsoft.Coyote.Actors.Mocks;3using System;4using System.Threading.Tasks;5{6    {7        protected override async Task OnInitializeAsync(Event initialEvent)8        {9            await this.SendEvent(this.Id, new E1());10            await this.SendEvent(this.Id, new E2());11            await this.SendEvent(this.Id, new E3());12            await this.SendEvent(this.Id, new E4());13            await this.SendEvent(this.Id, new E5());14            await this.SendEvent(this.Id, new E6());15        }16        protected override async Task OnEventAsync(Event e)17        {18            if (e is E1)19            {20                await this.SendEvent(this.Id, new E7());21                await this.SendEvent(this.Id, new E8());22                await this.SendEvent(this.Id, new E9());23                await this.SendEvent(this.Id, new E10());24                await this.SendEvent(this.Id, new E11());25                await this.SendEvent(this.Id, new E12());26            }27            else if (e is E2)28            {29                await this.SendEvent(this.Id, new E13());30                await this.SendEvent(this.Id, new E14());31                await this.SendEvent(this.Id, new E15());32                await this.SendEvent(this.Id, new E16());33                await this.SendEvent(this.Id, new E17());34                await this.SendEvent(this.Id, new E18());35            }36            else if (e is E3)37            {38                await this.SendEvent(this.Id, new E19());39                await this.SendEvent(this.Id, new E20());40                await this.SendEvent(this.Id, new E21());41                await this.SendEvent(this.Id, new E22());42                await this.SendEvent(this.Id, new E23());43                await this.SendEvent(this.Id, new E24());44            }45            else if (e is E4)46            {47                await this.SendEvent(this.Id, new E25());48                await this.SendEvent(thisLearn 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.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
