public async Task AddWorkerTests(HttpStatusCode statusCode, string reasonPhrase, string expected, HttpRequestException expectedException) { var activityId = Guid.NewGuid().ToString(); var mockHttpMessageHandler = new MockHttpMessageHandler(statusCode, reasonPhrase); AppServiceSettings.SiteName = Environment.MachineName.ToLower(); AppServiceSettings.HostName = Environment.MachineName.ToLower() + ".azurewebsites.net"; AppServiceSettings.WorkerName = "127.0.0.1"; AppServiceSettings.HomeStampName = "waws-prod-home-stamp"; AppServiceSettings.CurrentStampName = "waws-prod-slave-stamp"; AppServiceSettings.RuntimeEncryptionKey = ScaleUtilsTests.GenerateEncryptionKey(); try { AppServiceScaleHandler.HttpMessageHandler = mockHttpMessageHandler; var handler = AppServiceScaleHandler.Instance; var stampNames = new[] { "waws-prod-slave-stamp" }; // test if (expectedException == null) { var actual = await handler.AddWorker(activityId, stampNames, 1); Assert.Equal(expected, actual); } else { var exception = await Assert.ThrowsAsync <HttpRequestException>(async() => await handler.AddWorker(activityId, stampNames, 1)); Assert.Contains(expectedException.Message, exception.Message); } Assert.Equal(activityId, mockHttpMessageHandler.ActivityId); Assert.Equal(AppServiceSettings.HostName, mockHttpMessageHandler.Host); if (!string.IsNullOrEmpty(expected) || expectedException != null) { Assert.Equal(AppServiceSettings.HomeStampName + ".cloudapp.net", mockHttpMessageHandler.Uri.Host); } else { Assert.Equal(AppServiceSettings.CurrentStampName + ".cloudapp.net", mockHttpMessageHandler.Uri.Host); } Assert.Equal("https", mockHttpMessageHandler.Uri.Scheme); Assert.Equal("/operations/addworker/" + AppServiceSettings.SiteName, mockHttpMessageHandler.Uri.AbsolutePath); } finally { ResetEnvironment(); } }
public async Task RemoveWorkerTests(HttpStatusCode statusCode, Exception expectedException) { var activityId = Guid.NewGuid().ToString(); var mockHttpMessageHandler = new MockHttpMessageHandler(statusCode); AppServiceSettings.SiteName = Environment.MachineName.ToLower(); AppServiceSettings.HostName = Environment.MachineName.ToLower() + ".azurewebsites.net"; AppServiceSettings.WorkerName = "127.0.0.1"; AppServiceSettings.HomeStampName = "waws-prod-home-stamp"; AppServiceSettings.CurrentStampName = "waws-prod-slave-stamp"; AppServiceSettings.RuntimeEncryptionKey = ScaleUtilsTests.GenerateEncryptionKey(); try { AppServiceScaleHandler.HttpMessageHandler = mockHttpMessageHandler; var handler = AppServiceScaleHandler.Instance; var worker = new AppServiceWorkerInfo { StampName = AppServiceSettings.CurrentStampName, WorkerName = AppServiceSettings.WorkerName }; // test if (expectedException == null) { await handler.RemoveWorker(activityId, worker); } else { var exception = await Assert.ThrowsAsync <HttpRequestException>(async() => await handler.RemoveWorker(activityId, worker)); Assert.Contains(expectedException.Message, exception.Message); } Assert.Equal(activityId, mockHttpMessageHandler.ActivityId); Assert.Equal(AppServiceSettings.HostName, mockHttpMessageHandler.Host); Assert.Equal(worker.StampName + ".cloudapp.net", mockHttpMessageHandler.Uri.Host); Assert.Equal("https", mockHttpMessageHandler.Uri.Scheme); Assert.Equal("/operations/removeworker/" + AppServiceSettings.SiteName + "/" + worker.WorkerName, mockHttpMessageHandler.Uri.AbsolutePath); } finally { ResetEnvironment(); } }