package com.jakeapp.core.synchronization;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.Date;
import java.util.UUID;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import com.jakeapp.jake.ics.UserId;
import com.jakeapp.violet.actions.global.MockUserIdFactory;
import com.jakeapp.violet.model.JakeObject;
import com.jakeapp.violet.model.LogEntry;
import com.jakeapp.violet.model.User;
import com.jakeapp.violet.protocol.files.IRequestMarshaller;
import com.jakeapp.violet.protocol.files.RequestFileMessage;
import com.jakeapp.violet.protocol.files.RequestMarshaller;
import com.jakeapp.violet.protocol.msg.ILogEntryMarshaller;
import com.jakeapp.violet.protocol.msg.IMessageMarshaller;
import com.jakeapp.violet.protocol.msg.PokeMessage;
import com.jakeapp.violet.protocol.msg.impl.LogEntryMarshaller;
import com.jakeapp.violet.protocol.msg.impl.MessageMarshaller;
public class PacketsTest {
private static final String REQUEST_MSG = "00000000-0000-0015-0000-00000000002a.file.00000000-0000-002a-0000-000000000015";
private ILogEntryMarshaller lm = new LogEntryMarshaller();
private IMessageMarshaller mm = new MessageMarshaller(lm);
private IRequestMarshaller rm = new RequestMarshaller();
private UUID projectid = new UUID(21, 42);
private UUID leid = new UUID(42, 21);
private Timestamp time = new Timestamp(new Date().getTime());
private User user = new User("me@localhost");
private String commitmsg = "fdsafdsafsafsd";
private String hash = "1234124125124313123124125124";
private JakeObject fo = new JakeObject("/my/file");
private LogEntry le;
private UserId userid;
@Before
public void setup() {
le = new LogEntry(leid, time, user, fo, commitmsg, hash, true);
userid = new MockUserIdFactory().get(user.getUserId());
}
@Test
public void testPoke() throws IOException {
PokeMessage msg = PokeMessage.createPokeMessage(projectid, userid, le);
Assert.assertEquals("00000000-0000-0015-0000-00000000002a.",
mm.serialize(msg));
}
@Test
public void testRequestLogs() {
RequestFileMessage msg = RequestFileMessage.createRequestLogsMessage(
projectid, userid);
Assert.assertEquals("00000000-0000-0015-0000-00000000002a.logs.",
rm.serialize(msg));
}
@Test
public void testRequestFile() {
RequestFileMessage msg = RequestFileMessage.createRequestFileMessage(
projectid, userid, le);
Assert.assertEquals(REQUEST_MSG, rm.serialize(msg));
}
@Test
public void testDecodeUUIDRequestFile() {
RequestFileMessage req = rm.decodeRequestFileMessage(REQUEST_MSG,
userid);
Assert.assertEquals(le.getId(), UUID.fromString(req.getIdentifier()));
}
@Test
public void testDecodeProjectUUIDRequestFile() {
RequestFileMessage req = rm.decodeRequestFileMessage(REQUEST_MSG,
userid);
Assert.assertEquals(projectid, req.getProjectId());
}
@Test
public void testDecodeUUID_InvalidRequestFile() {
RequestFileMessage req = rm.decodeRequestFileMessage("blabla", userid);
Assert.assertNull(req);
}
}