- scenario | includeDescendantsOption || expectedCpsDataServiceOption
- 'no descendants by default'| '' || OMIT_DESCENDANTS
- 'no descendant explicitly' | 'false' || OMIT_DESCENDANTS
- 'descendants' | 'true' || INCLUDE_ALL_DESCENDANTS
+ scenario | includeDescendantsOption || expectedCpsDataServiceOption
+ 'no descendants by default' | '' || OMIT_DESCENDANTS
+ 'no descendant explicitly' | 'false' || OMIT_DESCENDANTS
+ 'descendants' | 'true' || INCLUDE_ALL_DESCENDANTS
+ }
+
+ @Unroll
+ def 'Create data node: #scenario.'() {
+ given: 'json data'
+ def jsonData = 'json data'
+ when: 'post request is performed'
+ def response = mvc.perform(
+ post("$dataNodeBaseEndpoint/cm-handles/$cmHandle/nodes")
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(jsonData)
+ .param('xpath', reqXpath)
+ ).andReturn().response
+ then: 'the service method is invoked once with expected parameters'
+ 1 * mockNetworkCmProxyDataService.createDataNode(cmHandle, usedXpath, jsonData)
+ and: 'response status indicates success'
+ response.status == HttpStatus.CREATED.value()
+ where: 'following parameters were used'
+ scenario | reqXpath || usedXpath
+ 'no xpath parameter' | '' || '/'
+ 'root xpath' | '/' || '/'
+ 'parent node xpath' | '/xpath' || '/xpath'