+ createDataNodeTree(parentXpath, childXpath, grandChildXpath));
+ final FragmentEntity parentFragment = getFragmentByXpath(parentXpath);
+ final FragmentEntity childFragment = getFragmentByXpath(childXpath);
+ final FragmentEntity grandChildFragment = getFragmentByXpath(grandChildXpath);
+ assertFragment(parentFragment, childFragment, grandChildFragment, parentXpath, childXpath,
+ grandChildXpath);
+ }
+
+ @Test
+ @Sql({CLEAR_DATA, SET_DATA})
+ public void testAddChildToFragmentThatHasOneChild() {
+ final String childXpath = "some-xpath";
+ final DataNode childDataNode = createDataNodeTree(childXpath);
+ cpsDataPersistenceService
+ .addChildDataNode(DATASPACE_NAME, ANCHOR_NAME1, PARENT_XPATH2, childDataNode);
+ final FragmentEntity parentFragment = fragmentRepository.findById(PARENT_ID_4002).orElseThrow();
+ Assertions.assertThat(parentFragment.getChildFragments())
+ .hasSize(2)
+ .extracting(FragmentEntity::getXpath)
+ .containsExactlyInAnyOrder(childXpath, CHILD_XPATH2);
+ }
+
+ @Test
+ @Sql({CLEAR_DATA, SET_DATA})
+ public void testAddChildToFragmentThatHasNoChild() {
+ final String childXpath = "some-xpath";
+ final DataNode childDataNode = createDataNodeTree(childXpath);
+ cpsDataPersistenceService
+ .addChildDataNode(DATASPACE_NAME, ANCHOR_NAME1, PARENT_XPATH3, childDataNode);
+ final FragmentEntity parentFragment = fragmentRepository.findById(PARENT_ID_4003).orElseThrow();
+ Assertions.assertThat(parentFragment.getChildFragments())
+ .hasSize(1)
+ .extracting(FragmentEntity::getXpath)
+ .containsExactlyInAnyOrder(childXpath);
+ }