Compare commits

..

2 Commits

Author SHA1 Message Date
cff3c4a584 SpringBoot: HoldingAdintity.isPlayer 2023-08-24 12:01:58 +02:00
c7154864a2 SpringBoot: get CN from HoldingIdentity.x500Name 2023-08-23 13:41:15 +02:00
3 changed files with 90 additions and 1 deletions

View File

@ -1,6 +1,35 @@
package djmil.cordacheckers.cordaclient.pojo;
import javax.naming.InvalidNameException;
import javax.naming.ldap.LdapName;
import javax.naming.ldap.Rdn;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public record holdingIdentity(String x500Name, String shortHash) { }
public record holdingIdentity(String x500Name, String shortHash) {
public String getName() throws InvalidNameException {
LdapName ln = new LdapName(x500Name);
for(Rdn rdn : ln.getRdns()) {
if(rdn.getType().equalsIgnoreCase("CN")) {
return rdn.getValue().toString();
}
}
throw new IllegalArgumentException("CN was not found");
}
public boolean isPlayer() throws InvalidNameException {
LdapName ln = new LdapName(x500Name);
for(Rdn rdn : ln.getRdns()) {
if(rdn.getType().equalsIgnoreCase("OU")) {
return rdn.getValue().toString().equalsIgnoreCase("Player");
}
}
return false;
}
}

View File

@ -0,0 +1,33 @@
package djmil.cordacheckers;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import djmil.cordacheckers.cordaclient.CordaClient;
import djmil.cordacheckers.cordaclient.pojo.holdingIdentity;
import djmil.cordacheckers.cordaclient.pojo.virtualNodes;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.List;
import javax.naming.InvalidNameException;
@SpringBootTest
public class CordaClientTest {
@Autowired
CordaClient cordaclient;
@Test
void whenGetVirtualnode_thenListHoldingIdentity() throws GeneralSecurityException, IOException, InvalidNameException {
List<virtualNodes> vNodes = cordaclient.getVirtualnode();
holdingIdentity identity = vNodes.get(0).holdingIdentity();
assertThat(identity.getName()).isEqualTo("NotaryRep1");
}
}

View File

@ -0,0 +1,27 @@
package djmil.cordacheckers;
import org.junit.jupiter.api.Test;
import djmil.cordacheckers.cordaclient.pojo.holdingIdentity;
import static org.assertj.core.api.Assertions.assertThat;
import javax.naming.InvalidNameException;
public class HoldingIdentityTest {
@Test
public void isPlayerTest() throws InvalidNameException {
holdingIdentity alice = new holdingIdentity("CN=Alice, OU=Player, O=Checkers, L=Zug, C=CH", "HHHDDD");
holdingIdentity bob = new holdingIdentity("CN=Bob, OU=Other, O=Checkers, L=Zug, C=CH", "HHHDDD");
assertThat(alice.getName()).isEqualTo("Alice");
assertThat(alice.isPlayer()).isEqualTo(true);
assertThat(bob.getName()).isEqualTo("Bob");
assertThat(bob.isPlayer()).isEqualTo(false);
}
}