public async void RegisterAsync_SendsValidPOSTData() { IHostingEnvironment envir = new HostingEnvironment(); TestConfigServerStartup.Response = ""; TestConfigServerStartup.ReturnStatus = 204; var builder = new WebHostBuilder().UseStartup <TestConfigServerStartup>().UseEnvironment(envir.EnvironmentName); var server = new TestServer(builder); var uri = "http://localhost:8888/"; server.BaseAddress = new Uri(uri); EurekaInstanceConfig config = new EurekaInstanceConfig() { AppName = "foobar" }; InstanceInfo info = InstanceInfo.FromInstanceConfig(config); var cconfig = new EurekaClientConfig() { EurekaServerServiceUrls = uri }; var client = new EurekaHttpClient(cconfig, server.CreateClient()); EurekaHttpResponse resp = await client.RegisterAsync(info); Assert.NotNull(TestConfigServerStartup.LastRequest); Assert.Equal("POST", TestConfigServerStartup.LastRequest.Method); Assert.Equal("localhost:8888", TestConfigServerStartup.LastRequest.Host.Value); Assert.Equal("/apps/FOOBAR", TestConfigServerStartup.LastRequest.Path.Value); // Check JSON payload JsonInstanceInfoRoot recvJson = JsonInstanceInfoRoot.Deserialize(TestConfigServerStartup.RequestBody); Assert.NotNull(recvJson); Assert.NotNull(recvJson.Instance); // Compare a few random values JsonInstanceInfo sentJsonObj = info.ToJsonInstance(); Assert.Equal(sentJsonObj.Actiontype, recvJson.Instance.Actiontype); Assert.Equal(sentJsonObj.AppName, recvJson.Instance.AppName); Assert.Equal(sentJsonObj.HostName, recvJson.Instance.HostName); }
public void Deserialize_GoodJson() { var json = @" { ""instance"": { ""instanceId"":""DESKTOP-GNQ5SUT"", ""app"":""FOOBAR"", ""appGroupName"":null, ""ipAddr"":""192.168.0.147"", ""sid"":""na"", ""port"":{""@enabled"":true,""$"":80}, ""securePort"":{""@enabled"":false,""$"":443}, ""homePageUrl"":""http://*****:*****@class"":""com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo"",""name"":""MyOwn""}, ""hostName"":""DESKTOP-GNQ5SUT"", ""status"":""UP"", ""overriddenstatus"":""UNKNOWN"", ""leaseInfo"":{""renewalIntervalInSecs"":30,""durationInSecs"":90,""registrationTimestamp"":0,""lastRenewalTimestamp"":0,""renewalTimestamp"":0,""evictionTimestamp"":0,""serviceUpTimestamp"":0}, ""isCoordinatingDiscoveryServer"":false, ""metadata"":{""@class"":""java.util.Collections$EmptyMap"",""metadata"":null}, ""lastUpdatedTimestamp"":1458116137663, ""lastDirtyTimestamp"":1458116137663, ""actionType"":""ADDED"", ""asgName"":null } }"; var stream = TestHelpers.StringToStream(json); var result = JsonInstanceInfoRoot.Deserialize(stream); Assert.NotNull(result); Assert.NotNull(result.Instance); // Random check some values Assert.Equal(ActionType.ADDED, result.Instance.Actiontype); Assert.Equal("http://DESKTOP-GNQ5SUT:80/healthcheck", result.Instance.HealthCheckUrl); Assert.Equal("FOOBAR", result.Instance.AppName); }
public void Deserialize_GoodJson() { var json = @"{ 'instance': { 'instanceId':'DESKTOP-GNQ5SUT', 'app':'FOOBAR', 'appGroupName':null, 'ipAddr':'192.168.0.147', 'sid':'na', 'port':{'@enabled':true,'$':80}, 'securePort':{'@enabled':false,'$':443}, 'homePageUrl':'http://*****:*****@class':'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo','name':'MyOwn'}, 'hostName':'DESKTOP-GNQ5SUT', 'status':'UP', 'overriddenstatus':'UNKNOWN', 'leaseInfo':{'renewalIntervalInSecs':30,'durationInSecs':90,'registrationTimestamp':0,'lastRenewalTimestamp':0,'renewalTimestamp':0,'evictionTimestamp':0,'serviceUpTimestamp':0}, 'isCoordinatingDiscoveryServer':false, 'metadata':{'@class':'java.util.Collections$EmptyMap','metadata':null}, 'lastUpdatedTimestamp':1458116137663, 'lastDirtyTimestamp':1458116137663, 'actionType':'ADDED', 'asgName':null } }"; Stream stream = TestHelpers.StringToStream(json); var result = JsonInstanceInfoRoot.Deserialize(stream); Assert.NotNull(result); Assert.NotNull(result.Instance); // Random check some values Assert.Equal(ActionType.ADDED, result.Instance.Actiontype); Assert.Equal("http://DESKTOP-GNQ5SUT:80/healthcheck", result.Instance.HealthCheckUrl); Assert.Equal("FOOBAR", result.Instance.AppName); }