public void ShouldRemoveWriterFromCorrectRoutingTable() { var defaultRoutingTable = new RoutingTable(null, new[] { server01 }, new[] { server02, server05 }, new[] { server03 }, 60); var fooRoutingTable = new RoutingTable("foo", new[] { server04, server06 }, new[] { server05 }, new[] { server06, server04 }, 80); var barRoutingTable = new RoutingTable("bar", new[] { server07 }, new[] { server08 }, new[] { server09, server05 }, 100); var manager = new RoutingTableManager(Mock.Of <IInitialServerAddressProvider>(), Mock.Of <IDiscovery>(), Mock.Of <IClusterConnectionPoolManager>(), Mock.Of <ILogger>(), TimeSpan.MaxValue, defaultRoutingTable, fooRoutingTable, barRoutingTable); manager.ForgetWriter(server06, "foo"); manager.RoutingTableFor("foo").Routers.Should().BeEquivalentTo(server04, server06); manager.RoutingTableFor("foo").Readers.Should().BeEquivalentTo(server05); manager.RoutingTableFor("foo").Writers.Should().BeEquivalentTo(server04); manager.RoutingTableFor("").Routers.Should().BeEquivalentTo(server01); manager.RoutingTableFor("").Readers.Should().BeEquivalentTo(server02, server05); manager.RoutingTableFor("").Writers.Should().BeEquivalentTo(server03); manager.RoutingTableFor("bar").Routers.Should().BeEquivalentTo(server07); manager.RoutingTableFor("bar").Readers.Should().BeEquivalentTo(server08); manager.RoutingTableFor("bar").Writers.Should().BeEquivalentTo(server09, server05); }