|
18 | 18 |
|
19 | 19 | package org.apache.cassandra.gms;
|
20 | 20 |
|
| 21 | +import java.io.IOException; |
21 | 22 | import java.net.InetAddress;
|
22 | 23 | import java.net.UnknownHostException;
|
23 | 24 | import java.util.Collections;
|
|
33 | 34 |
|
34 | 35 | import org.apache.cassandra.config.DatabaseDescriptor;
|
35 | 36 | import org.apache.cassandra.dht.Token;
|
36 |
| -import org.apache.cassandra.locator.InetAddressAndPort; |
| 37 | +import org.apache.cassandra.io.util.DataInputBuffer; |
| 38 | +import org.apache.cassandra.io.util.DataOutputBuffer; |
| 39 | +import org.apache.cassandra.net.MessagingService; |
37 | 40 |
|
38 | 41 | import static org.junit.Assert.assertEquals;
|
39 | 42 | import static org.junit.Assert.assertTrue;
|
@@ -166,4 +169,34 @@ public void run()
|
166 | 169 | assertTrue(values.containsKey(ApplicationState.INTERNAL_IP));
|
167 | 170 | assertTrue(values.containsKey(ApplicationState.HOST_ID));
|
168 | 171 | }
|
| 172 | + |
| 173 | + @Test |
| 174 | + public void testCCReleaseVersion() throws IOException |
| 175 | + { |
| 176 | + String versionString = "4.0.11.0-0b982c438bfc"; |
| 177 | + String c3safeVersionString = "4.0.11.0"; |
| 178 | + VersionedValue releaseVersion = valueFactory.releaseVersion(versionString); |
| 179 | + |
| 180 | + assertEquals(versionString, EndpointStateSerializer.filterValue(ApplicationState.RELEASE_VERSION, releaseVersion, MessagingService.VERSION_40).value); |
| 181 | + assertEquals(c3safeVersionString, EndpointStateSerializer.filterValue(ApplicationState.RELEASE_VERSION, releaseVersion, MessagingService.VERSION_3014).value); |
| 182 | + |
| 183 | + HeartBeatState hb = new HeartBeatState(0); |
| 184 | + EndpointState state = new EndpointState(hb); |
| 185 | + Map<ApplicationState, VersionedValue> states = new EnumMap<>(ApplicationState.class); |
| 186 | + states.put(ApplicationState.RELEASE_VERSION, releaseVersion); |
| 187 | + state.addApplicationStates(states); |
| 188 | + assertEquals(versionString, state.getReleaseVersion().toString()); |
| 189 | + |
| 190 | + DataOutputBuffer buffer = new DataOutputBuffer(); |
| 191 | + EndpointState.serializer.serialize(state, buffer, MessagingService.VERSION_40); |
| 192 | + DataInputBuffer input = new DataInputBuffer(buffer.buffer(), false); |
| 193 | + EndpointState deserializedCurrent = EndpointState.serializer.deserialize(input, MessagingService.VERSION_40); |
| 194 | + assertEquals(versionString, deserializedCurrent.getApplicationState(ApplicationState.RELEASE_VERSION).value); |
| 195 | + |
| 196 | + buffer = new DataOutputBuffer(); |
| 197 | + EndpointState.serializer.serialize(state, buffer, MessagingService.VERSION_3014); |
| 198 | + input = new DataInputBuffer(buffer.buffer(), false); |
| 199 | + EndpointState deserializedOld = EndpointState.serializer.deserialize(input, MessagingService.VERSION_3014); |
| 200 | + assertEquals(c3safeVersionString, deserializedOld.getApplicationState(ApplicationState.RELEASE_VERSION).value); |
| 201 | + } |
169 | 202 | }
|
0 commit comments