"Fossies" - the Fresh Open Source Software Archive

Member "grails-core-6.1.0/grails-web-databinding/src/test/groovy/org/grails/web/databinding/bindingsource/AbstractRequestBodyDataBindingSourceCreatorSpec.groovy" (3 Nov 2023, 3075 Bytes) of package /linux/www/grails-core-6.1.0.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Java source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 package org.grails.web.databinding.bindingsource
    2 
    3 import grails.databinding.CollectionDataBindingSource
    4 import grails.databinding.DataBindingSource
    5 import grails.databinding.SimpleMapDataBindingSource
    6 import grails.web.http.HttpHeaders
    7 import grails.web.mime.MimeType
    8 import org.grails.web.servlet.mvc.GrailsWebRequest
    9 import org.grails.web.util.GrailsApplicationAttributes
   10 import org.springframework.http.HttpMethod
   11 import org.springframework.mock.web.MockHttpServletRequest
   12 import org.springframework.mock.web.MockHttpServletResponse
   13 import org.springframework.mock.web.MockServletContext
   14 import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder
   15 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders
   16 import spock.lang.Shared
   17 import spock.lang.Specification
   18 import spock.lang.Unroll
   19 
   20 import javax.servlet.ServletContext
   21 
   22 /**
   23  * Created by Jim on 8/22/2016.
   24  */
   25 class AbstractRequestBodyDataBindingSourceCreatorSpec extends Specification {
   26 
   27     @Shared
   28     AbstractRequestBodyDataBindingSourceCreator bindingSourceCreator
   29 
   30     @Shared
   31     ServletContext servletContext = new MockServletContext()
   32 
   33     void setupSpec() {
   34         bindingSourceCreator = new AbstractRequestBodyDataBindingSourceCreator() {
   35 
   36             @Override
   37             protected DataBindingSource createBindingSource(Reader reader) {
   38                 return new SimpleMapDataBindingSource([id: "request"])
   39             }
   40 
   41             @Override
   42             protected CollectionDataBindingSource createCollectionBindingSource(Reader reader) {
   43                 return null
   44             }
   45         }
   46     }
   47 
   48     MockHttpServletRequest build(String method, String content) {
   49         MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.request(method, new URI("")).param("id", "url")
   50         if (content != null) {
   51             builder.content(content)
   52         }
   53         MockHttpServletRequest request = builder.buildRequest(servletContext)
   54         request.setAttribute(GrailsApplicationAttributes.WEB_REQUEST, new GrailsWebRequest(request, new MockHttpServletResponse(), servletContext))
   55         request
   56     }
   57 
   58     @Unroll
   59     void "test binding request #request.method with content length #request.contentLength"() {
   60         given:
   61         MimeType mimeType = MimeType.ALL
   62         DataBindingSource source
   63 
   64         when:
   65         source = bindingSourceCreator.createDataBindingSource(mimeType, Object, request)
   66 
   67         then:
   68         source.identifierValue == expectedSource
   69 
   70         where:
   71         expectedSource | request
   72         "url"          | build("GET", null)
   73         "url"          | build("GET", "")
   74         "url"          | build("GET", "x")
   75         "url"          | build("DELETE", null)
   76         "url"          | build("DELETE", "")
   77         "url"          | build("DELETE", "x")
   78         "request"      | build("POST", null)
   79         "url"          | build("POST", "")
   80         "request"      | build("POST", "x")
   81         "request"      | build("PUT", null)
   82         "url"          | build("PUT", "")
   83         "request"      | build("PUT", "x")
   84     }
   85 }
   86