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