|
19 | 19 |
|
20 | 20 | package org.elasticsearch.client.transform.transforms.hlrc;
|
21 | 21 |
|
22 |
| -import org.elasticsearch.client.AbstractHlrcXContentTestCase; |
| 22 | +import org.elasticsearch.client.AbstractResponseTestCase; |
| 23 | +import org.elasticsearch.client.transform.transforms.NodeAttributes; |
| 24 | +import org.elasticsearch.client.transform.transforms.TransformCheckpointStats; |
| 25 | +import org.elasticsearch.client.transform.transforms.TransformCheckpointingInfo; |
| 26 | +import org.elasticsearch.client.transform.transforms.TransformIndexerPosition; |
| 27 | +import org.elasticsearch.client.transform.transforms.TransformIndexerStats; |
| 28 | +import org.elasticsearch.client.transform.transforms.TransformProgress; |
| 29 | +import org.elasticsearch.client.transform.transforms.TransformStats; |
23 | 30 | import org.elasticsearch.common.xcontent.XContentParser;
|
24 |
| -import org.elasticsearch.xpack.core.transform.transforms.TransformIndexerStats; |
25 |
| -import org.elasticsearch.xpack.core.transform.transforms.TransformCheckpointStats; |
26 |
| -import org.elasticsearch.xpack.core.transform.transforms.TransformCheckpointingInfo; |
27 |
| -import org.elasticsearch.xpack.core.transform.transforms.TransformProgress; |
28 |
| -import org.elasticsearch.xpack.core.transform.transforms.TransformStats; |
29 |
| -import org.elasticsearch.xpack.core.transform.transforms.NodeAttributes; |
| 31 | +import org.elasticsearch.common.xcontent.XContentType; |
30 | 32 |
|
31 | 33 | import java.io.IOException;
|
32 |
| -import java.time.Instant; |
33 | 34 | import java.util.HashMap;
|
34 | 35 | import java.util.Map;
|
35 |
| -import java.util.function.Predicate; |
36 | 36 |
|
37 |
| -public class TransformStatsTests extends AbstractHlrcXContentTestCase<TransformStats, |
38 |
| - org.elasticsearch.client.transform.transforms.TransformStats> { |
39 |
| - |
40 |
| - public static NodeAttributes fromHlrc(org.elasticsearch.client.transform.transforms.NodeAttributes attributes) { |
41 |
| - return attributes == null ? null : new NodeAttributes(attributes.getId(), |
42 |
| - attributes.getName(), |
43 |
| - attributes.getEphemeralId(), |
44 |
| - attributes.getTransportAddress(), |
45 |
| - attributes.getAttributes()); |
46 |
| - } |
| 37 | +import static org.hamcrest.Matchers.equalTo; |
47 | 38 |
|
48 |
| - public static TransformStats |
49 |
| - fromHlrc(org.elasticsearch.client.transform.transforms.TransformStats instance) { |
| 39 | +public class TransformStatsTests extends AbstractResponseTestCase<org.elasticsearch.xpack.core.transform.transforms.TransformStats, |
| 40 | + org.elasticsearch.client.transform.transforms.TransformStats> { |
50 | 41 |
|
51 |
| - return new TransformStats(instance.getId(), |
52 |
| - TransformStats.State.fromString(instance.getState().value()), |
53 |
| - instance.getReason(), |
54 |
| - fromHlrc(instance.getNode()), |
55 |
| - TransformIndexerStatsTests.fromHlrc(instance.getIndexerStats()), |
56 |
| - TransformCheckpointingInfoTests.fromHlrc(instance.getCheckpointingInfo())); |
| 42 | + public static org.elasticsearch.xpack.core.transform.transforms.NodeAttributes randomNodeAttributes() { |
| 43 | + int numberOfAttributes = randomIntBetween(1, 10); |
| 44 | + Map<String, String> attributes = new HashMap<>(numberOfAttributes); |
| 45 | + for(int i = 0; i < numberOfAttributes; i++) { |
| 46 | + String val = randomAlphaOfLength(10); |
| 47 | + attributes.put("key-"+i, val); |
| 48 | + } |
| 49 | + return new org.elasticsearch.xpack.core.transform.transforms.NodeAttributes(randomAlphaOfLength(10), |
| 50 | + randomAlphaOfLength(10), |
| 51 | + randomAlphaOfLength(10), |
| 52 | + randomAlphaOfLength(10), |
| 53 | + attributes); |
57 | 54 | }
|
58 | 55 |
|
59 |
| - @Override |
60 |
| - public org.elasticsearch.client.transform.transforms.TransformStats doHlrcParseInstance(XContentParser parser) |
61 |
| - throws IOException { |
62 |
| - return org.elasticsearch.client.transform.transforms.TransformStats.fromXContent(parser); |
| 56 | + public static org.elasticsearch.xpack.core.transform.transforms.TransformIndexerStats randomStats() { |
| 57 | + return new org.elasticsearch.xpack.core.transform.transforms.TransformIndexerStats(randomLongBetween(10L, 10000L), |
| 58 | + randomLongBetween(0L, 10000L), randomLongBetween(0L, 10000L), randomLongBetween(0L, 10000L), randomLongBetween(0L, 10000L), |
| 59 | + randomLongBetween(0L, 10000L), randomLongBetween(0L, 10000L), randomLongBetween(0L, 10000L), randomLongBetween(0L, 10000L), |
| 60 | + randomLongBetween(0L, 10000L), |
| 61 | + randomBoolean() ? null : randomDouble(), |
| 62 | + randomBoolean() ? null : randomDouble(), |
| 63 | + randomBoolean() ? null : randomDouble()); |
63 | 64 | }
|
64 |
| - |
65 | 65 | @Override
|
66 |
| - public TransformStats convertHlrcToInternal( |
67 |
| - org.elasticsearch.client.transform.transforms.TransformStats instance) { |
68 |
| - return new TransformStats(instance.getId(), |
69 |
| - TransformStats.State.fromString(instance.getState().value()), |
70 |
| - instance.getReason(), |
71 |
| - fromHlrc(instance.getNode()), |
72 |
| - TransformIndexerStatsTests.fromHlrc(instance.getIndexerStats()), |
73 |
| - TransformCheckpointingInfoTests.fromHlrc(instance.getCheckpointingInfo())); |
74 |
| - } |
75 |
| - |
76 |
| - public static TransformStats randomTransformStats() { |
77 |
| - return new TransformStats(randomAlphaOfLength(10), |
78 |
| - randomFrom(TransformStats.State.values()), |
| 66 | + protected org.elasticsearch.xpack.core.transform.transforms.TransformStats createServerTestInstance(XContentType xContentType) { |
| 67 | + return new org.elasticsearch.xpack.core.transform.transforms.TransformStats(randomAlphaOfLength(10), |
| 68 | + randomFrom(org.elasticsearch.xpack.core.transform.transforms.TransformStats.State.values()), |
79 | 69 | randomBoolean() ? null : randomAlphaOfLength(100),
|
80 | 70 | randomBoolean() ? null : randomNodeAttributes(),
|
81 | 71 | randomStats(),
|
82 | 72 | TransformCheckpointingInfoTests.randomTransformCheckpointingInfo());
|
83 | 73 | }
|
84 | 74 |
|
85 | 75 | @Override
|
86 |
| - protected TransformStats createTestInstance() { |
87 |
| - return randomTransformStats(); |
| 76 | + protected TransformStats doParseToClientInstance(XContentParser parser) throws IOException { |
| 77 | + return TransformStats.fromXContent(parser); |
88 | 78 | }
|
89 | 79 |
|
90 | 80 | @Override
|
91 |
| - protected TransformStats doParseInstance(XContentParser parser) throws IOException { |
92 |
| - return TransformStats.PARSER.apply(parser, null); |
| 81 | + protected void assertInstances(org.elasticsearch.xpack.core.transform.transforms.TransformStats serverTestInstance, |
| 82 | + TransformStats clientInstance) { |
| 83 | + assertThat(serverTestInstance.getId(), equalTo(clientInstance.getId())); |
| 84 | + assertThat(serverTestInstance.getState().value(), equalTo(clientInstance.getState().value())); |
| 85 | + assertTransformIndexerStats(serverTestInstance.getIndexerStats(), clientInstance.getIndexerStats()); |
| 86 | + assertTransformCheckpointInfo(serverTestInstance.getCheckpointingInfo(), clientInstance.getCheckpointingInfo()); |
| 87 | + assertNodeAttributes(serverTestInstance.getNode(), clientInstance.getNode()); |
| 88 | + assertThat(serverTestInstance.getReason(), equalTo(clientInstance.getReason())); |
93 | 89 | }
|
94 | 90 |
|
95 |
| - @Override |
96 |
| - protected Predicate<String> getRandomFieldsExcludeFilter() { |
97 |
| - return field -> field.contains("position") || field.equals("node.attributes"); |
98 |
| - } |
99 |
| - |
100 |
| - public static TransformProgress randomTransformProgress() { |
101 |
| - Long totalDocs = randomBoolean() ? null : randomNonNegativeLong(); |
102 |
| - Long docsRemaining = totalDocs != null ? randomLongBetween(0, totalDocs) : null; |
103 |
| - return new TransformProgress( |
104 |
| - totalDocs, |
105 |
| - docsRemaining, |
106 |
| - totalDocs != null ? totalDocs - docsRemaining : randomNonNegativeLong(), |
107 |
| - randomBoolean() ? null : randomNonNegativeLong()); |
| 91 | + private void assertNodeAttributes(org.elasticsearch.xpack.core.transform.transforms.NodeAttributes serverTestInstance, |
| 92 | + NodeAttributes clientInstance) { |
| 93 | + if (serverTestInstance == null || clientInstance == null) { |
| 94 | + assertNull(serverTestInstance); |
| 95 | + assertNull(clientInstance); |
| 96 | + return; |
| 97 | + } |
| 98 | + assertThat(serverTestInstance.getAttributes(), equalTo(clientInstance.getAttributes())); |
| 99 | + assertThat(serverTestInstance.getEphemeralId(), equalTo(clientInstance.getEphemeralId())); |
| 100 | + assertThat(serverTestInstance.getId(), equalTo(clientInstance.getId())); |
| 101 | + assertThat(serverTestInstance.getName(), equalTo(clientInstance.getName())); |
| 102 | + assertThat(serverTestInstance.getTransportAddress(), equalTo(clientInstance.getTransportAddress())); |
108 | 103 | }
|
109 | 104 |
|
110 |
| - public static TransformCheckpointingInfo randomTransformCheckpointingInfo() { |
111 |
| - return new TransformCheckpointingInfo(randomTransformCheckpointStats(), |
112 |
| - randomTransformCheckpointStats(), randomNonNegativeLong(), |
113 |
| - randomBoolean() ? null : Instant.ofEpochMilli(randomNonNegativeLong())); |
| 105 | + private void assertTransformProgress(org.elasticsearch.xpack.core.transform.transforms.TransformProgress serverTestInstance, |
| 106 | + TransformProgress clientInstance) { |
| 107 | + if (serverTestInstance == null || clientInstance == null) { |
| 108 | + assertNull(serverTestInstance); |
| 109 | + assertNull(clientInstance); |
| 110 | + return; |
| 111 | + } |
| 112 | + assertThat(serverTestInstance.getPercentComplete(), equalTo(clientInstance.getPercentComplete())); |
| 113 | + assertThat(serverTestInstance.getDocumentsProcessed(), equalTo(clientInstance.getDocumentsProcessed())); |
| 114 | + assertThat(serverTestInstance.getTotalDocs(), equalTo(clientInstance.getTotalDocs())); |
| 115 | + assertThat(serverTestInstance.getDocumentsIndexed(), equalTo(clientInstance.getDocumentsIndexed())); |
114 | 116 | }
|
115 | 117 |
|
116 |
| - public static TransformCheckpointStats randomTransformCheckpointStats() { |
117 |
| - return new TransformCheckpointStats(randomLongBetween(1, 1_000_000), |
118 |
| - TransformIndexerPositionTests.randomTransformIndexerPosition(), |
119 |
| - randomBoolean() ? null : TransformProgressTests.randomTransformProgress(), |
120 |
| - randomLongBetween(1, 1_000_000), randomLongBetween(0, 1_000_000)); |
| 118 | + private void assertPosition(org.elasticsearch.xpack.core.transform.transforms.TransformIndexerPosition serverTestInstance, |
| 119 | + TransformIndexerPosition clientInstance) { |
| 120 | + assertThat(serverTestInstance.getIndexerPosition(), equalTo(clientInstance.getIndexerPosition())); |
| 121 | + assertThat(serverTestInstance.getBucketsPosition(), equalTo(clientInstance.getBucketsPosition())); |
121 | 122 | }
|
122 | 123 |
|
123 |
| - public static NodeAttributes randomNodeAttributes() { |
124 |
| - int numberOfAttributes = randomIntBetween(1, 10); |
125 |
| - Map<String, String> attributes = new HashMap<>(numberOfAttributes); |
126 |
| - for(int i = 0; i < numberOfAttributes; i++) { |
127 |
| - String val = randomAlphaOfLength(10); |
128 |
| - attributes.put("key-"+i, val); |
129 |
| - } |
130 |
| - return new NodeAttributes(randomAlphaOfLength(10), |
131 |
| - randomAlphaOfLength(10), |
132 |
| - randomAlphaOfLength(10), |
133 |
| - randomAlphaOfLength(10), |
134 |
| - attributes); |
135 |
| - } |
136 | 124 |
|
137 |
| - public static TransformIndexerStats randomStats() { |
138 |
| - return new TransformIndexerStats(randomLongBetween(10L, 10000L), |
139 |
| - randomLongBetween(0L, 10000L), randomLongBetween(0L, 10000L), randomLongBetween(0L, 10000L), randomLongBetween(0L, 10000L), |
140 |
| - randomLongBetween(0L, 10000L), randomLongBetween(0L, 10000L), randomLongBetween(0L, 10000L), randomLongBetween(0L, 10000L), |
141 |
| - randomLongBetween(0L, 10000L), |
142 |
| - randomBoolean() ? null : randomDouble(), |
143 |
| - randomBoolean() ? null : randomDouble(), |
144 |
| - randomBoolean() ? null : randomDouble()); |
| 125 | + private void assertTransformCheckpointStats( |
| 126 | + org.elasticsearch.xpack.core.transform.transforms.TransformCheckpointStats serverTestInstance, |
| 127 | + TransformCheckpointStats clientInstance) { |
| 128 | + assertTransformProgress(serverTestInstance.getCheckpointProgress(), clientInstance.getCheckpointProgress()); |
| 129 | + assertThat(serverTestInstance.getCheckpoint(), equalTo(clientInstance.getCheckpoint())); |
| 130 | + assertPosition(serverTestInstance.getPosition(), clientInstance.getPosition()); |
| 131 | + assertThat(serverTestInstance.getTimestampMillis(), equalTo(clientInstance.getTimestampMillis())); |
| 132 | + assertThat(serverTestInstance.getTimeUpperBoundMillis(), equalTo(clientInstance.getTimeUpperBoundMillis())); |
145 | 133 | }
|
146 | 134 |
|
147 |
| - @Override |
148 |
| - protected boolean supportsUnknownFields() { |
149 |
| - return true; |
| 135 | + private void assertTransformCheckpointInfo( |
| 136 | + org.elasticsearch.xpack.core.transform.transforms.TransformCheckpointingInfo serverTestInstance, |
| 137 | + TransformCheckpointingInfo clientInstance) { |
| 138 | + assertTransformCheckpointStats(serverTestInstance.getNext(), clientInstance.getNext()); |
| 139 | + assertTransformCheckpointStats(serverTestInstance.getLast(), clientInstance.getLast()); |
| 140 | + assertThat(serverTestInstance.getChangesLastDetectedAt(), equalTo(clientInstance.getChangesLastDetectedAt())); |
| 141 | + assertThat(serverTestInstance.getOperationsBehind(), equalTo(clientInstance.getOperationsBehind())); |
150 | 142 | }
|
151 | 143 |
|
152 |
| - @Override |
153 |
| - protected String[] getShuffleFieldsExceptions() { |
154 |
| - return new String[] { "position" }; |
| 144 | + private void assertTransformIndexerStats(org.elasticsearch.xpack.core.transform.transforms.TransformIndexerStats serverTestInstance, |
| 145 | + TransformIndexerStats clientInstance) { |
| 146 | + assertThat(serverTestInstance.getExpAvgCheckpointDurationMs(), equalTo(clientInstance.getExpAvgCheckpointDurationMs())); |
| 147 | + assertThat(serverTestInstance.getExpAvgDocumentsProcessed(), equalTo(clientInstance.getExpAvgDocumentsProcessed())); |
| 148 | + assertThat(serverTestInstance.getExpAvgDocumentsIndexed(), equalTo(clientInstance.getExpAvgDocumentsIndexed())); |
| 149 | + assertThat(serverTestInstance.getNumPages(), equalTo(clientInstance.getNumPages())); |
| 150 | + assertThat(serverTestInstance.getIndexFailures(), equalTo(clientInstance.getIndexFailures())); |
| 151 | + assertThat(serverTestInstance.getIndexTime(), equalTo(clientInstance.getIndexTime())); |
| 152 | + assertThat(serverTestInstance.getIndexTotal(), equalTo(clientInstance.getIndexTotal())); |
| 153 | + assertThat(serverTestInstance.getNumDocuments(), equalTo(clientInstance.getNumDocuments())); |
| 154 | + assertThat(serverTestInstance.getNumInvocations(), equalTo(clientInstance.getNumInvocations())); |
| 155 | + assertThat(serverTestInstance.getOutputDocuments(), equalTo(clientInstance.getOutputDocuments())); |
| 156 | + assertThat(serverTestInstance.getSearchFailures(), equalTo(clientInstance.getSearchFailures())); |
| 157 | + assertThat(serverTestInstance.getSearchTime(), equalTo(clientInstance.getSearchTime())); |
| 158 | + assertThat(serverTestInstance.getSearchTotal(), equalTo(clientInstance.getSearchTotal())); |
155 | 159 | }
|
156 | 160 | }
|
0 commit comments