/*
 * Copyright 2002-2014 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
 *
 *      http://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.test.web.servlet.samples.spr;

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

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;

/**
 * Test for SPR-10277 (multiple method chaining when building MockMvc).
 *
 * @author Wesley Hall
 */
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration
public class MockMvcBuilderMethodChainTests {

    @Autowired
    private WebApplicationContext wac;

    @Test
    public void chainMultiple() {
        MockMvcBuilders
                .webAppContextSetup(wac)
                .addFilter(new CharacterEncodingFilter() )
                .defaultRequest(get("/").contextPath("/mywebapp"))
                .build();
    }

    @Configuration
    @EnableWebMvc
    static class WebConfig implements WebMvcConfigurer {
    }
}

@@ -17,17 +17,17 @@
 2002-201
-4
+7
  the ori
@@ -614,16 +614,17 @@
 se.%0A */%0A
+%0A
 package 
@@ -1717,20 +1717,17 @@
 ests %7B%0A%0A
-    
+%09
 @Autowir
@@ -1729,20 +1729,17 @@
 towired%0A
-    
+%09
 private 
@@ -1770,22 +1770,16 @@
 c;%0A%0A
-    
+%09
 @Test%0A
-    
+%09
 publ
@@ -1804,24 +1804,18 @@
 ple() %7B%0A
-        
+%09%09
 MockMvcB
@@ -1822,32 +1822,20 @@
 uilders%0A
-                
+%09%09%09%09
 .webAppC
@@ -1851,32 +1851,20 @@
 up(wac)%0A
-                
+%09%09%09%09
 .addFilt
@@ -1898,32 +1898,20 @@
 ter() )%0A
-                
+%09%09%09%09
 .default
@@ -1957,45 +1957,27 @@
 %22))%0A
-                .build();%0A    %7D%0A%0A    
+%09%09%09%09.build();%0A%09%7D%0A%0A%09
 @Con
@@ -1987,20 +1987,17 @@
 uration%0A
-    
+%09
 @EnableW
@@ -2002,20 +2002,17 @@
 eWebMvc%0A
-    
+%09
 static c
@@ -2060,12 +2060,10 @@
 r %7B%0A
-    %7D
+%09%7D%0A
 %0A%7D%0A

Fix formatting