Watcher: Fix equals/hashcode for WatchStatus (elastic/x-pack-elasticsearch#3105)
This was missed in elastic/x-pack-elasticsearch#3103 and fixes to add the headers variable to both methods to ensure comparisons work as expected. Original commit: elastic/x-pack-elasticsearch@df5e422698
This commit is contained in:
parent
e4e8870b13
commit
d89d8abec9
|
@ -121,12 +121,13 @@ public class WatchStatus implements ToXContentObject, Streamable {
|
||||||
Objects.equals(lastMetCondition, that.lastMetCondition) &&
|
Objects.equals(lastMetCondition, that.lastMetCondition) &&
|
||||||
Objects.equals(version, that.version) &&
|
Objects.equals(version, that.version) &&
|
||||||
Objects.equals(executionState, that.executionState) &&
|
Objects.equals(executionState, that.executionState) &&
|
||||||
Objects.equals(actions, that.actions);
|
Objects.equals(actions, that.actions) &&
|
||||||
|
Objects.equals(headers, that.headers);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Objects.hash(lastChecked, lastMetCondition, actions, version, executionState);
|
return Objects.hash(lastChecked, lastMetCondition, actions, version, executionState, headers);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
*/
|
*/
|
||||||
package org.elasticsearch.xpack.watcher.watch;
|
package org.elasticsearch.xpack.watcher.watch;
|
||||||
|
|
||||||
|
import org.elasticsearch.common.bytes.BytesReference;
|
||||||
|
import org.elasticsearch.common.io.stream.BytesStreamOutput;
|
||||||
import org.elasticsearch.common.xcontent.ToXContent;
|
import org.elasticsearch.common.xcontent.ToXContent;
|
||||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.common.xcontent.XContentParser;
|
import org.elasticsearch.common.xcontent.XContentParser;
|
||||||
|
@ -14,11 +16,13 @@ import org.elasticsearch.xpack.watcher.actions.ActionStatus.AckStatus.State;
|
||||||
import org.elasticsearch.xpack.watcher.actions.logging.LoggingAction;
|
import org.elasticsearch.xpack.watcher.actions.logging.LoggingAction;
|
||||||
import org.elasticsearch.xpack.watcher.support.xcontent.WatcherParams;
|
import org.elasticsearch.xpack.watcher.support.xcontent.WatcherParams;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
|
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
|
||||||
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
import static org.hamcrest.Matchers.hasKey;
|
import static org.hamcrest.Matchers.hasKey;
|
||||||
import static org.hamcrest.Matchers.instanceOf;
|
import static org.hamcrest.Matchers.instanceOf;
|
||||||
import static org.hamcrest.Matchers.is;
|
import static org.hamcrest.Matchers.is;
|
||||||
|
@ -71,4 +75,25 @@ public class WatchStatusTests extends ESTestCase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public void testHeadersSerialization() throws IOException {
|
||||||
|
WatchStatus status = new WatchStatus(now(), Collections.emptyMap());
|
||||||
|
String key = randomAlphaOfLength(10);
|
||||||
|
String value = randomAlphaOfLength(10);
|
||||||
|
Map<String, String> headers = Collections.singletonMap(key, value);
|
||||||
|
status.setHeaders(headers);
|
||||||
|
|
||||||
|
BytesStreamOutput out = new BytesStreamOutput();
|
||||||
|
status.writeTo(out);
|
||||||
|
BytesReference bytesReference = out.bytes();
|
||||||
|
WatchStatus readStatus = WatchStatus.read(bytesReference.streamInput());
|
||||||
|
assertThat(readStatus, is(status));
|
||||||
|
assertThat(readStatus.getHeaders(), is(headers));
|
||||||
|
|
||||||
|
// test equals
|
||||||
|
assertThat(readStatus.hashCode(), is(status.hashCode()));
|
||||||
|
assertThat(readStatus, equalTo(status));
|
||||||
|
readStatus.getHeaders().clear();
|
||||||
|
assertThat(readStatus, not(equalTo(status)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue