package net.frontlinesms.messaging.mms; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.util.Arrays; import java.util.List; import net.frontlinesms.data.domain.FrontlineMultimediaMessage; import net.frontlinesms.junit.BaseTestCase; import net.frontlinesms.mms.BinaryMmsMessagePart; import net.frontlinesms.mms.MmsMessage; import net.frontlinesms.mms.MmsMessagePart; public class MmsEmailTest extends BaseTestCase { public void testImageRenaming () { MmsMessage mmsMessage1 = mockMmsMessage("+79036600780", null, mockBinaryMmsMessagePart("Test_" + System.currentTimeMillis(), "image/jpeg", 5231)); MmsMessage mmsMessage2 = mockMmsMessage("+79036600780", null, mockBinaryMmsMessagePart("Test_" + System.currentTimeMillis() + ".", "image/gif", 5231)); MmsMessage mmsMessage3 = mockMmsMessage("+79036600780", null, mockBinaryMmsMessagePart("Test_" + System.currentTimeMillis() + ".gif", "image/jpeg", 5231)); FrontlineMultimediaMessage mms1 = MmsUtils.create(mmsMessage1); FrontlineMultimediaMessage mms2 = MmsUtils.create(mmsMessage2); FrontlineMultimediaMessage mms3 = MmsUtils.create(mmsMessage3); assertEquals(((BinaryMmsMessagePart) mmsMessage1.getParts().get(0)).getFilename() + ".jpeg", mms1.getMultimediaParts().get(0).getFilename()); assertEquals(((BinaryMmsMessagePart) mmsMessage2.getParts().get(0)).getFilename() + ".gif", mms2.getMultimediaParts().get(0).getFilename()); assertEquals(((BinaryMmsMessagePart) mmsMessage3.getParts().get(0)).getFilename(), mms3.getMultimediaParts().get(0).getFilename()); } public static MmsMessage mockMmsMessage(String sender, String subject, MmsMessagePart... parts) { MmsMessage m = mock(MmsMessage.class); List<MmsMessagePart> partList = Arrays.asList(parts); when(m.getParts()).thenReturn(partList); when(m.getSender()).thenReturn(sender); when(m.getSubject()).thenReturn(subject); return m; } public static BinaryMmsMessagePart mockBinaryMmsMessagePart(String filename, String mime, int size) { BinaryMmsMessagePart part = mock(BinaryMmsMessagePart.class); when(part.getFilename()).thenReturn(filename); when(part.getData()).thenReturn(new byte[size]); when(part.getMimeType()).thenReturn(mime); return part; } }