### Question:
NotificationsEditorWidget extends Composite implements HasValue<NotificationTypeListValue> { public void setReadOnly(final boolean readOnly) { notificationWidget.setReadOnly(readOnly); }  @PostConstruct void init(); @Override void setValue(NotificationTypeListValue value, boolean fireEvents); @Override NotificationTypeListValue getValue(); @Override void setValue(NotificationTypeListValue value); @Override HandlerRegistration addValueChangeHandler(ValueChangeHandler<NotificationTypeListValue> handler); void setReadOnly(final boolean readOnly);  }### Answer:
@Test public void testReadOnly() { setFieldValue(notificationWidgetViewImpl, "addButton", new HTMLButtonElement()); setFieldValue(notificationWidgetViewImpl, "okButton", new HTMLButtonElement()); setFieldValue(notificationWidget, "view", notificationWidgetViewImpl); setFieldValue(notificationsEditorWidget, "notificationWidget", notificationWidget); notificationsEditorWidget.setReadOnly(true); boolean readOnly = getFieldValue(NotificationWidgetViewImpl.class, notificationWidgetViewImpl, "readOnly"); HTMLButtonElement addButton = getFieldValue(NotificationWidgetViewImpl.class, notificationWidgetViewImpl, "addButton"); HTMLButtonElement okButton = getFieldValue(NotificationWidgetViewImpl.class, notificationWidgetViewImpl, "okButton"); Assert.assertTrue(readOnly); Assert.assertTrue(addButton.disabled); Assert.assertTrue(okButton.disabled); }