### Question:
OutputClauseLiteralExpression extends DMNModelInstrumentedBase implements IsLiteralExpression,
                                                                                       HasText,
                                                                                       HasTypeRef,
                                                                                       DMNPropertySet,
                                                                                       DomainObject { public OutputClauseLiteralExpression copy() { return new OutputClauseLiteralExpression( new Id(), Optional.ofNullable(description).map(Description::copy).orElse(null), Optional.ofNullable(typeRef).map(QName::copy).orElse(null), Optional.ofNullable(text).map(Text::copy).orElse(null), Optional.ofNullable(importedValues).map(ImportedValues::copy).orElse(null) ); } OutputClauseLiteralExpression();  OutputClauseLiteralExpression(final Id id,
                                         final Description description,
                                         final QName typeRef,
                                         final Text text,
                                         final ImportedValues importedValues); OutputClauseLiteralExpression copy(); @Override List<HasTypeRef> getHasTypeRefs(); String getStunnerCategory(); Set<String> getStunnerLabels(); @Override Id getId(); @Override Description getDescription(); void setDescription(final Description description); @Override QName getTypeRef(); @Override void setTypeRef(final QName typeRef); @Override Text getText(); @Override void setText(final Text text); @Override ImportedValues getImportedValues(); void setImportedValues(final ImportedValues importedValues); @Override DMNModelInstrumentedBase asDMNModelInstrumentedBase(); @Override String getDomainObjectUUID(); @Override String getDomainObjectNameTranslationKey(); @Override boolean equals(final Object o); @Override int hashCode();  }### Answer:
@Test public void testCopy() { final OutputClauseLiteralExpression source = new OutputClauseLiteralExpression( new Id(CLAUSE_ID), new Description(DESCRIPTION), BuiltInType.BOOLEAN.asQName(), new Text(TEXT), null ); final OutputClauseLiteralExpression target = source.copy(); assertNotNull(target); assertNotEquals(CLAUSE_ID, target.getId()); assertEquals(DESCRIPTION, target.getDescription().getValue()); assertEquals(BuiltInType.BOOLEAN.asQName(), target.getTypeRef()); assertEquals(TEXT, target.getText().getValue()); assertNull(target.getImportedValues()); }