public void Should_disable_load_balancing_when_requested()
        {
            ApplicationInstance instance = new ApplicationInstance();

            instance.AvailableForLoadBalancing = false;

            MockRepository mocks = new MockRepository();
            IApplicationInstanceContext instanceContext = mocks.CreateMock <IApplicationInstanceContext>();
            IWebContext context = mocks.CreateMock <IWebContext>();
            ISecureAvailabilityStatusUpdater updater = mocks.CreateMock <ISecureAvailabilityStatusUpdater>();

            using (mocks.Record())
            {
                Expect.Call(instanceContext.GetCurrent()).Return(instance);
                Expect.Call(context.GetRequestItem(LoadBalanceStatusManager.ENABLED_PARAM)).Return("FALSE");
                Expect.Call(updater.SetStatus(false)).Return(string.Empty);
            }

            using (mocks.Playback())
            {
                ILoadBalanceStatusManager manager = new LoadBalanceStatusManager(instanceContext, context, updater);
                string errorMessage = manager.HandleLoadBalanceRequest();

                Assert.That(errorMessage, Is.Empty);
            }
        }
        public void Return_status_400_message_if_instance_should_be_offline_and_status_not_being_changed()
        {
            ApplicationInstance instance = new ApplicationInstance();

            instance.AvailableForLoadBalancing = false;

            MockRepository mocks = new MockRepository();
            IApplicationInstanceContext instanceContext = mocks.CreateMock <IApplicationInstanceContext>();
            IWebContext context = mocks.CreateMock <IWebContext>();

            using (mocks.Record())
            {
                Expect.Call(instanceContext.GetCurrent()).Return(instance);
                Expect.Call(context.GetRequestItem(LoadBalanceStatusManager.ENABLED_PARAM)).Return(null);
                context.SetHttpResponseStatus(400, "This application has been turned off");
            }

            using (mocks.Playback())
            {
                ILoadBalanceStatusManager manager = new LoadBalanceStatusManager(instanceContext, context, null);
                string errorMessage = manager.HandleLoadBalanceRequest();

                Assert.That(errorMessage, Is.Empty);
            }
        }