### Question:
TimerEmitterProcessorOptions extends ProcessorOptions { public TimerEmitterProcessorOptions() { } TimerEmitterProcessorOptions();  TimerEmitterProcessorOptions(TimerEmitterProcessorOptions other);  TimerEmitterProcessorOptions(ProcessorOptions other);  TimerEmitterProcessorOptions(JsonObject json); @Override JsonObject toJson(); Long getInterval(); TimerEmitterProcessorOptions setInterval(Long interval); TimeUnit getUnit(); TimerEmitterProcessorOptions setUnit(TimeUnit unit); Signal getSignal(); TimerEmitterProcessorOptions setSignal(Signal signal); Long getDelayTerminate(); TimerEmitterProcessorOptions setDelayTerminate(Long delayTerminate); @Override String getName(); @Override TimerEmitterProcessorOptions setName(String name); @Override String getType(); @Override TimerEmitterProcessorOptions setType(String type); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); static final Long DEFAULT_INTERVAL; static final TimeUnit DEFAULT_UNIT; static final Signal DEFAULT_SIGNAL; static final Long DEFAULT_DELAY_TERMINATE; }### Answer:
@Test @DisplayName("Validate Timer Emitter options") void testTimerEmitterProcessorOptions() { new TimerEmitterProcessorOptionsConverter(); String badStr = "{\"name\": 10, \"type\": 20, \"interval\": false, \"unit\":12,\"signal\": 1}"; String optStr = "{\"instances\":1,\"name\":\"name\",\"type\":\"type\",\"delayTerminate\":1,\"interval\":100,\"signal\":\"TERMINATE\",\"unit\":\"DAYS\"}"; ProcessorOptions optPump = new ProcessorOptions(new JsonObject(optStr)); TimerEmitterProcessorOptions optNull = new TimerEmitterProcessorOptions() .setName(null) .setType(null) .setInterval(null) .setUnit(null) .setSignal(null); TimerEmitterProcessorOptions optObj = new TimerEmitterProcessorOptions() .setName("name") .setType("type") .setInterval(100L) .setUnit(TimeUnit.DAYS) .setSignal(Signal.TERMINATE); JsonObject optJson = new JsonObject(optStr); assertThat(new TimerEmitterProcessorOptions(new JsonObject(badStr))).isEqualTo(new TimerEmitterProcessorOptions()); assertThat(optNull.toJson()).isEqualTo(obj().put("instances", 1).put("delayTerminate", 1)); assertThat(optObj).isEqualTo(optObj); assertThat(optObj).isNotEqualTo(optNull); assertThat(optObj).isEqualTo(new TimerEmitterProcessorOptions(optJson)); assertThat(optObj).isEqualTo(new TimerEmitterProcessorOptions(optObj)); assertThat(optObj.toString()).isEqualTo(new TimerEmitterProcessorOptions(optJson).toString()); assertThat(optObj.hashCode()).isEqualTo(new TimerEmitterProcessorOptions(optJson).hashCode()); assertThat(optObj).isNotEqualTo(null); assertThat(optObj).isNotEqualTo(new Object()); assertThat(optObj.toJson()).isEqualTo(optJson); assertThat(optPump) .isEqualToComparingOnlyGivenFields(new TimerEmitterProcessorOptions(optPump), "name", "type"); }