diff --git a/test/java/foundation/pEp/jniadapter/test/utils/model/Node.java b/test/java/foundation/pEp/jniadapter/test/utils/model/NodeName.java similarity index 96% rename from test/java/foundation/pEp/jniadapter/test/utils/model/Node.java rename to test/java/foundation/pEp/jniadapter/test/utils/model/NodeName.java index e06212c..e203195 100644 --- a/test/java/foundation/pEp/jniadapter/test/utils/model/Node.java +++ b/test/java/foundation/pEp/jniadapter/test/utils/model/NodeName.java @@ -1,6 +1,6 @@ package foundation.pEp.jniadapter.test.utils.model; -public enum Node { +public enum NodeName { NODE_A1() { public String toString() { return "node_a1"; diff --git a/test/java/foundation/pEp/jniadapter/test/utils/model/TestIdentity.java b/test/java/foundation/pEp/jniadapter/test/utils/model/TestIdentity.java index 7770c4f..852b768 100644 --- a/test/java/foundation/pEp/jniadapter/test/utils/model/TestIdentity.java +++ b/test/java/foundation/pEp/jniadapter/test/utils/model/TestIdentity.java @@ -1,29 +1,66 @@ package foundation.pEp.jniadapter.test.utils.model; import foundation.pEp.jniadapter.Identity; +import foundation.pEp.jniadapter.test.utils.transport.fsmqmanager.FsMQIdentity; -import java.util.ArrayList; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; public class TestIdentity { + private TestModel model = null; private Role role = null; + private Role defaultPartner = null; public Identity pEpIdent = null; private List keys = new ArrayList<>(); private TestKeyPair defaultKey = null; private TestKeyPair defaultKeyPP = null; + private Map transportIdents = new HashMap<>(); - public TestIdentity(Role role) { + public TestIdentity(TestModel model, Role role) { + this.model = model; this.role = role; pEpIdent = new Identity(); pEpIdent.username = role.toString(); pEpIdent.address = role + "@peptest.org"; + this.model.addIdent(this); } +// public TestModel getModel() { +// return model; +// } + public Role getRole() { return role; } + public TestIdentity getDefaultPartner() { + return model.getIdent(defaultPartner); + } + + public void setDefaultPartner(Role defaultPartner) { + this.defaultPartner = defaultPartner; + } + + public boolean hasNode(NodeName nodeName) { + return transportIdents.keySet().contains(nodeName); + } + + public void addNode(TestNode node) { + FsMQIdentity tmp = createTransportIdentity(node); + transportIdents.put(node.getName(),tmp); + if (node.getIdent().getRole() != getRole()) { + node.setRole(getRole()); + } + } + + public List getAllTransportIdents() { + return new ArrayList<>(transportIdents.values()); + } + + public FsMQIdentity getTransportIdent(NodeName nodeName) { + return transportIdents.get(nodeName); + } + public void addKey(TestKeyPair kp, boolean isDefault) { keys.add(kp); if (isDefault) { @@ -35,6 +72,7 @@ public class TestIdentity { } } + public TestKeyPair getDefaultKey(boolean passphrase) { if (!passphrase) { return defaultKey; @@ -58,4 +96,10 @@ public class TestIdentity { return i.getType().equals(KeyType.PASSPHRASE); }).collect(Collectors.toList()); } + + private FsMQIdentity createTransportIdentity(TestNode node) { + String transportAddress = node.getName().toString() + getRole().toString(); + String transportDir = node.getTransportDir() + getRole().toString(); + return new FsMQIdentity(transportAddress, transportDir); + } } diff --git a/test/java/foundation/pEp/jniadapter/test/utils/model/TestModel.java b/test/java/foundation/pEp/jniadapter/test/utils/model/TestModel.java index bd10926..7877f2a 100644 --- a/test/java/foundation/pEp/jniadapter/test/utils/model/TestModel.java +++ b/test/java/foundation/pEp/jniadapter/test/utils/model/TestModel.java @@ -1,34 +1,53 @@ package foundation.pEp.jniadapter.test.utils.model; +import foundation.pEp.jniadapter.test.utils.transport.fsmqmanager.FsMQIdentity; + +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; + public class TestModel { private Map idents = new HashMap<>(); - private Map nodes = new HashMap<>(); - private TestNode myNode = null; + private Map nodes = new HashMap<>(); - public TestModel() { - } + public String dataDir = "../resources/";; + public String nodesDir = dataDir + "nodes/"; - public TestNode getMyNode() { - return myNode; + public TestModel() { + // Creating all Roles + for (Role r : Role.values()) { + new TestIdentity(this, r); + } + // Creating all Nodes + for (NodeName n : NodeName.values()) { + new TestNode(this, n); + } } - public void add(TestIdentity ident) { + public void addIdent(TestIdentity ident) { idents.put(ident.getRole(), ident); } - public TestIdentity get(Role name) { + public TestIdentity getIdent(Role name) { return idents.get(name); } - public void add(TestNode node) { + public List getAllIdents() { + return new ArrayList(idents.values()); + } + + public void addNode(TestNode node) { nodes.put(node.getName(), node); } -// public TestNode get(Node name) { -// return nodes.get(name); -// } + public TestNode getNode(NodeName name) { + TestNode re = nodes.get(name); + return re; + } + public List getAllNodes() { + return new ArrayList(nodes.values()); + } } diff --git a/test/java/foundation/pEp/jniadapter/test/utils/model/TestNode.java b/test/java/foundation/pEp/jniadapter/test/utils/model/TestNode.java index 7dbedb8..60d8838 100644 --- a/test/java/foundation/pEp/jniadapter/test/utils/model/TestNode.java +++ b/test/java/foundation/pEp/jniadapter/test/utils/model/TestNode.java @@ -1,34 +1,74 @@ package foundation.pEp.jniadapter.test.utils.model; +import foundation.pEp.jniadapter.test.utils.transport.fsmqmanager.FsMQIdentity; + import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; public class TestNode { - private Node name = null; - private Map ownIdents = new HashMap<>(); - private String TransportAddress = null; + private NodeName name = null; + private TestModel model = null; + // TODO: Just one role per node for now + // private Set ownRoles = new HashSet(); + private Role defaultRole = null; + private String homeDir = null; + private String transportDir = null; - public TestNode(Node name) { + public TestNode(TestModel model, NodeName name) { + this.model = model; this.name = name; + homeDir = model.nodesDir + name.toString() + "/"; + transportDir = homeDir + "inboxes/"; + this.model.addNode(this); } - public Node getName() { + public NodeName getName() { return name; } - public Map getOwnIdents() { - return ownIdents; +// public TestModel getModel() { +// return model; +// } + + public void setRole(Role role) { + this.defaultRole = role; + TestIdentity ident = model.getIdent(role); + if(!ident.hasNode(getName())) { + ident.addNode(this); + } } - public void addOwnIdent(TestIdentity ident) { - this.ownIdents.put(ident.getRole(), ident); + public TestIdentity getIdent() { + return model.getIdent(defaultRole); } - public String getTransportAddress() { - return TransportAddress; +// public void addRole(Role role) { +// this.ownRoles.add(role); +// TestIdentity ident = model.getIdent(role); +// if(!ident.hasNode(getName())) { +// ident.addNode(this); +// } +// } + +// public boolean hasRole(Role role) { +// return ownRoles.contains(role); +// } + +// public Set getIdents() { +// Set ret = new HashSet(); +// for(Role r : ownRoles) { +// ret.add(model.getIdent(r)); +// } +// return ret; +// } + + public String getHomeDir() { + return homeDir; } - public void setTransportAddress(String transportAddress) { - TransportAddress = transportAddress; + public String getTransportDir() { + return transportDir; } }