github.com/elopio/cli@v6.21.2-0.20160902224010-ea909d1fdb2f+incompatible/cf/api/appevents/app_events_test.go (about)

     1  package appevents_test
     2  
     3  import (
     4  	"net/http"
     5  	"net/http/httptest"
     6  
     7  	"time"
     8  
     9  	. "code.cloudfoundry.org/cli/cf/api/appevents"
    10  	"code.cloudfoundry.org/cli/cf/api/strategy"
    11  	"code.cloudfoundry.org/cli/cf/configuration/coreconfig"
    12  	"code.cloudfoundry.org/cli/cf/models"
    13  	"code.cloudfoundry.org/cli/cf/net"
    14  	"code.cloudfoundry.org/cli/cf/terminal/terminalfakes"
    15  	"code.cloudfoundry.org/cli/cf/trace/tracefakes"
    16  	testconfig "code.cloudfoundry.org/cli/testhelpers/configuration"
    17  	testnet "code.cloudfoundry.org/cli/testhelpers/net"
    18  	. "github.com/onsi/ginkgo"
    19  	. "github.com/onsi/gomega"
    20  )
    21  
    22  var _ = Describe("App Events Repo", func() {
    23  	var (
    24  		server  *httptest.Server
    25  		handler *testnet.TestHandler
    26  		config  coreconfig.ReadWriter
    27  		repo    Repository
    28  	)
    29  
    30  	BeforeEach(func() {
    31  		config = testconfig.NewRepository()
    32  		config.SetAccessToken("BEARER my_access_token")
    33  		config.SetAPIVersion("2.2.0")
    34  	})
    35  
    36  	JustBeforeEach(func() {
    37  		strategy := strategy.NewEndpointStrategy(config.APIVersion())
    38  		gateway := net.NewCloudControllerGateway(config, time.Now, new(terminalfakes.FakeUI), new(tracefakes.FakePrinter), "")
    39  		repo = NewCloudControllerAppEventsRepository(config, gateway, strategy)
    40  	})
    41  
    42  	AfterEach(func() {
    43  		server.Close()
    44  	})
    45  
    46  	setupTestServer := func(requests ...testnet.TestRequest) {
    47  		server, handler = testnet.NewServer(requests)
    48  		config.SetAPIEndpoint(server.URL)
    49  	}
    50  
    51  	Describe("list recent events", func() {
    52  		It("returns the most recent events", func() {
    53  			setupTestServer(eventsRequest)
    54  
    55  			list, err := repo.RecentEvents("my-app-guid", 2)
    56  			Expect(err).ToNot(HaveOccurred())
    57  			timestamp, err := time.Parse(eventTimestampFormat, "2014-01-21T00:20:11+00:00")
    58  			Expect(err).ToNot(HaveOccurred())
    59  
    60  			Expect(list).To(ConsistOf([]models.EventFields{
    61  				{
    62  					GUID:        "event-1-guid",
    63  					Name:        "audit.app.update",
    64  					Timestamp:   timestamp,
    65  					Description: "instances: 1, memory: 256, command: PRIVATE DATA HIDDEN, environment_json: PRIVATE DATA HIDDEN",
    66  					Actor:       "cf-1-client",
    67  					ActorName:   "somebody@pivotallabs.com",
    68  				},
    69  				{
    70  					GUID:        "event-2-guid",
    71  					Name:        "audit.app.update",
    72  					Timestamp:   timestamp,
    73  					Description: "instances: 1, memory: 256, command: PRIVATE DATA HIDDEN, environment_json: PRIVATE DATA HIDDEN",
    74  					Actor:       "cf-2-client",
    75  					ActorName:   "nobody@pivotallabs.com",
    76  				},
    77  			}))
    78  		})
    79  	})
    80  })
    81  
    82  const eventTimestampFormat = "2006-01-02T15:04:05-07:00"
    83  
    84  var eventsRequest = testnet.TestRequest{
    85  	Method: "GET",
    86  	Path:   "/v2/events?q=actee%3Amy-app-guid&order-direction=desc&results-per-page=2",
    87  	Response: testnet.TestResponse{
    88  		Status: http.StatusOK,
    89  		Body: `{
    90  		  "total_results": 1,
    91  		  "total_pages": 1,
    92  		  "prev_url": null,
    93  		  "next_url": "/v2/events?q=actee%3Amy-app-guid&page=2",
    94  		  "resources": [
    95  			{
    96  			  "metadata": {
    97  				"guid": "event-1-guid"
    98  			  },
    99  			  "entity": {
   100  				"type": "audit.app.update",
   101  				"timestamp": "2014-01-21T00:20:11+00:00",
   102  				"actor": "cf-1-client",
   103  				"actor_name": "somebody@pivotallabs.com",
   104  				"metadata": {
   105  				  "request": {
   106  					"command": "PRIVATE DATA HIDDEN",
   107  					"instances": 1,
   108  					"memory": 256,
   109  					"name": "dora",
   110  					"environment_json": "PRIVATE DATA HIDDEN"
   111  				  }
   112  				}
   113  			  }
   114  			},
   115  			{
   116  			  "metadata": {
   117  				"guid": "event-2-guid"
   118  			  },
   119  			  "entity": {
   120  				"type": "audit.app.update",
   121  				"actor": "cf-2-client",
   122  				"actor_name": "nobody@pivotallabs.com",
   123  				"timestamp": "2014-01-21T00:20:11+00:00",
   124  				"metadata": {
   125  				  "request": {
   126  					"command": "PRIVATE DATA HIDDEN",
   127  					"instances": 1,
   128  					"memory": 256,
   129  					"name": "dora",
   130  					"environment_json": "PRIVATE DATA HIDDEN"
   131  				  }
   132  				}
   133  			  }
   134  			}
   135  		  ]
   136  		}`}}