* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
import spock.lang.Shared
import spock.lang.Specification
-@WebMvcTest
+@WebMvcTest(DataRestController)
class DataRestControllerSpec extends Specification {
@SpringBean
CpsDataService mockCpsDataService = Mock()
- @SpringBean
- CpsModuleService mockCpsModuleService = Mock()
-
- @SpringBean
- CpsAdminService mockCpsAdminService = Mock()
-
- @SpringBean
- CpsQueryService mockCpsQueryService = Mock()
-
- @SpringBean
- ModelMapper modelMapper = Mock()
-
@Autowired
MockMvc mvc
response.status == HttpStatus.CREATED.value()
then: 'the java API was called with the correct parameters'
1 * mockCpsDataService.saveListNodeData(dataspaceName, anchorName, parentNodeXpath, jsonData)
-
}
def 'Get data node with leaves'() {
'root node by choice' | '/' || '/'
'some xpath by parent' | '/some/xpath' || '/some/xpath'
}
+
+ def 'Replace list node child elements.'() {
+ given: 'parent node xpath and json data inputs'
+ def parentNodeXpath = 'parent node xpath'
+ def jsonData = 'json data'
+ when: 'patch is invoked list-node endpoint'
+ def response = mvc.perform(
+ patch("$dataNodeBaseEndpoint/anchors/$anchorName/list-node")
+ .contentType(MediaType.APPLICATION_JSON)
+ .param('xpath', parentNodeXpath)
+ .content(jsonData)
+ ).andReturn().response
+ then: 'a success response is returned'
+ response.status == HttpStatus.OK.value()
+ then: 'the java API was called with the correct parameters'
+ 1 * mockCpsDataService.replaceListNodeData(dataspaceName, anchorName, parentNodeXpath, jsonData)
+ }
}