github.com/brycereitano/goa@v0.0.0-20170315073847-8ffa6c85e265/context_test.go (about)

     1  package goa_test
     2  
     3  import (
     4  	"net/http"
     5  	"net/url"
     6  
     7  	"golang.org/x/net/context"
     8  
     9  	"github.com/goadesign/goa"
    10  	. "github.com/onsi/ginkgo"
    11  	. "github.com/onsi/gomega"
    12  )
    13  
    14  var _ = Describe("ResponseData", func() {
    15  	var data *goa.ResponseData
    16  	var rw http.ResponseWriter
    17  	var req *http.Request
    18  	var params url.Values
    19  
    20  	BeforeEach(func() {
    21  		var err error
    22  		req, err = http.NewRequest("GET", "google.com", nil)
    23  		Ω(err).ShouldNot(HaveOccurred())
    24  		rw = &TestResponseWriter{Status: 42}
    25  		params = url.Values{"query": []string{"value"}}
    26  		ctx := goa.NewContext(context.Background(), rw, req, params)
    27  		data = goa.ContextResponse(ctx)
    28  	})
    29  
    30  	Context("SwitchWriter", func() {
    31  		var rwo http.ResponseWriter
    32  
    33  		It("sets the response writer and returns the previous one", func() {
    34  			Ω(rwo).Should(BeNil())
    35  			rwo = data.SwitchWriter(&TestResponseWriter{Status: 43})
    36  			Ω(rwo).ShouldNot(BeNil())
    37  			Ω(rwo).Should(BeAssignableToTypeOf(&TestResponseWriter{}))
    38  			trw := rwo.(*TestResponseWriter)
    39  			Ω(trw.Status).Should(Equal(42))
    40  		})
    41  	})
    42  })