Skip to content

Instantly share code, notes, and snippets.

@tomliversidge
Created April 2, 2017 17:16
Show Gist options
  • Save tomliversidge/75853c24d0509f225d776d4b1a84318b to your computer and use it in GitHub Desktop.
Save tomliversidge/75853c24d0509f225d776d4b1a84318b to your computer and use it in GitHub Desktop.
Removing a routee test
[Fact]
public async void RoundRobinGroupRouter_RouteesCanBeRemoved()
{
var routee1 = Actor.Spawn(MyActorProps);
var routee2 = Actor.Spawn(MyActorProps);
var routee3 = Actor.Spawn(MyActorProps);
var routerProps = Router.NewRoundRobinGroup(Actor.FromProducer(() => new MyTestActor())
.WithMailbox(() => new TestMailbox()), routee1, routee2, routee3)
.WithMailbox(() => new TestMailbox());
var router = Actor.Spawn(routerProps);
router.Tell("0");
router.Tell("1");
router.Tell("2");
Assert.Equal("0", await routee1.RequestAsync<string>("received?", TimeSpan.FromMilliseconds(250)));
Assert.Equal("1", await routee2.RequestAsync<string>("received?", TimeSpan.FromMilliseconds(250)));
Assert.Equal("2", await routee3.RequestAsync<string>("received?", TimeSpan.FromMilliseconds(250)));
router.Tell(new RouterRemoveRoutee { PID = routee1 });
router.Tell("3");
router.Tell("4");
Assert.Equal("3", await routee2.RequestAsync<string>("received?", TimeSpan.FromMilliseconds(250)));
Assert.Equal("4", await routee3.RequestAsync<string>("received?", TimeSpan.FromMilliseconds(250)));
router.Tell("5");
Assert.Equal("5", await routee2.RequestAsync<string>("received?", TimeSpan.FromMilliseconds(250)));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment