// Path: spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/sample/EurekaSampleApplication.java
// @Configuration(proxyBeanMethods = false)
// @ComponentScan
// @EnableAutoConfiguration
// @RestController
// public class EurekaSampleApplication implements ApplicationContextAware, Closeable {
// 
// 	@Autowired
// 	private DiscoveryClient discoveryClient;
// 
// 	@Autowired
// 	private ServiceRegistry<EurekaRegistration> serviceRegistry;
// 
// 	@Autowired
// 	private InetUtils inetUtils;
// 
// 	@Autowired
// 	private EurekaClientConfigBean clientConfig;
// 
// 	private ApplicationContext context;
// 
// 	private EurekaRegistration registration;
// 
// 	@Bean
// 	public HealthCheckHandler healthCheckHandler() {
// 		return currentStatus -> InstanceInfo.InstanceStatus.UP;
// 	}
// 
// 	@RequestMapping("/")
// 	public String home() {
// 		return "Hello world " + registration.getUri();
// 	}
// 
// 	@Override
// 	public void setApplicationContext(ApplicationContext context) throws BeansException {
// 		this.context = context;
// 	}
// 
// 	@RequestMapping(path = "/register", method = POST)
// 	public String register() {
// 		EurekaInstanceConfigBean config = new EurekaInstanceConfigBean(inetUtils);
// 		String appname = "customapp";
// 		config.setIpAddress("127.0.0.1");
// 		config.setHostname("localhost");
// 		config.setAppname(appname);
// 		config.setVirtualHostName(appname);
// 		config.setSecureVirtualHostName(appname);
// 		config.setNonSecurePort(4444);
// 		config.setInstanceId("127.0.0.1:customapp:4444");
// 
// 		this.registration = EurekaRegistration.builder(config).with(this.clientConfig, this.context).build();
// 
// 		this.serviceRegistry.register(this.registration);
// 		return config.getInstanceId();
// 	}
// 
// 	@RequestMapping(path = "/deregister", method = POST)
// 	public String deregister() {
// 		this.serviceRegistry.deregister(this.registration);
// 		return "deregister";
// 	}
// 
// 	@Override
// 	public void close() throws IOException {
// 		deregister();
// 	}
// 
// }


import org.apache.catalina.webresources.TomcatURLStreamHandlerFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.cloud.netflix.eureka.sample.EurekaSampleApplication;
import org.springframework.cloud.test.ClassPathExclusions;
import org.springframework.cloud.test.ModifiedClassPathRunner;
import org.springframework.context.ConfigurableApplicationContext;
import static org.assertj.core.api.AssertionsForClassTypes.fail;
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
/*
 * Copyright 2017-2022 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.cloud.netflix.eureka.config;




/**
 * @author Daniel Lavoie
 */
@RunWith(ModifiedClassPathRunner.class)
@ClassPathExclusions({ "jersey-client-*", "jersey-core-*", "jersey-apache-client4-*", "spring-webflux-*" })
@SpringBootTest(classes = EurekaSampleApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT)
public class EurekaHttpClientsOptionalArgsConfigurationNoWebfluxTest {

	@Test
	@SuppressWarnings("unchecked")
	public void contextFailsWithoutWebClient() {

		ConfigurableApplicationContext ctx = null;
		try {
			TomcatURLStreamHandlerFactory.disable();
// Path: spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/sample/EurekaSampleApplication.java
// @Configuration(proxyBeanMethods = false)
// @ComponentScan
// @EnableAutoConfiguration
// @RestController
// public class EurekaSampleApplication implements ApplicationContextAware, Closeable {
// 
// 	@Autowired
// 	private DiscoveryClient discoveryClient;
// 
// 	@Autowired
// 	private ServiceRegistry<EurekaRegistration> serviceRegistry;
// 
// 	@Autowired
// 	private InetUtils inetUtils;
// 
// 	@Autowired
// 	private EurekaClientConfigBean clientConfig;
// 
// 	private ApplicationContext context;
// 
// 	private EurekaRegistration registration;
// 
// 	@Bean
// 	public HealthCheckHandler healthCheckHandler() {
// 		return currentStatus -> InstanceInfo.InstanceStatus.UP;
// 	}
// 
// 	@RequestMapping("/")
// 	public String home() {
// 		return "Hello world " + registration.getUri();
// 	}
// 
// 	@Override
// 	public void setApplicationContext(ApplicationContext context) throws BeansException {
// 		this.context = context;
// 	}
// 
// 	@RequestMapping(path = "/register", method = POST)
// 	public String register() {
// 		EurekaInstanceConfigBean config = new EurekaInstanceConfigBean(inetUtils);
// 		String appname = "customapp";
// 		config.setIpAddress("127.0.0.1");
// 		config.setHostname("localhost");
// 		config.setAppname(appname);
// 		config.setVirtualHostName(appname);
// 		config.setSecureVirtualHostName(appname);
// 		config.setNonSecurePort(4444);
// 		config.setInstanceId("127.0.0.1:customapp:4444");
// 
// 		this.registration = EurekaRegistration.builder(config).with(this.clientConfig, this.context).build();
// 
// 		this.serviceRegistry.register(this.registration);
// 		return config.getInstanceId();
// 	}
// 
// 	@RequestMapping(path = "/deregister", method = POST)
// 	public String deregister() {
// 		this.serviceRegistry.deregister(this.registration);
// 		return "deregister";
// 	}
// 
// 	@Override
// 	public void close() throws IOException {
// 		deregister();
// 	}
// 
// }


// Path: spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/config/EurekaHttpClientsOptionalArgsConfigurationNoWebfluxTest.java
import org.apache.catalina.webresources.TomcatURLStreamHandlerFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.cloud.netflix.eureka.sample.EurekaSampleApplication;
import org.springframework.cloud.test.ClassPathExclusions;
import org.springframework.cloud.test.ModifiedClassPathRunner;
import org.springframework.context.ConfigurableApplicationContext;
import static org.assertj.core.api.AssertionsForClassTypes.fail;
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;

/*
 * Copyright 2017-2022 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.cloud.netflix.eureka.config;




/**
 * @author Daniel Lavoie
 */
@RunWith(ModifiedClassPathRunner.class)
@ClassPathExclusions({ "jersey-client-*", "jersey-core-*", "jersey-apache-client4-*", "spring-webflux-*" })
@SpringBootTest(classes = EurekaSampleApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT)
public class EurekaHttpClientsOptionalArgsConfigurationNoWebfluxTest {

	@Test
	@SuppressWarnings("unchecked")
	public void contextFailsWithoutWebClient() {

		ConfigurableApplicationContext ctx = null;
		try {
			TomcatURLStreamHandlerFactory.disable();
			ctx = new SpringApplicationBuilder(EurekaSampleApplication.class)