public Conversation(File conversationDataFile, File conversationMessagesFile, @NonNull EncryptionKey encryptionKey) { if (conversationDataFile == null) { throw new IllegalArgumentException("Data file is null"); } if (conversationMessagesFile == null) { throw new IllegalArgumentException("Messages file is null"); } if (encryptionKey == null) { throw new IllegalArgumentException("Data encryption key is null"); } this.conversationDataFile = conversationDataFile; this.conversationMessagesFile = conversationMessagesFile; this.encryptionKey = encryptionKey; conversationData = new ConversationData(); messageStore = new FileMessageStore(conversationMessagesFile, encryptionKey); messageStore.migrateLegacyStorage(); messageManager = new MessageManager(this, messageStore); // it's important to initialize message manager in a constructor since other SDK parts depend on it via Apptentive singleton }
@Test public void testDataChangeListeners() throws Exception { ConversationData data = new ConversationData(); testConversationListeners(data); }
@Test public void testDataChangeListenersWhenDeserialized() throws Exception { ConversationData data = new ConversationData(); File conversationFile = new File(conversationFolder.getRoot(), "conversation.bin"); new FileSerializer(conversationFile).serialize(data); data = (ConversationData) new FileSerializer(conversationFile).deserialize(); testConversationListeners(data); }
@Test public void testSerialization() { ConversationData expected = new ConversationData(); expected.setConversationId("jvnuveanesndndnadldbj"); expected.setConversationToken("watgsiovncsagjmcneiusdolnfcs");