mirror of
https://github.com/AsamK/signal-cli.git
synced 2026-10-25 08:39:26 +00:00
Verify primary and linked call configuration through account state
This commit is contained in:
parent
3e308eb8d3
commit
397a03ba85
@ -1,17 +1,22 @@
|
||||
package org.asamk.signal.manager.helper;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import org.asamk.signal.manager.api.CallInfo;
|
||||
import org.asamk.signal.manager.storage.SignalAccount;
|
||||
import org.asamk.signal.manager.storage.recipients.TestRecipientId;
|
||||
import org.asamk.signal.manager.util.Utils;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.CsvSource;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
|
||||
import java.lang.invoke.MethodHandle;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.lang.invoke.MethodType;
|
||||
import java.math.BigInteger;
|
||||
import java.nio.channels.FileChannel;
|
||||
import java.nio.channels.FileLock;
|
||||
import java.nio.file.Path;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
|
||||
@ -191,6 +196,27 @@ class CallManagerTest {
|
||||
assertTrue(config.get("is_outgoing").booleanValue());
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@CsvSource({"1, true", "1, false", "2, true", "2, false", "127, true", "127, false"})
|
||||
void buildConfig_readsAccountDeviceId(int deviceId, boolean outgoing) throws Exception {
|
||||
var constructor = SignalAccount.class.getDeclaredConstructor(FileChannel.class, FileLock.class);
|
||||
constructor.setAccessible(true);
|
||||
var account = constructor.newInstance(null, null);
|
||||
var deviceField = SignalAccount.class.getDeclaredField("deviceId");
|
||||
deviceField.setAccessible(true);
|
||||
deviceField.setInt(account, deviceId);
|
||||
var builder = CallManager.class.getDeclaredMethod("buildConfig", CallManager.CallState.class);
|
||||
builder.setAccessible(true);
|
||||
|
||||
try (var manager = new CallManager(new Context(account, null, null, null, null, null))) {
|
||||
var state = new CallManager.CallState(-1L, CallInfo.State.IDLE, null, null, outgoing);
|
||||
var config = new ObjectMapper().readTree((String) builder.invoke(manager, state));
|
||||
assertEquals(deviceId, config.path("local_device_id").asInt());
|
||||
assertEquals(outgoing, config.path("is_outgoing").asBoolean());
|
||||
assertEquals("18446744073709551615", config.path("call_id").asText());
|
||||
}
|
||||
}
|
||||
|
||||
// ========================================================================
|
||||
// handleStateChange state machine tests
|
||||
//
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user