public static VpncoinTxMessage create(String message) throws IllegalArgumentException { return new VpncoinTxMessage(message); }
static VpncoinTxMessage parseUnencrypted(String fullMessage) throws Exception { checkArgument(fullMessage.length() <= MAX_TX_DATA, "Maximum data size exceeded"); Matcher matcher = MESSAGE_REGEX.matcher(fullMessage); VpncoinTxMessage msg = new VpncoinTxMessage(); while (matcher.find()) { String part = matcher.group(); // Be more relaxed about each field size that we receive from the network if (part.startsWith(FROM)) { msg.from = part.replace(FROM, ""); } else if (part.startsWith(SUBJ)) { msg.subject = part.replace(SUBJ, ""); } else if (part.startsWith(MSG)) { msg.message = part.replace(MSG, ""); } } if (msg.isEmpty()) { throw new Exception("Message is empty"); } return msg; }
@Test public void messageToString() { VpncoinTxMessage message = new VpncoinTxMessage(FROM_USER, SUBJECT, MESSAGE); assertEquals(FROM_USER + "\n\n"+SUBJECT+"\n\n"+MESSAGE, message.toString()); message = new VpncoinTxMessage(MESSAGE); assertEquals(MESSAGE, message.toString()); } /*
@Test public void messageSerialization() { VpncoinTxMessage message = new VpncoinTxMessage(FROM_USER, SUBJECT, MESSAGE); String expected = "@FROM="+FROM_USER+"@SUBJ="+SUBJECT+"@MSG="+MESSAGE; assertArrayEquals(expected.getBytes(Charsets.UTF_8), message.serialize()); message = new VpncoinTxMessage(MESSAGE); assertNull(message.getFrom()); assertNull(message.getSubject()); assertArrayEquals(("@MSG=" + MESSAGE).getBytes(Charsets.UTF_8), message.serialize()); }