public async void DeregisterAsync_CallsServiceDeregister_RemovesHeartbeatFromScheduler() { var clientMoq = new Mock <IConsulClient>(); var agentMoq = new Mock <IAgentEndpoint>(); clientMoq.Setup(c => c.Agent).Returns(agentMoq.Object); var opts = new ConsulDiscoveryOptions(); var sch = new TtlScheduler(opts, clientMoq.Object); var reg = new ConsulServiceRegistry(clientMoq.Object, opts, sch); var builder = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary <string, string>() { { "spring:application:name", "foobar" } }); var config = builder.Build(); var registration = ConsulRegistration.CreateRegistration(config, opts); await reg.RegisterAsync(registration); agentMoq.Verify(a => a.ServiceRegister(registration.Service, default(CancellationToken)), Times.Once); Assert.Single(sch._serviceHeartbeats); Assert.Contains(registration.InstanceId, sch._serviceHeartbeats.Keys); await reg.DeregisterAsync(registration); agentMoq.Verify(a => a.ServiceDeregister(registration.Service.ID, default(CancellationToken)), Times.Once); Assert.Empty(sch._serviceHeartbeats); }
public void RegisterAsync_ThrowsOnNull() { var clientMoq = new Mock <IConsulClient>(); var agentMoq = new Mock <IAgentEndpoint>(); clientMoq.Setup(c => c.Agent).Returns(agentMoq.Object); var opts = new ConsulDiscoveryOptions(); var sch = new TtlScheduler(opts, clientMoq.Object); var reg = new ConsulServiceRegistry(clientMoq.Object, opts, sch); Assert.ThrowsAsync <ArgumentNullException>(() => reg.RegisterAsync(null)); }