}
if (randomBoolean()) {
mltRequest.fields(randomStrings(5));
}
BytesStreamOutput out = new BytesStreamOutput();
out.setVersion(randomVersion());
mltRequest.writeTo(out);
BytesStreamInput in = new BytesStreamInput(out.bytes());
in.setVersion(out.getVersion());
MoreLikeThisRequest mltRequest2 = new MoreLikeThisRequest();
mltRequest2.readFrom(in);
assertThat(mltRequest2.index(), equalTo(mltRequest.index()));
assertThat(mltRequest2.type(), equalTo(mltRequest.type()));
assertThat(mltRequest2.id(), equalTo(mltRequest.id()));
assertThat(mltRequest2.boostTerms(), equalTo(mltRequest.boostTerms()));
assertThat(mltRequest2.maxDocFreq(), equalTo(mltRequest.maxDocFreq()));
assertThat(mltRequest2.minDocFreq(), equalTo(mltRequest.minDocFreq()));
assertThat(mltRequest2.maxQueryTerms(), equalTo(mltRequest.maxQueryTerms()));
assertThat(mltRequest2.minWordLength(), equalTo(mltRequest.minWordLength()));
assertThat(mltRequest2.maxWordLength(), equalTo(mltRequest.maxWordLength()));
assertThat(mltRequest2.percentTermsToMatch(), equalTo(mltRequest.percentTermsToMatch()));
assertThat(mltRequest2.searchTypes(), equalTo(mltRequest.searchTypes()));
assertThat(mltRequest2.searchType(), equalTo(mltRequest.searchType()));
assertThat(mltRequest2.searchIndices(), equalTo(mltRequest.searchIndices()));
assertThat(mltRequest2.routing(), equalTo(mltRequest.routing()));
assertThat(mltRequest2.searchFrom(), equalTo(mltRequest.searchFrom()));
assertThat(mltRequest2.searchSize(), equalTo(mltRequest.searchSize()));
if (mltRequest.searchScroll() == null) {
assertThat(mltRequest2.searchScroll(), nullValue());
} else {
assertThat(mltRequest2.searchFrom(), notNullValue());
assertThat(mltRequest2.searchScroll().keepAlive(), equalTo(mltRequest.searchScroll().keepAlive()));
}
if (mltRequest.searchSource() == null) {
assertThat(mltRequest2.searchSource().length(), equalTo(0));
} else {
assertThat(mltRequest2.searchSource().length(), equalTo(mltRequest.searchSource().length()));
assertThat(mltRequest2.searchSourceUnsafe(), equalTo(mltRequest.searchSourceUnsafe()));
}
if (mltRequest.stopWords() != null && mltRequest.stopWords().length > 0) {
assertThat(mltRequest2.stopWords(), equalTo(mltRequest.stopWords()));
} else {
assertThat(mltRequest2.stopWords(), nullValue());
}
if (mltRequest.fields() == null) {
assertThat(mltRequest2.fields(), equalTo(Strings.EMPTY_ARRAY));
} else {
assertThat(mltRequest2.fields(), equalTo(mltRequest.fields()));
}
if (out.getVersion().onOrAfter(Version.V_1_2_0)) {
assertThat(mltRequest2.include(), equalTo(mltRequest.include()));
} else {
assertThat(mltRequest2.include(), is(false));
}
}