Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TEST] Make Akka.TestKit asynchronous #5617

Closed
48 of 50 tasks
Arkatufus opened this issue Feb 8, 2022 · 0 comments
Closed
48 of 50 tasks

[TEST] Make Akka.TestKit asynchronous #5617

Arkatufus opened this issue Feb 8, 2022 · 0 comments
Assignees
Labels
akka-testkit Akka.NET Testkit issues
Milestone

Comments

@Arkatufus
Copy link
Contributor

Arkatufus commented Feb 8, 2022

This long term project is an attempt to convert Akka.TestKit into a fully async test kit

Base internal change

TestKit Methods

Need to convert TestKitBase test methods to use the new async internals.

AwaitAssert Test Methods

  • AwaitAssert() should be converted to sync over async and call AwaitAssertAsync()
  • AwaitAssertAsync() should use the new async internal
  • InternalAwaitCondition() should be converted to sync over async and call InternalAwaitConditionAsync()
  • InternalAwaitConditionAsync() should use the new async internal

AwaitConditions Test Methods

  • Change AwaitCondition() to sync over async that calls AwaitConditionAsync()
  • Change AwaitConditionNoThrow() to sync over async that calls AwaitConditionNoThrowAsync()
  • Change InternalAwaitCondition() to sync over async that calls InternalAwaitConditionAsync()

Receive Test Methods

  • Change FishForMessage() to sync over async that calls FishForMessageAsync()
  • Create FishForMessageAsync()
  • Change ReceiveOne() to sync over async that calls ReceiveOneAsync()
  • Create ReceiveOneAsync() method
  • Change TryReceiveOne() to sync over async that calls TryReceiveOneAsync()
  • Create TryReceiveOneAsync()
  • Convert InternalTryReceiveOne() to InternalTryReceiveOneAsync()
  • Change ReceiveWhile() to sync over async that calls ReceiveWhileAsync()
  • Create ReceiveWhileAsync()
  • Change ReceiveN() to sync over async that calls ReceiveNAsync()
  • Create ReceiveNAsync()
  • Convert InternalReceiveN() to InternalReceiveNAsync()

Expect methods

  • Change all ExpectMsg() methods to sync over async that calls their respective async methods
  • Create ExpectMsgAsync() methods
  • Change ExpectTerminated() to sync over async that calls ExpectTerminatedAsync()
  • Create ExpectTerminatedAsync() methods
  • Change all InternalExpectMsg() methods to sync over async that calls its respective InternalExpectMsgAsync()
  • Create InternalExpectMsgAsync() methods
  • Make InternalExpectMsgEnvelope() sync over async and calls InternalExpectMsgEnvelopeAsync()
  • Create InternalExpectMsgEnvelopeAsync() method
  • Change all ExpectNoMsg() methods to sync over async that calls their respective async methods
  • Create ExpectNoMsgAsync() methods
  • Convert InternalExpectNoMsg() to InternalExpectNoMsgAsync()
  • Change ExpectMsgAnyOf() to sync over async that calls ExpectMsgAnyOfAsync()
  • Create ExpectMsgAnyOfAsync()
  • Convert InternalExpectMsgAnyOf() to InternalExpectMsgAnyOfAsync()
  • Change ExpectMsgAllOf() to sync over async that calls ExpectMsgAllOfAsync()
  • Create ExpectMsgAllOfAsync()
  • Change InternalExpectMsgAllOf() to sync over async that calls InternalExpectMsgAllOfAsync()
  • Create InternalExpectMsgAllOfAsync()

ExpectMsgFrom Test Methods

Depends on Expect test methods

  • Change as ExpectMsgFrom to sync over async that calls their respective ExpectMsgFromAsync() methods
  • Create ExpectMsgFromAsync() methods

Within Test Methods

  • Change all Within() methods to sync over async that calls their respective WithinAsync() methods
  • Make sure that WithinAsync() respects timeout durations and barriers

EventFilterApplier methods

  • Make all methods support CancellationToken
  • Remove InternalExpect
  • ExpectOne and derivate should do sync over async by calling ExpectOneAsync
  • Expect and derivate should do sync over async by calling ExpectAsync
  • Mute and derivate should do sync over async by calling MuteAsync
  • Intercept should do sync over async by calling InterceptAsync
  • AwaitDone should do sync over async by calling AwaitDoneAsync

Barrier

  • Make sure that barrier works asynchronously
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
akka-testkit Akka.NET Testkit issues
Projects
No open projects
Development

No branches or pull requests

2 participants