### Question:
DMNDeepCloneProcess extends DeepCloneProcess implements IDeepCloneProcess { protected String composeUniqueNodeName(final String name) { final String originalName = Optional.ofNullable(name).orElse(""); final MatchResult nameSuffixMatcher = NAME_SUFFIX_REGEX.exec(originalName); if (nameSuffixMatcher != null) { return buildNameWithIncrementedSuffixIndex(originalName, nameSuffixMatcher); } return joinPrefixWithIndexedSuffix(originalName); } protected  DMNDeepCloneProcess(); @Inject  DMNDeepCloneProcess(final FactoryManager factoryManager,
                               final AdapterManager adapterManager,
                               final ClassUtils classUtils,
                               final SessionManager sessionManager); @Override T clone(final S source,
                          final T target);  }### Answer:
@Test public void testComposingUniqueNodeName() { assertThat(dmnDeepCloneProcess.composeUniqueNodeName(INPUT_DATA_NAME)) .isEqualTo(INPUT_DATA_NAME + FIRST_INDEX_IN_SUFFIX); }
@Test public void testComposingUniqueNodeNameWhenItAlreadyContainsIndexedSuffix() { mockSingleNodeInTheGraph(); assertThat(dmnDeepCloneProcess.composeUniqueNodeName(INPUT_DATA_NAME + FIRST_INDEX_IN_SUFFIX)) .isEqualTo(INPUT_DATA_NAME + SECOND_INDEX_IN_SUFFIX); }
@Test public void testComposingUniqueNodeNameWhenItContainsNotIndexedSuffix() { assertThat(dmnDeepCloneProcess.composeUniqueNodeName(INPUT_DATA_NAME + "-A3")) .isEqualTo(INPUT_DATA_NAME + "-A3" + FIRST_INDEX_IN_SUFFIX); }
@Test public void testComposingUniqueNodeNameWhenNextIndexInSequenceAlreadyPresent() { mockMultipleNodesInTheGraph(); assertThat(dmnDeepCloneProcess.composeUniqueNodeName(INPUT_DATA_NAME + FIRST_INDEX_IN_SUFFIX)) .isEqualTo(INPUT_DATA_NAME + FORTH_INDEX_IN_SUFFIX); }
@Test public void testComposingUniqueNodeNameWhenItIsEmpty() { assertThat(dmnDeepCloneProcess.composeUniqueNodeName("")) .isEqualTo(FIRST_INDEX_IN_SUFFIX); }
@Test public void testComposingUniqueNodeNameWhenItIsNull() { assertThat(dmnDeepCloneProcess.composeUniqueNodeName(null)) .isEqualTo(FIRST_INDEX_IN_SUFFIX); }