package com.workshare.msnos.core;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.UUID;
import com.workshare.msnos.core.payloads.NullPayload;
import com.workshare.msnos.soup.time.SystemTime;
// FIXME: kill me and replace
public class MockMessageHelper {
private final Message message;
private final Message.Type type;
private final Iden from;
private final Iden to;
private final UUID uuid;
private Message.Payload payload;
private String sig;
private String rnd;
private long when;
public MockMessageHelper(Message.Type type, Iden from, Iden to) {
this.type = type;
this.from = from;
this.to = to;
this.uuid = new UUID(111, SystemTime.asMillis());
message = mock(Message.class);
}
public MockMessageHelper data(Message.Payload payload) {
this.payload = payload;
return this;
}
public MockMessageHelper signed(String sig, String rnd) {
this.sig = sig;
this.rnd = rnd;
return this;
}
public MockMessageHelper at(long when) {
this.when = when;
return this;
}
public Message make() {
when(message.getSig()).thenReturn(sig);
when(message.getUuid()).thenReturn(uuid);
when(message.getRnd()).thenReturn(rnd);
when(message.getWhen()).thenReturn(when);
when(message.getType()).thenReturn(type);
when(message.getFrom()).thenReturn(from);
when(message.getTo()).thenReturn(to);
if (payload == null) when(message.getData()).thenReturn(new NullPayload());
else when(message.getData()).thenReturn(payload);
return message;
}
}