public void Options_CanUseInetUtilsWithoutReverseDnsOnIP() { // arrange var noSlowReverseDNSQuery = new Stopwatch(); noSlowReverseDNSQuery.Start(); var appSettings = new Dictionary <string, string> { { "eureka:instance:UseNetUtils", "true" }, { "spring:cloud:inet:SkipReverseDnsLookup", "true" } }; var config = new ConfigurationBuilder().AddInMemoryCollection(appSettings).Build(); var opts = new EurekaInstanceOptions() { NetUtils = new InetUtils(config.GetSection(InetOptions.PREFIX).Get <InetOptions>()) }; config.GetSection(EurekaInstanceOptions.EUREKA_INSTANCE_CONFIGURATION_PREFIX).Bind(opts); // act opts.ApplyNetUtils(); noSlowReverseDNSQuery.Stop(); // assert Assert.NotNull(opts.HostName); Assert.InRange(noSlowReverseDNSQuery.ElapsedMilliseconds, 0, 1500); // testing with an actual reverse dns query results in around 5000 ms }
public void Options_CanUseInetUtils() { // arrange var mockNetUtils = new Mock <InetUtils>(null, null); mockNetUtils.Setup(n => n.FindFirstNonLoopbackHostInfo()).Returns(new HostInfo() { Hostname = "FromMock", IpAddress = "254.254.254.254" }).Verifiable(); var appSettings = new Dictionary <string, string> { { "eureka:instance:UseNetUtils", "true" } }; var config = new ConfigurationBuilder().AddInMemoryCollection(appSettings).Build(); var opts = new EurekaInstanceOptions() { NetUtils = mockNetUtils.Object }; config.GetSection(EurekaInstanceOptions.EUREKA_INSTANCE_CONFIGURATION_PREFIX).Bind(opts); // act opts.ApplyNetUtils(); // assert Assert.Equal("FromMock", opts.HostName); Assert.Equal("254.254.254.254", opts.IpAddress); mockNetUtils.Verify(n => n.FindFirstNonLoopbackHostInfo(), Times.Once); }