github.com/lukasheimann/cloudfoundrycli@v7.1.0+incompatible/resources/service_instance_resource_test.go (about)

     1  package resources_test
     2  
     3  import (
     4  	"encoding/json"
     5  
     6  	. "code.cloudfoundry.org/cli/resources"
     7  	. "github.com/onsi/ginkgo"
     8  	. "github.com/onsi/ginkgo/extensions/table"
     9  	. "github.com/onsi/gomega"
    10  )
    11  
    12  var _ = Describe("service instance resource", func() {
    13  	DescribeTable(
    14  		"Marshaling and Unmarshaling",
    15  		func(serviceInstance ServiceInstance, serialized string) {
    16  			By("marshaling", func() {
    17  				Expect(json.Marshal(serviceInstance)).To(MatchJSON(serialized))
    18  			})
    19  
    20  			By("unmarshaling", func() {
    21  				var parsed ServiceInstance
    22  				Expect(json.Unmarshal([]byte(serialized), &parsed)).NotTo(HaveOccurred())
    23  				Expect(parsed).To(Equal(serviceInstance))
    24  			})
    25  		},
    26  		Entry("type", ServiceInstance{Type: "fake-type"}, `{"type": "fake-type"}`),
    27  		Entry("name", ServiceInstance{Name: "fake-name"}, `{"name": "fake-name"}`),
    28  		Entry("guid", ServiceInstance{GUID: "fake-guid"}, `{"guid": "fake-guid"}`),
    29  		Entry(
    30  			"space guid",
    31  			ServiceInstance{SpaceGUID: "fake-space-guid"},
    32  			`{
    33  				"relationships": {
    34  					"space": {
    35  						"data": {
    36  							"guid": "fake-space-guid"
    37  						}
    38  					}
    39  				}
    40              }`,
    41  		),
    42  		Entry(
    43  			"everything",
    44  			ServiceInstance{
    45  				Type:      UserProvidedServiceInstance,
    46  				GUID:      "fake-guid",
    47  				Name:      "fake-space-guid",
    48  				SpaceGUID: "fake-space-guid",
    49  			},
    50  			`{
    51  				"type": "user-provided",
    52  				"guid": "fake-guid",
    53  				"name": "fake-space-guid",
    54  				"relationships": {
    55  					"space": {
    56  						"data": {
    57  							"guid": "fake-space-guid"
    58  						}
    59  					}
    60  				}
    61              }`,
    62  		),
    63  	)
    64  })