### Question:
ImportsFieldEditorWidget extends Composite implements HasValue<ImportsValue> { protected ImportsValue copyImportsValue(ImportsValue importsValue) { ImportsValue copy = new ImportsValue(); if (importsValue != null) { for (DefaultImport defaultImport : importsValue.getDefaultImports()) { DefaultImport importCopy = new DefaultImport(); importCopy.setClassName(defaultImport.getClassName()); copy.addImport(importCopy); } for (WSDLImport wsdlImport : importsValue.getWSDLImports()) { WSDLImport importCopy = new WSDLImport(); importCopy.setLocation(wsdlImport.getLocation()); importCopy.setNamespace(wsdlImport.getNamespace()); copy.addImport(importCopy); } } return copy; } ImportsFieldEditorWidget();  ImportsFieldEditorWidget(final ImportsValue importsValue); @Override ImportsValue getValue(); @Override void setValue(final ImportsValue value); @Override void setValue(final ImportsValue value, final boolean fireEvents); @Override HandlerRegistration addValueChangeHandler(final ValueChangeHandler<ImportsValue> handler); @EventHandler("importsButton") void onClickImportsButton(final ClickEvent clickEvent); @EventHandler("importsTextBox") void onClickImportsTextBox(final ClickEvent clickEvent);  }### Answer:
@Test public void copyImportsValue() { ImportsValue result1 = tested.copyImportsValue(null); assertNotNull(result1); ImportsValue importsValue = createImportsValue(5, 5); ImportsValue result2 = tested.copyImportsValue(importsValue); assertEquals(importsValue.getDefaultImports().size(), result2.getDefaultImports().size()); assertEquals(importsValue.getWSDLImports().size(), result2.getWSDLImports().size()); importsValue.setDefaultImports(new ArrayList<>()); importsValue.setWSDLImports(new ArrayList<>()); assertNotEquals(importsValue.getDefaultImports().size(), result2.getDefaultImports().size()); assertNotEquals(importsValue.getWSDLImports().size(), result2.getWSDLImports().size()); }