Fixed system test (this time for real)
This commit is contained in:
parent
678a48ac3f
commit
4f0b2cb8f8
@ -153,7 +153,6 @@ public class BitmessageContext {
|
|||||||
.to(to)
|
.to(to)
|
||||||
.message(subject, message)
|
.message(subject, message)
|
||||||
.build();
|
.build();
|
||||||
labeler().markAsSending(msg);
|
|
||||||
send(msg);
|
send(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,7 +160,7 @@ public class BitmessageContext {
|
|||||||
if (msg.getFrom() == null || msg.getFrom().getPrivateKey() == null) {
|
if (msg.getFrom() == null || msg.getFrom().getPrivateKey() == null) {
|
||||||
throw new IllegalArgumentException("'From' must be an identity, i.e. have a private key.");
|
throw new IllegalArgumentException("'From' must be an identity, i.e. have a private key.");
|
||||||
}
|
}
|
||||||
msg.setStatus(Plaintext.Status.DRAFT);
|
labeler().markAsSending(msg);
|
||||||
BitmessageAddress to = msg.getTo();
|
BitmessageAddress to = msg.getTo();
|
||||||
if (to != null) {
|
if (to != null) {
|
||||||
if (to.getPubkey() == null) {
|
if (to.getPubkey() == null) {
|
||||||
|
@ -24,6 +24,7 @@ import ch.dissem.bitmessage.entity.valueobject.InventoryVector;
|
|||||||
import ch.dissem.bitmessage.exception.DecryptionFailedException;
|
import ch.dissem.bitmessage.exception.DecryptionFailedException;
|
||||||
import ch.dissem.bitmessage.ports.Labeler;
|
import ch.dissem.bitmessage.ports.Labeler;
|
||||||
import ch.dissem.bitmessage.ports.NetworkHandler;
|
import ch.dissem.bitmessage.ports.NetworkHandler;
|
||||||
|
import ch.dissem.bitmessage.utils.TTL;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -111,7 +112,7 @@ class DefaultMessageListener implements NetworkHandler.MessageListener {
|
|||||||
for (Plaintext msg : messages) {
|
for (Plaintext msg : messages) {
|
||||||
ctx.getLabeler().markAsSending(msg);
|
ctx.getLabeler().markAsSending(msg);
|
||||||
ctx.getMessageRepository().save(msg);
|
ctx.getMessageRepository().save(msg);
|
||||||
ctx.send(msg, +2 * DAY);
|
ctx.send(msg, TTL.msg());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
package ch.dissem.bitmessage;
|
package ch.dissem.bitmessage;
|
||||||
|
|
||||||
import ch.dissem.bitmessage.entity.*;
|
import ch.dissem.bitmessage.entity.*;
|
||||||
import ch.dissem.bitmessage.entity.payload.Broadcast;
|
|
||||||
import ch.dissem.bitmessage.entity.payload.Msg;
|
import ch.dissem.bitmessage.entity.payload.Msg;
|
||||||
import ch.dissem.bitmessage.entity.payload.ObjectPayload;
|
|
||||||
import ch.dissem.bitmessage.entity.payload.Pubkey;
|
import ch.dissem.bitmessage.entity.payload.Pubkey;
|
||||||
import ch.dissem.bitmessage.ports.Cryptography;
|
import ch.dissem.bitmessage.ports.Cryptography;
|
||||||
import ch.dissem.bitmessage.ports.MessageRepository;
|
import ch.dissem.bitmessage.ports.MessageRepository;
|
||||||
|
@ -43,7 +43,7 @@ public class DefaultLabeler implements Labeler, InternalContext.ContextHolder {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void markAsSending(Plaintext msg) {
|
public void markAsSending(Plaintext msg) {
|
||||||
if (msg.getTo() != null || msg.getTo().getPubkey() == null) {
|
if (msg.getTo() != null && msg.getTo().getPubkey() == null) {
|
||||||
msg.setStatus(PUBKEY_REQUESTED);
|
msg.setStatus(PUBKEY_REQUESTED);
|
||||||
} else {
|
} else {
|
||||||
msg.setStatus(DOING_PROOF_OF_WORK);
|
msg.setStatus(DOING_PROOF_OF_WORK);
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package ch.dissem.bitmessage.ports;
|
package ch.dissem.bitmessage.ports;
|
||||||
|
|
||||||
import ch.dissem.bitmessage.entity.BitmessageAddress;
|
|
||||||
import ch.dissem.bitmessage.entity.ObjectMessage;
|
import ch.dissem.bitmessage.entity.ObjectMessage;
|
||||||
import ch.dissem.bitmessage.entity.Plaintext;
|
import ch.dissem.bitmessage.entity.Plaintext;
|
||||||
|
|
||||||
|
@ -4,13 +4,19 @@ import ch.dissem.bitmessage.cryptography.bc.BouncyCryptography;
|
|||||||
import ch.dissem.bitmessage.entity.BitmessageAddress;
|
import ch.dissem.bitmessage.entity.BitmessageAddress;
|
||||||
import ch.dissem.bitmessage.entity.Plaintext;
|
import ch.dissem.bitmessage.entity.Plaintext;
|
||||||
import ch.dissem.bitmessage.networking.DefaultNetworkHandler;
|
import ch.dissem.bitmessage.networking.DefaultNetworkHandler;
|
||||||
|
import ch.dissem.bitmessage.ports.DefaultLabeler;
|
||||||
import ch.dissem.bitmessage.repository.*;
|
import ch.dissem.bitmessage.repository.*;
|
||||||
import ch.dissem.bitmessage.utils.TTL;
|
import ch.dissem.bitmessage.utils.TTL;
|
||||||
import org.junit.*;
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import static ch.dissem.bitmessage.entity.payload.Pubkey.Feature.DOES_ACK;
|
||||||
import static ch.dissem.bitmessage.utils.UnixTime.MINUTE;
|
import static ch.dissem.bitmessage.utils.UnixTime.MINUTE;
|
||||||
import static org.hamcrest.CoreMatchers.equalTo;
|
import static org.hamcrest.CoreMatchers.equalTo;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
@ -47,9 +53,10 @@ public class SystemTest {
|
|||||||
.networkHandler(new DefaultNetworkHandler())
|
.networkHandler(new DefaultNetworkHandler())
|
||||||
.cryptography(new BouncyCryptography())
|
.cryptography(new BouncyCryptography())
|
||||||
.listener(aliceListener)
|
.listener(aliceListener)
|
||||||
|
.labeler(new DebugLabeler("Alice"))
|
||||||
.build();
|
.build();
|
||||||
alice.startup();
|
alice.startup();
|
||||||
aliceIdentity = alice.createIdentity(false);
|
aliceIdentity = alice.createIdentity(false, DOES_ACK);
|
||||||
|
|
||||||
JdbcConfig bobDB = new JdbcConfig("jdbc:h2:mem:bob;DB_CLOSE_DELAY=-1", "sa", "");
|
JdbcConfig bobDB = new JdbcConfig("jdbc:h2:mem:bob;DB_CLOSE_DELAY=-1", "sa", "");
|
||||||
bob = new BitmessageContext.Builder()
|
bob = new BitmessageContext.Builder()
|
||||||
@ -62,9 +69,13 @@ public class SystemTest {
|
|||||||
.networkHandler(new DefaultNetworkHandler())
|
.networkHandler(new DefaultNetworkHandler())
|
||||||
.cryptography(new BouncyCryptography())
|
.cryptography(new BouncyCryptography())
|
||||||
.listener(bobListener)
|
.listener(bobListener)
|
||||||
|
.labeler(new DebugLabeler("Bob"))
|
||||||
.build();
|
.build();
|
||||||
bob.startup();
|
bob.startup();
|
||||||
bobIdentity = bob.createIdentity(false);
|
bobIdentity = bob.createIdentity(false, DOES_ACK);
|
||||||
|
|
||||||
|
((DebugLabeler) alice.labeler()).init(aliceIdentity, bobIdentity);
|
||||||
|
((DebugLabeler) bob.labeler()).init(aliceIdentity, bobIdentity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
@ -95,4 +106,83 @@ public class SystemTest {
|
|||||||
assertThat(plaintext.getType(), equalTo(Plaintext.Type.BROADCAST));
|
assertThat(plaintext.getType(), equalTo(Plaintext.Type.BROADCAST));
|
||||||
assertThat(plaintext.getText(), equalTo(originalMessage));
|
assertThat(plaintext.getText(), equalTo(originalMessage));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static class DebugLabeler extends DefaultLabeler {
|
||||||
|
private final Logger LOG = LoggerFactory.getLogger("Labeler");
|
||||||
|
final String name;
|
||||||
|
String alice;
|
||||||
|
String bob;
|
||||||
|
|
||||||
|
private DebugLabeler(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init(BitmessageAddress alice, BitmessageAddress bob) {
|
||||||
|
this.alice = alice.getAddress();
|
||||||
|
this.bob = bob.getAddress();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setLabels(Plaintext msg) {
|
||||||
|
LOG.info(name + ": From " + name(msg.getFrom()) + ": Received");
|
||||||
|
super.setLabels(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void markAsDraft(Plaintext msg) {
|
||||||
|
LOG.info(name + ": From " + name(msg.getFrom()) + ": Draft");
|
||||||
|
super.markAsDraft(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void markAsSending(Plaintext msg) {
|
||||||
|
LOG.info(name + ": From " + name(msg.getFrom()) + ": Sending");
|
||||||
|
super.markAsSending(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void markAsSent(Plaintext msg) {
|
||||||
|
LOG.info(name + ": From " + name(msg.getFrom()) + ": Sent");
|
||||||
|
super.markAsSent(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void markAsAcknowledged(Plaintext msg) {
|
||||||
|
LOG.info(name + ": From " + name(msg.getFrom()) + ": Acknowledged");
|
||||||
|
super.markAsAcknowledged(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void markAsRead(Plaintext msg) {
|
||||||
|
LOG.info(name + ": From " + name(msg.getFrom()) + ": Read");
|
||||||
|
super.markAsRead(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void markAsUnread(Plaintext msg) {
|
||||||
|
LOG.info(name + ": From " + name(msg.getFrom()) + ": Unread");
|
||||||
|
super.markAsUnread(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(Plaintext msg) {
|
||||||
|
LOG.info(name + ": From " + name(msg.getFrom()) + ": Cleared");
|
||||||
|
super.delete(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void archive(Plaintext msg) {
|
||||||
|
LOG.info(name + ": From " + name(msg.getFrom()) + ": Archived");
|
||||||
|
super.archive(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String name(BitmessageAddress address) {
|
||||||
|
if (alice.equals(address.getAddress()))
|
||||||
|
return "Alice";
|
||||||
|
else if (bob.equals(address.getAddress()))
|
||||||
|
return "Bob";
|
||||||
|
else
|
||||||
|
return "Unknown (" + address.getAddress() + ")";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user