d370e87fbe7e3ca581e4a36ac3a2a149989f18e1
[arvados.git] / sdk / R / tests / testthat / fakes / FakeRESTService.R
1 FakeRESTService <- R6::R6Class(
2
3     "FakeRESTService",
4
5     public = list(
6
7         getResourceCallCount    = NULL,
8         createResourceCallCount = NULL,
9         listResourcesCallCount  = NULL,
10         deleteResourceCallCount = NULL,
11         updateResourceCallCount = NULL,
12         fetchAllItemsCallCount  = NULL,
13
14         createCallCount               = NULL,
15         deleteCallCount               = NULL,
16         moveCallCount                 = NULL,
17         getCollectionContentCallCount = NULL,
18         getResourceSizeCallCount      = NULL,
19         readCallCount                 = NULL,
20         writeCallCount                = NULL,
21         getConnectionCallCount        = NULL,
22         writeBuffer                   = NULL,
23         filtersAreConfiguredCorrectly = NULL,
24         bodyIsConfiguredCorrectly     = NULL,
25         expectedFilterContent         = NULL,
26
27         collectionContent = NULL,
28         returnContent     = NULL,
29
30         initialize = function(collectionContent = NULL, returnContent = NULL, 
31                               expectedFilterContent = NULL)
32         {
33             self$getResourceCallCount    <- 0
34             self$createResourceCallCount <- 0
35             self$listResourcesCallCount  <- 0
36             self$deleteResourceCallCount <- 0
37             self$updateResourceCallCount <- 0
38             self$fetchAllItemsCallCount  <- 0
39
40             self$createCallCount               <- 0
41             self$deleteCallCount               <- 0
42             self$moveCallCount                 <- 0
43             self$getCollectionContentCallCount <- 0
44             self$getResourceSizeCallCount      <- 0
45             self$readCallCount                 <- 0
46             self$writeCallCount                <- 0
47             self$getConnectionCallCount        <- 0
48             self$filtersAreConfiguredCorrectly <- FALSE
49             self$bodyIsConfiguredCorrectly     <- FALSE
50
51             self$collectionContent     <- collectionContent
52             self$returnContent         <- returnContent
53             self$expectedFilterContent <- expectedFilterContent
54         },
55
56         getWebDavHostName = function()
57         {
58         },
59
60         getResource = function(resource, uuid)
61         {
62             self$getResourceCallCount <- self$getResourceCallCount + 1
63             self$returnContent
64         },
65
66         listResources = function(resource, filters = NULL, limit = 100, offset = 0)
67         {
68             self$listResourcesCallCount <- self$listResourcesCallCount + 1
69
70             if(!is.null(self$expectedFilterContent) && !is.null(filters))
71                if(all.equal(filters, self$expectedFilterContent))
72                     self$filtersAreConfiguredCorrectly <- TRUE
73
74             self$returnContent
75         },
76
77         fetchAllItems = function(resourceURL, filters)
78         {
79             self$fetchAllItemsCallCount <- self$fetchAllItemsCallCount + 1
80
81             if(!is.null(self$expectedFilterContent) && !is.null(filters))
82                if(all.equal(filters, self$expectedFilterContent))
83                     self$filtersAreConfiguredCorrectly <- TRUE
84
85             self$returnContent
86         },
87
88         deleteResource = function(resource, uuid)
89         {
90             self$deleteResourceCallCount <- self$deleteResourceCallCount + 1
91             self$returnContent
92         },
93
94         updateResource = function(resource, uuid, newContent)
95         {
96             self$updateResourceCallCount <- self$updateResourceCallCount + 1
97
98             if(!is.null(self$returnContent) && !is.null(newContent))
99                if(all.equal(newContent, self$returnContent))
100                     self$bodyIsConfiguredCorrectly <- TRUE
101
102             self$returnContent
103         },
104
105         createResource = function(resource, content)
106         {
107             self$createResourceCallCount <- self$createResourceCallCount + 1
108
109             if(!is.null(self$returnContent) && !is.null(content))
110                if(all.equal(content, self$returnContent))
111                     self$bodyIsConfiguredCorrectly <- TRUE
112
113             self$returnContent
114         },
115
116         create = function(files, uuid)
117         {
118             self$createCallCount <- self$createCallCount + 1
119             self$returnContent
120         },
121
122         delete = function(relativePath, uuid)
123         {
124             self$deleteCallCount <- self$deleteCallCount + 1
125             self$returnContent
126         },
127
128         move = function(from, to, uuid)
129         {
130             self$moveCallCount <- self$moveCallCount + 1
131             self$returnContent
132         },
133
134         getCollectionContent = function(uuid)
135         {
136             self$getCollectionContentCallCount <- self$getCollectionContentCallCount + 1
137             self$collectionContent
138         },
139
140         getResourceSize = function(uuid, relativePathToResource)
141         {
142             self$getResourceSizeCallCount <- self$getResourceSizeCallCount + 1
143             self$returnContent
144         },
145         
146         read = function(relativePath, uuid, contentType = "text", offset = 0, length = 0)
147         {
148             self$readCallCount <- self$readCallCount + 1
149             self$returnContent
150         },
151
152         write = function(uuid, relativePath, content, contentType)
153         {
154             self$writeBuffer <- content
155             self$writeCallCount <- self$writeCallCount + 1
156             self$returnContent
157         },
158
159         getConnection = function(relativePath, uuid, openMode)
160         {
161             self$getConnectionCallCount <- self$getConnectionCallCount + 1
162             self$returnContent
163         }
164     ),
165
166     cloneable = FALSE
167 )