package info.frostfs.sdk.mappers; import com.google.protobuf.ByteString; import frostfs.session.Types; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.*; public class SessionMapperTest { private static final byte[] SERIALIZED_TOKEN = new byte[] {10, 21, 10, 5, 1, 2, 3, 4, 5, 26, 6, 8, 1, 16, 3, 24, 2, 34, 4, 6, 7, 8, 9}; @Test void serialize_success() { //Given var sessionToken = createSessionToken(); //When var result = SessionMapper.serialize(sessionToken); //Then assertNotNull(result); assertThat(result).hasSize(23).containsExactly(SERIALIZED_TOKEN); } @Test void serialize_wrong() { //When + Then assertThrows(IllegalArgumentException.class, () -> SessionMapper.serialize(null)); } @Test void deserialize_success() { //When var result = SessionMapper.deserializeSessionToken(SERIALIZED_TOKEN); //Then assertNotNull(result); assertEquals(createSessionToken(), result); } @Test void deserialize_wrong() { //When + Then assertThrows(IllegalArgumentException.class, () -> SessionMapper.deserializeSessionToken(null)); assertThrows(IllegalArgumentException.class, () -> SessionMapper.deserializeSessionToken(new byte[]{})); } private Types.SessionToken createSessionToken() { var lifetime = Types.SessionToken.Body.TokenLifetime.newBuilder() .setExp(1) .setIat(2) .setNbf(3) .build(); var body = Types.SessionToken.Body.newBuilder() .setId(ByteString.copyFrom(new byte[]{1, 2, 3, 4, 5})) .setSessionKey(ByteString.copyFrom(new byte[]{6, 7, 8, 9})) .setLifetime(lifetime) .build(); return Types.SessionToken.newBuilder() .setBody(body) .build(); } }