github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+incompatible/api/plugin/client_test.go (about)

     1  package plugin_test
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  	"runtime"
     7  
     8  	. "code.cloudfoundry.org/cli/api/plugin"
     9  	"code.cloudfoundry.org/cli/api/plugin/pluginfakes"
    10  	. "github.com/onsi/ginkgo"
    11  	. "github.com/onsi/gomega"
    12  	. "github.com/onsi/gomega/ghttp"
    13  )
    14  
    15  var _ = Describe("Plugin Client", func() {
    16  	var client *Client
    17  
    18  	BeforeEach(func() {
    19  		client = NewTestClient()
    20  	})
    21  
    22  	Describe("WrapConnection", func() {
    23  		var fakeConnectionWrapper *pluginfakes.FakeConnectionWrapper
    24  
    25  		BeforeEach(func() {
    26  			fakeConnectionWrapper = new(pluginfakes.FakeConnectionWrapper)
    27  			fakeConnectionWrapper.WrapReturns(fakeConnectionWrapper)
    28  		})
    29  
    30  		It("wraps the existing connection in the provided wrapper", func() {
    31  			client.WrapConnection(fakeConnectionWrapper)
    32  			Expect(fakeConnectionWrapper.WrapCallCount()).To(Equal(1))
    33  
    34  			client.GetPluginRepository("does-not-matter")
    35  			Expect(fakeConnectionWrapper.MakeCallCount()).To(Equal(1))
    36  		})
    37  	})
    38  
    39  	Describe("User Agent", func() {
    40  		BeforeEach(func() {
    41  			server.AppendHandlers(
    42  				CombineHandlers(
    43  					VerifyRequest(http.MethodGet, "/list"),
    44  					VerifyHeaderKV("User-Agent", fmt.Sprintf("CF CLI API Plugin Test/Unknown (%s; %s %s)", runtime.Version(), runtime.GOARCH, runtime.GOOS)),
    45  					RespondWith(http.StatusOK, "{}"),
    46  				),
    47  			)
    48  		})
    49  
    50  		It("adds a user agent header", func() {
    51  			client.GetPluginRepository(server.URL())
    52  			Expect(server.ReceivedRequests()).To(HaveLen(1))
    53  		})
    54  	})
    55  })