/*
 * Copyright 2012-2019 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.boot.test.autoconfigure.web.client;

import org.junit.Test;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.RunWith;

import org.springframework.boot.testsupport.runner.classpath.ClassPathExclusions;
import org.springframework.boot.testsupport.runner.classpath.ModifiedClassPathRunner;
import org.springframework.util.ClassUtils;

import static org.assertj.core.api.Assertions.assertThat;

/**
 * Tests for {@link RestClientTest @RestClientTest} without Jackson.
 *
 * @author Andy Wilkinson
 */
@RunWith(ModifiedClassPathRunner.class)
@ClassPathExclusions("jackson-*.jar")
public class RestClientTestWithoutJacksonIntegrationTests {

	@Test
	public void restClientTestCanBeUsedWhenJacksonIsNotOnTheClassPath() {
		assertThat(ClassUtils.isPresent("com.fasterxml.jackson.databind.Module", getClass().getClassLoader()))
				.isFalse();
		Result result = JUnitCore.runClasses(RestClientTestWithComponentIntegrationTests.class);
		assertThat(result.getFailureCount()).isEqualTo(0);
		assertThat(result.getRunCount()).isGreaterThan(0);
	}

}

@@ -732,19 +732,18 @@
 ner.
-JUnitCore
+RunWith
 ;%0A
+%0A
 impo
@@ -753,62 +753,59 @@
 org.
-junit.runner.Result;%0Aimport org.junit.runner.RunWith;%0A
+springframework.beans.factory.annotation.Autowired;
 %0Aimp
@@ -1000,82 +1000,379 @@
 ork.
-util.ClassUtils;%0A%0Aimport static org.assertj.core.api.Assertions.assertThat
+http.MediaType;%0Aimport org.springframework.test.web.client.MockRestServiceServer;%0Aimport org.springframework.util.ClassUtils;%0A%0Aimport static org.assertj.core.api.Assertions.assertThat;%0Aimport static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo;%0Aimport static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess
 ;%0A%0A/
@@ -1554,16 +1554,57 @@
 *.jar%22)%0A
+@RestClientTest(ExampleRestClient.class)%0A
 public c
@@ -1656,16 +1656,116 @@
 ests %7B%0A%0A
+%09@Autowired%0A%09private MockRestServiceServer server;%0A%0A%09@Autowired%0A%09private ExampleRestClient client;%0A%0A
 %09@Test%0A%09
@@ -1834,16 +1834,73 @@
 ath() %7B%0A
+%09%09ClassLoader classLoader = getClass().getClassLoader();%0A
 %09%09assert
@@ -1966,31 +1966,17 @@
 odule%22, 
-getClass().getC
+c
 lassLoad
@@ -1981,17 +1981,10 @@
 ader
-()))%0A%09%09%09%09
+))
 .isF
@@ -1997,200 +1997,152 @@
 ;%0A%09%09
-Result result = JUnitCore.runClasses(RestClientTestWithComponentIntegrationTests.class);%0A%09%09assertThat(result.getFailureCount()).isEqualTo(0);%0A%09%09assertThat(result.getRunCount()).isGreaterThan(0
+this.server.expect(requestTo(%22/test%22)).andRespond(withSuccess(%22hello%22, MediaType.TEXT_HTML));%0A%09%09assertThat(this.client.test()).isEqualTo(%22hello%22
 );%0A%09

Migrate to MockRestServiceServer