
4 changed files with 137 additions and 119 deletions
@ -1,53 +1,55 @@ |
|||||
package foundation.pEp.jniadapter.test.utils.model; |
package foundation.pEp.jniadapter.test.utils.model; |
||||
|
|
||||
import foundation.pEp.jniadapter.test.utils.transport.fsmqmanager.FsMQIdentity; |
|
||||
|
|
||||
import java.util.ArrayList; |
import java.util.ArrayList; |
||||
import java.util.HashMap; |
import java.util.HashMap; |
||||
import java.util.List; |
import java.util.List; |
||||
import java.util.Map; |
import java.util.Map; |
||||
|
import java.util.function.Supplier; |
||||
|
|
||||
|
|
||||
public class TestModel { |
public class TestModel<IdentityType extends TestIdentity, NodeType extends TestNode> { |
||||
private Map<Role, TestIdentity> idents = new HashMap<>(); |
private Map<Role, IdentityType> idents = new HashMap<>(); |
||||
private Map<NodeName, TestNode> nodes = new HashMap<>(); |
private Map<NodeName, NodeType> nodes = new HashMap<>(); |
||||
|
|
||||
public String dataDir = "../resources/";; |
public String dataDir = "../resources/"; |
||||
public String nodesDir = dataDir + "nodes/"; |
public String nodesDir = dataDir + "nodes/"; |
||||
|
|
||||
public TestModel() { |
public TestModel(Supplier<IdentityType> identityTypeSupplier, Supplier<NodeType> nodeTypeSupplier) { |
||||
// Creating all Roles
|
// Creating all Roles
|
||||
for (Role r : Role.values()) { |
for (Role r : Role.values()) { |
||||
new TestIdentity(this, r); |
IdentityType tmp = identityTypeSupplier.get(); |
||||
|
tmp.initialize(this,r); |
||||
|
addIdent(tmp); |
||||
} |
} |
||||
// Creating all Nodes
|
// Creating all Nodes
|
||||
for (NodeName n : NodeName.values()) { |
for (NodeName n : NodeName.values()) { |
||||
new TestNode(this, n); |
NodeType tmp = nodeTypeSupplier.get(); |
||||
|
tmp.initialize(this, n); |
||||
|
addNode(tmp); |
||||
} |
} |
||||
} |
} |
||||
|
|
||||
public void addIdent(TestIdentity ident) { |
public void addIdent(IdentityType ident) { |
||||
idents.put(ident.getRole(), ident); |
idents.put(ident.getRole(), ident); |
||||
} |
} |
||||
|
|
||||
public TestIdentity getIdent(Role name) { |
public IdentityType getIdent(Role name) { |
||||
return idents.get(name); |
return idents.get(name); |
||||
} |
} |
||||
|
|
||||
public List<TestIdentity> getAllIdents() { |
public List<IdentityType> getAllIdents() { |
||||
return new ArrayList<TestIdentity>(idents.values()); |
return new ArrayList<>(idents.values()); |
||||
} |
} |
||||
|
|
||||
public void addNode(TestNode node) { |
public void addNode(NodeType node) { |
||||
nodes.put(node.getName(), node); |
nodes.put(node.getName(), node); |
||||
} |
} |
||||
|
|
||||
public TestNode getNode(NodeName name) { |
public NodeType getNode(NodeName name) { |
||||
TestNode re = nodes.get(name); |
return nodes.get(name); |
||||
return re; |
|
||||
} |
} |
||||
|
|
||||
public List<TestNode> getAllNodes() { |
public List<NodeType> getAllNodes() { |
||||
return new ArrayList<TestNode>(nodes.values()); |
return new ArrayList<>(nodes.values()); |
||||
} |
} |
||||
} |
} |
||||
|
@ -1,74 +1,59 @@ |
|||||
package foundation.pEp.jniadapter.test.utils.model; |
package foundation.pEp.jniadapter.test.utils.model; |
||||
|
|
||||
import foundation.pEp.jniadapter.test.utils.transport.fsmqmanager.FsMQIdentity; |
public class TestNode<IdentityType extends TestIdentity> { |
||||
|
|
||||
import java.util.HashMap; |
|
||||
import java.util.HashSet; |
|
||||
import java.util.Map; |
|
||||
import java.util.Set; |
|
||||
|
|
||||
public class TestNode { |
|
||||
private NodeName name = null; |
private NodeName name = null; |
||||
private TestModel model = null; |
private TestModel<IdentityType,TestNode<IdentityType>> model = null; |
||||
// TODO: Just one role per node for now
|
// TODO: Just one role per node for now
|
||||
// private Set<Role> ownRoles = new HashSet();
|
// private Set<Role> ownRoles = new HashSet();
|
||||
private Role defaultRole = null; |
private Role defaultRole = null; |
||||
private String homeDir = null; |
private String homeDir = null; |
||||
private String transportDir = null; |
private String transportDir = null; |
||||
|
private boolean isInitialized = false; |
||||
|
|
||||
public TestNode(TestModel model, NodeName name) { |
public TestNode() { |
||||
this.model = model; |
} |
||||
|
|
||||
|
// this method has to be called before you can do ANYTHING with this object
|
||||
|
public void initialize(TestModel model, NodeName name) { |
||||
this.name = name; |
this.name = name; |
||||
homeDir = model.nodesDir + name.toString() + "/"; |
this.model = model; |
||||
transportDir = homeDir + "inboxes/"; |
this.homeDir = model.nodesDir + name.toString() + "/"; |
||||
this.model.addNode(this); |
this.transportDir = homeDir + "inboxes/"; |
||||
|
this.isInitialized = true; |
||||
} |
} |
||||
|
|
||||
public NodeName getName() { |
public NodeName getName() { |
||||
|
ensureInitialized(); |
||||
return name; |
return name; |
||||
} |
} |
||||
|
|
||||
// public TestModel getModel() {
|
public void setDefaultRole(Role role) { |
||||
// return model;
|
ensureInitialized(); |
||||
// }
|
|
||||
|
|
||||
public void setRole(Role role) { |
|
||||
this.defaultRole = role; |
this.defaultRole = role; |
||||
TestIdentity ident = model.getIdent(role); |
IdentityType ident = model.getIdent(role); |
||||
if(!ident.hasNode(getName())) { |
if (!ident.hasNode(getName())) { |
||||
ident.addNode(this); |
ident.addNode(this); |
||||
} |
} |
||||
} |
} |
||||
|
|
||||
public TestIdentity getIdent() { |
public IdentityType getIdent() { |
||||
|
ensureInitialized(); |
||||
return model.getIdent(defaultRole); |
return model.getIdent(defaultRole); |
||||
} |
} |
||||
|
|
||||
// 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<TestIdentity> getIdents() {
|
|
||||
// Set<TestIdentity> ret = new HashSet();
|
|
||||
// for(Role r : ownRoles) {
|
|
||||
// ret.add(model.getIdent(r));
|
|
||||
// }
|
|
||||
// return ret;
|
|
||||
// }
|
|
||||
|
|
||||
public String getHomeDir() { |
public String getHomeDir() { |
||||
|
ensureInitialized(); |
||||
return homeDir; |
return homeDir; |
||||
} |
} |
||||
|
|
||||
public String getTransportDir() { |
public String getTransportDir() { |
||||
|
ensureInitialized(); |
||||
return transportDir; |
return transportDir; |
||||
} |
} |
||||
|
|
||||
|
private void ensureInitialized() { |
||||
|
if (!isInitialized) { |
||||
|
throw new IllegalStateException("Not initialized"); |
||||
|
} |
||||
|
} |
||||
} |
} |
||||
|
@ -0,0 +1,61 @@ |
|||||
|
package foundation.pEp.jniadapter.test.utils.model; |
||||
|
|
||||
|
import foundation.pEp.jniadapter.Identity; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
public class pEpTestIdentity extends TestIdentity { |
||||
|
private List<pEpTestKeyPair> keys = new ArrayList<>(); |
||||
|
public Identity pEpIdent = null; |
||||
|
private pEpTestKeyPair defaultKey = null; |
||||
|
private pEpTestKeyPair defaultKeyPP = null; |
||||
|
|
||||
|
public pEpTestIdentity() { |
||||
|
super(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void initialize(TestModel model, Role role) { |
||||
|
super.initialize(model, role); |
||||
|
pEpIdent = new Identity(); |
||||
|
pEpIdent.username = role.toString(); |
||||
|
pEpIdent.address = role + "@peptest.org"; |
||||
|
} |
||||
|
|
||||
|
public void addKey(pEpTestKeyPair kp, boolean isDefault) { |
||||
|
keys.add(kp); |
||||
|
if (isDefault) { |
||||
|
if (kp.getType() == KeyType.NORMAL) { |
||||
|
defaultKey = kp; |
||||
|
} else { |
||||
|
defaultKeyPP = kp; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public pEpTestKeyPair getDefaultKey(boolean passphrase) { |
||||
|
if (!passphrase) { |
||||
|
return defaultKey; |
||||
|
} else { |
||||
|
return defaultKeyPP; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public List<pEpTestKeyPair> getAllKeys() { |
||||
|
return keys; |
||||
|
} |
||||
|
|
||||
|
public List<pEpTestKeyPair> getNormalKeys() { |
||||
|
return keys.stream().filter(i -> { |
||||
|
return i.getType().equals(KeyType.NORMAL); |
||||
|
}).collect(Collectors.toList()); |
||||
|
} |
||||
|
|
||||
|
public List<pEpTestKeyPair> getPassphraseKeys() { |
||||
|
return keys.stream().filter(i -> { |
||||
|
return i.getType().equals(KeyType.PASSPHRASE); |
||||
|
}).collect(Collectors.toList()); |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue