Replaced call to non-existent method execute in RESTService class with
[arvados.git] / sdk / R / tests / testthat / fakes / FakeHttpRequest.R
index 168e4ec4c277622888ad673f65e1fdb0f33985d1..c4dbc669ce9f746f2051dff2c79b654e40797200 100644 (file)
@@ -12,87 +12,77 @@ FakeHttpRequest <- R6::R6Class(
         expectedQueryFilters                    = NULL,
         queryFiltersAreCorrect                  = NULL,
         requestHeaderContainsAuthorizationField = NULL,
+        requestHeaderContainsDestinationField   = NULL,
+        requestHeaderContainsRangeField         = NULL,
+        requestHeaderContainsContentTypeField   = NULL,
         JSONEncodedBodyIsProvided               = NULL,
+        requestBodyIsProvided                   = NULL,
 
         numberOfGETRequests    = NULL,
         numberOfDELETERequests = NULL,
         numberOfPUTRequests    = NULL,
         numberOfPOSTRequests   = NULL,
+        numberOfMOVERequests   = NULL,
 
-        initialize = function(expectedURL = NULL,
-                              serverResponse = NULL,
-                              expectedFilters = NULL)
+        initialize = function(expectedURL      = NULL,
+                              serverResponse   = NULL,
+                              expectedFilters  = NULL)
         {
-            self$content <- serverResponse
-            self$expectedURL <- expectedURL
-            self$URLIsProperlyConfigured <- FALSE
-            self$expectedQueryFilters <- expectedFilters
-            self$queryFiltersAreCorrect <- FALSE
+            if(is.null(serverResponse))
+            {
+                self$content <- list()
+                self$content$status_code <- 200
+            }
+            else
+                self$content <- serverResponse
+
+            self$expectedURL                             <- expectedURL
+            self$URLIsProperlyConfigured                 <- FALSE
+            self$expectedQueryFilters                    <- expectedFilters
+            self$queryFiltersAreCorrect                  <- FALSE
             self$requestHeaderContainsAuthorizationField <- FALSE
-            self$JSONEncodedBodyIsProvided <- FALSE
+            self$requestHeaderContainsDestinationField   <- FALSE
+            self$requestHeaderContainsRangeField         <- FALSE
+            self$requestHeaderContainsContentTypeField   <- FALSE
+            self$JSONEncodedBodyIsProvided               <- FALSE
+            self$requestBodyIsProvided                   <- FALSE
 
-            self$numberOfGETRequests <- 0
+            self$numberOfGETRequests    <- 0
             self$numberOfDELETERequests <- 0
-            self$numberOfPUTRequests <- 0
-            self$numberOfPOSTRequests <- 0
+            self$numberOfPUTRequests    <- 0
+            self$numberOfPOSTRequests   <- 0
+            self$numberOfMOVERequests   <- 0
 
             self$serverMaxElementsPerRequest <- 5
         },
 
-        GET = function(url, headers = NULL, queryFilters = NULL, limit = NULL, offset = NULL)
+        exec = function(verb, url, headers = NULL, body = NULL, query = NULL,
+                        limit = NULL, offset = NULL, retryTimes = 0)
         {
             private$validateURL(url)
             private$validateHeaders(headers)
             private$validateFilters(queryFilters)
-            self$numberOfGETRequests <- self$numberOfGETRequests + 1
+            private$validateBody(body)
 
-            if(!is.null(self$content$items_available))
+            if(verb == "GET")
+                self$numberOfGETRequests <- self$numberOfGETRequests + 1
+            else if(verb == "POST")
+                self$numberOfPOSTRequests <- self$numberOfPOSTRequests + 1
+            else if(verb == "PUT")
+                self$numberOfPUTRequests <- self$numberOfPUTRequests + 1
+            else if(verb == "DELETE")
+                self$numberOfDELETERequests <- self$numberOfDELETERequests + 1
+            else if(verb == "MOVE")
+                self$numberOfMOVERequests <- self$numberOfMOVERequests + 1
+            else if(verb == "PROPFIND")
             {
-                return(private$getElements(offset, limit))
+                return(self$content)
             }
+
+            if(!is.null(self$content$items_available))
+                return(private$getElements(offset, limit))
             else
                 return(self$content)
-        },
-
-        PUT = function(url, headers = NULL, body = NULL,
-                       queryFilters = NULL, limit = NULL, offset = NULL)
-        {
-            private$validateURL(url)
-            private$validateHeaders(headers)
-            private$validateBody(body)
-            self$numberOfPUTRequests <- self$numberOfPUTRequests + 1
-
-            self$content
-        },
-
-        POST = function(url, headers = NULL, body = NULL,
-                        queryFilters = NULL, limit = NULL, offset = NULL)
-        {
-            private$validateURL(url)
-            private$validateHeaders(headers)
-            private$validateBody(body)
-            self$numberOfPOSTRequests <- self$numberOfPOSTRequests + 1
-
-            self$content
-        },
-
-        DELETE = function(url, headers = NULL, body = NULL,
-                          queryFilters = NULL, limit = NULL, offset = NULL)
-        {
-            private$validateURL(url)
-            private$validateHeaders(headers)
-            self$numberOfDELETERequests <- self$numberOfDELETERequests + 1
-            self$content
-        },
-
-        PROPFIND = function(url, headers = NULL)
-        {
-            self$content
-        },
-
-        MOVE = function(url, headers = NULL)
-        {
-            self$content
         }
     ),
 
@@ -108,12 +98,26 @@ FakeHttpRequest <- R6::R6Class(
         {
             if(!is.null(headers$Authorization))
                 self$requestHeaderContainsAuthorizationField <- TRUE
+
+            if(!is.null(headers$Destination))
+                self$requestHeaderContainsDestinationField <- TRUE
+
+            if(!is.null(headers$Range))
+                self$requestHeaderContainsRangeField <- TRUE
+
+            if(!is.null(headers[["Content-Type"]]))
+                self$requestHeaderContainsContentTypeField <- TRUE
         },
 
         validateBody = function(body)
         {
-            if(!is.null(body) && class(body) == "json")           
-                self$JSONEncodedBodyIsProvided <- TRUE
+            if(!is.null(body))           
+            {
+                self$requestBodyIsProvided <- TRUE
+
+                if(class(body) == "json")           
+                    self$JSONEncodedBodyIsProvided <- TRUE
+            }
         },
 
         validateFilters = function(filters)