use of com.yahoo.rdl.Schema in project athenz by yahoo.
the class ZMSCoreTest method testRolesMethod.
@Test
public void testRolesMethod() {
Schema schema = ZMSSchema.instance();
Validator validator = new Validator(schema);
// RoleAuditlog test
RoleAuditLog ral = new RoleAuditLog().setMember("user.test").setAdmin("user.admin").setCreated(Timestamp.fromMillis(123456789123L)).setAction("add").setAuditRef("zmstest");
Result result = validator.validate(ral, "RoleAuditLog");
assertTrue(result.valid);
assertEquals(ral.getMember(), "user.test");
assertEquals(ral.getAdmin(), "user.admin");
assertEquals(ral.getCreated(), Timestamp.fromMillis(123456789123L));
assertEquals(ral.getAction(), "add");
assertEquals(ral.getAuditRef(), "zmstest");
RoleAuditLog ral2 = new RoleAuditLog().setMember("user.test").setAdmin("user.admin").setCreated(Timestamp.fromMillis(123456789123L)).setAction("add");
assertTrue(ral.equals(ral));
ral2.setAuditRef(null);
assertFalse(ral2.equals(ral));
ral2.setAction(null);
assertFalse(ral2.equals(ral));
ral2.setCreated(null);
assertFalse(ral2.equals(ral));
ral2.setAdmin(null);
assertFalse(ral2.equals(ral));
ral2.setMember(null);
assertFalse(ral2.equals(ral));
assertFalse(ral2.equals(new String()));
List<RoleAuditLog> rall = Arrays.asList(ral);
// Role test
List<String> members = Arrays.asList("user.boynton");
Role r = new Role().setName("sys.auth:role.admin").setMembers(members).setModified(Timestamp.fromMillis(123456789123L)).setTrust("domain.admin").setAuditLog(rall);
result = validator.validate(r, "Role");
assertTrue(result.valid);
assertEquals(r.getName(), "sys.auth:role.admin");
assertEquals(r.getModified(), Timestamp.fromMillis(123456789123L));
assertEquals(r.getMembers(), members);
assertEquals(r.getTrust(), "domain.admin");
assertEquals(r.getAuditLog(), rall);
Role r2 = new Role().setName("sys.auth:role.admin").setMembers(members).setModified(Timestamp.fromMillis(123456789123L)).setTrust("domain.admin");
assertTrue(r.equals(r));
r2.setAuditLog(null);
assertFalse(r2.equals(r));
r2.setTrust(null);
assertFalse(r2.equals(r));
r2.setMembers(null);
assertFalse(r2.equals(r));
r2.setModified(null);
assertFalse(r2.equals(r));
r2.setName(null);
assertFalse(r2.equals(r));
assertFalse(r.equals(new String()));
List<Role> rl = Arrays.asList(r);
// Roles test
Roles rs = new Roles().setList(rl);
result = validator.validate(rs, "Roles");
assertTrue(result.valid);
assertEquals(rs.getList(), rl);
assertTrue(rs.equals(rs));
assertFalse(rs.equals(new Roles()));
assertFalse(rs.equals(new String()));
}
use of com.yahoo.rdl.Schema in project athenz by yahoo.
the class ZMSCoreTest method testDomainMethod.
@Test
public void testDomainMethod() {
Schema schema = ZMSSchema.instance();
Validator validator = new Validator(schema);
Domain d = new Domain().init();
d.setName("test.domain").setModified(Timestamp.fromMillis(123456789123L)).setId(UUID.fromString("test-id")).setDescription("test desc").setOrg("test-org").setEnabled(true).setAuditEnabled(true).setAccount("user.test").setYpmId(1);
Result result = validator.validate(d, "Domain");
assertTrue(result.valid);
assertEquals(d.getName(), "test.domain");
assertEquals(d.getModified(), Timestamp.fromMillis(123456789123L));
assertEquals(d.getId(), UUID.fromString("test-id"));
assertEquals(d.getDescription(), "test desc");
assertEquals(d.getOrg(), "test-org");
assertTrue(d.getEnabled());
assertTrue(d.getAuditEnabled());
assertEquals(d.getAccount(), "user.test");
assertEquals((int) d.getYpmId(), 1);
Domain d2 = new Domain().setName("test.domain").setModified(Timestamp.fromMillis(123456789123L)).setId(UUID.fromString("test-id")).setDescription("test desc").setOrg("test-org").setEnabled(true).setAuditEnabled(true).setAccount("user.test");
assertTrue(d.equals(d));
d2.setYpmId(null);
assertFalse(d2.equals(d));
d2.setAccount(null);
assertFalse(d2.equals(d));
d2.setAuditEnabled(null);
assertFalse(d2.equals(d));
d2.setEnabled(null);
assertFalse(d2.equals(d));
d2.setOrg(null);
assertFalse(d2.equals(d));
d2.setDescription(null);
assertFalse(d2.equals(d));
d2.setId(null);
assertFalse(d2.equals(d));
d2.setModified(null);
assertFalse(d2.equals(d));
d2.setName(null);
assertFalse(d2.equals(d));
assertFalse(d2.equals(null));
assertFalse(d.equals(new String()));
}
use of com.yahoo.rdl.Schema in project athenz by yahoo.
the class ZMSCoreTest method testTenancyMethod.
@Test
public void testTenancyMethod() {
Schema schema = ZMSSchema.instance();
Validator validator = new Validator(schema);
List<String> rg = Arrays.asList("test-resource");
Tenancy t = new Tenancy().setDomain("test.domain").setService("test-service").setResourceGroups(rg);
Result result = validator.validate(t, "Tenancy");
assertTrue(result.valid);
assertEquals(t.getDomain(), "test.domain");
assertEquals(t.getService(), "test-service");
assertEquals(t.getResourceGroups(), rg);
Tenancy t2 = new Tenancy().setDomain("test.domain").setService("test-service");
assertTrue(t.equals(t));
t2.setResourceGroups(null);
assertFalse(t2.equals(t));
t2.setService(null);
assertFalse(t2.equals(t));
t2.setDomain(null);
assertFalse(t2.equals(t));
assertFalse(t2.equals(null));
assertFalse(t.equals(new String()));
}
use of com.yahoo.rdl.Schema in project athenz by yahoo.
the class ZMSCoreTest method testSignedDomainsMethod.
@Test
public void testSignedDomainsMethod() {
Schema schema = ZMSSchema.instance();
Validator validator = new Validator(schema);
Role r = new Role().setName("test.role");
List<Role> rl = Arrays.asList(r);
// assertion test
Assertion a = new Assertion().setRole("test.role").setResource("test.resource.*").setAction("test-action").setEffect(AssertionEffect.ALLOW).setId(0L);
Result result = validator.validate(a, "Assertion");
assertTrue(result.valid);
assertEquals(a.getRole(), "test.role");
assertEquals(a.getResource(), "test.resource.*");
assertEquals(a.getAction(), "test-action");
assertEquals(a.getEffect(), AssertionEffect.fromString("ALLOW"));
assertEquals((long) a.getId(), 0L);
Assertion a2 = new Assertion().setRole("test.role").setResource("test.resource.*").setAction("test-action").setEffect(AssertionEffect.ALLOW);
assertTrue(a.equals(a));
a2.setId(null);
assertFalse(a2.equals(a));
a2.setEffect(null);
assertFalse(a2.equals(a));
a2.setAction(null);
assertFalse(a2.equals(a));
a2.setResource(null);
assertFalse(a2.equals(a));
a2.setRole(null);
assertFalse(a2.equals(a));
assertFalse(a.equals(new String()));
List<Assertion> al = Arrays.asList(a);
// Policy test
Policy p = new Policy().setName("test-policy").setModified(Timestamp.fromMillis(123456789123L)).setAssertions(al);
result = validator.validate(p, "Policy");
assertTrue(result.valid);
assertEquals(p.getName(), "test-policy");
assertEquals(p.getModified(), Timestamp.fromMillis(123456789123L));
assertEquals(p.getAssertions(), al);
Policy p2 = new Policy().setName("test-policy").setModified(Timestamp.fromMillis(123456789123L));
assertTrue(p.equals(p));
p2.setAssertions(null);
assertFalse(p2.equals(p));
p2.setModified(null);
assertFalse(p2.equals(p));
p2.setName(null);
assertFalse(p2.equals(p));
assertFalse(p.equals(new String()));
// PublicKeyEntry test
PublicKeyEntry pke = new PublicKeyEntry().setId("v1").setKey("pubkey====");
result = validator.validate(pke, "PublicKeyEntry");
assertTrue(result.valid);
assertEquals(pke.getId(), "v1");
assertEquals(pke.getKey(), "pubkey====");
PublicKeyEntry pke2 = new PublicKeyEntry().setId("v1").setKey("pubkey====");
assertTrue(pke2.equals(pke));
pke2.setId(null);
assertFalse(pke2.equals(pke));
pke2.setId("v1");
pke2.setKey(null);
assertFalse(pke2.equals(pke));
assertFalse(pke.equals(new String()));
// Entity test
Entity e = new Entity().setName("test.entity").setValue(new Struct().with("key", "test"));
result = validator.validate(e, "Entity");
// assertTrue(result.valid, result.error);
assertEquals(e.getName(), "test.entity");
assertTrue(e.getValue().equals(new Struct().with("key", (Object) "test")));
Entity e2 = new Entity().setName("test.entity").setValue(new Struct().with("key", "test"));
assertTrue(e2.equals(e));
e2.setValue(null);
assertFalse(e2.equals(e));
e2.setValue(new Struct().with("key", "test"));
e2.setName(null);
assertFalse(e2.equals(e));
assertFalse(e.equals(new String()));
List<Policy> pl = Arrays.asList(p);
// DomainPolicies test
DomainPolicies dps = new DomainPolicies().setDomain("dps.domain").setPolicies(pl);
result = validator.validate(dps, "DomainPolicies");
assertTrue(result.valid);
assertEquals(dps.getDomain(), "dps.domain");
assertEquals(dps.getPolicies(), pl);
DomainPolicies dps2 = new DomainPolicies().setDomain("dps.domain");
assertTrue(dps.equals(dps));
dps2.setPolicies(null);
assertFalse(dps2.equals(dps));
dps2.setDomain(null);
assertFalse(dps2.equals(dps));
assertFalse(dps.equals(new String()));
// SignedPolicies test
SignedPolicies sp = new SignedPolicies().setContents(dps).setSignature("zmssignature").setKeyId("v1");
result = validator.validate(sp, "SignedPolicies");
assertTrue(result.valid);
assertEquals(sp.getContents(), dps);
assertEquals(sp.getSignature(), "zmssignature");
assertEquals(sp.getKeyId(), "v1");
SignedPolicies sp2 = new SignedPolicies().setContents(dps).setSignature("zmssignature").setKeyId("v1");
assertTrue(sp2.equals(sp));
sp2.setKeyId(null);
assertFalse(sp2.equals(sp));
sp2.setKeyId("v1");
sp2.setSignature(null);
assertFalse(sp2.equals(sp));
sp2.setSignature("zmssignature");
sp2.setContents(null);
assertFalse(sp2.equals(sp));
assertFalse(sp.equals(new String()));
List<PublicKeyEntry> pkel = Arrays.asList(pke);
List<String> hosts = Arrays.asList("test.host");
// ServiceIdentity test
ServiceIdentity si = new ServiceIdentity().setName("test.service").setPublicKeys(pkel).setProviderEndpoint("http://test.endpoint").setModified(Timestamp.fromMillis(123456789123L)).setExecutable("exec/path").setHosts(hosts).setUser("user.test").setGroup("test.group");
result = validator.validate(si, "ServiceIdentity");
assertTrue(result.valid);
assertEquals(si.getName(), "test.service");
assertEquals(si.getPublicKeys(), pkel);
assertEquals(si.getProviderEndpoint(), "http://test.endpoint");
assertEquals(si.getModified(), Timestamp.fromMillis(123456789123L));
assertEquals(si.getExecutable(), "exec/path");
assertEquals(si.getHosts(), hosts);
assertEquals(si.getUser(), "user.test");
assertEquals(si.getGroup(), "test.group");
ServiceIdentity si2 = new ServiceIdentity().setName("test.service").setPublicKeys(pkel).setProviderEndpoint("http://test.endpoint").setModified(Timestamp.fromMillis(123456789123L)).setExecutable("exec/path").setHosts(hosts).setUser("user.test");
assertTrue(si.equals(si));
si2.setGroup(null);
assertFalse(si2.equals(si));
si2.setUser(null);
assertFalse(si2.equals(si));
si2.setHosts(null);
assertFalse(si2.equals(si));
si2.setExecutable(null);
assertFalse(si2.equals(si));
si2.setModified(null);
assertFalse(si2.equals(si));
si2.setProviderEndpoint(null);
assertFalse(si2.equals(si));
si2.setPublicKeys(null);
assertFalse(si2.equals(si));
si2.setName(null);
assertFalse(si2.equals(si));
assertFalse(si.equals(new String()));
List<ServiceIdentity> sil = Arrays.asList(si);
// ServiceIdentities test
ServiceIdentities sis = new ServiceIdentities().setList(sil);
result = validator.validate(sis, "ServiceIdentities");
assertTrue(result.valid);
assertEquals(sis.getList(), sil);
assertTrue(sis.equals(sis));
assertFalse(sis.equals(new ServiceIdentities()));
assertFalse(sis.equals(new String()));
// DomainData test
List<Entity> elist = new ArrayList<>();
DomainData dd = new DomainData().setName("test.domain").setAccount("user.test").setYpmId(1).setRoles(rl).setPolicies(sp).setServices(sil).setEntities(elist).setModified(Timestamp.fromMillis(123456789123L)).setEnabled(true);
result = validator.validate(dd, "DomainData");
assertTrue(result.valid, result.error);
assertEquals(dd.getName(), "test.domain");
assertEquals(dd.getAccount(), "user.test");
assertEquals((int) dd.getYpmId(), 1);
assertEquals(dd.getRoles(), rl);
assertEquals(dd.getPolicies(), sp);
assertEquals(dd.getServices(), sil);
assertEquals(dd.getEntities(), elist);
assertEquals(dd.getModified(), Timestamp.fromMillis(123456789123L));
assertTrue(dd.getEnabled());
DomainData dd2 = new DomainData().setName("test.domain").setAccount("user.test").setYpmId(1).setRoles(rl).setPolicies(sp).setServices(sil).setEntities(elist).setModified(Timestamp.fromMillis(123456789123L)).setEnabled(true);
assertTrue(dd.equals(dd2));
dd2.setModified(null);
assertFalse(dd2.equals(dd));
dd2.setModified(Timestamp.fromMillis(123456789123L));
dd2.setEntities(null);
assertFalse(dd2.equals(dd));
dd2.setEntities(elist);
dd2.setServices(null);
assertFalse(dd2.equals(dd));
dd2.setServices(sil);
dd2.setPolicies(null);
assertFalse(dd2.equals(dd));
dd2.setPolicies(sp);
dd2.setRoles(null);
assertFalse(dd2.equals(dd));
dd2.setRoles(rl);
dd2.setYpmId(null);
assertFalse(dd2.equals(dd));
dd2.setYpmId(1);
dd2.setAccount(null);
assertFalse(dd2.equals(dd));
dd2.setAccount("user.test");
dd2.setName(null);
assertFalse(dd2.equals(dd));
assertFalse(dd.equals(new String()));
// SignedDomain test
SignedDomain sd = new SignedDomain().setDomain(dd).setSignature("zmssignature").setKeyId("v1");
result = validator.validate(sd, "SignedDomain");
assertTrue(result.valid);
assertEquals(sd.getDomain(), dd);
assertEquals(sd.getSignature(), "zmssignature");
assertEquals(sd.getKeyId(), "v1");
SignedDomain sd2 = new SignedDomain().setDomain(dd).setSignature("zmssignature");
assertTrue(sd.equals(sd));
sd2.setKeyId(null);
assertFalse(sd2.equals(sd));
sd2.setSignature(null);
assertFalse(sd2.equals(sd));
sd2.setDomain(null);
assertFalse(sd2.equals(sd));
assertFalse(sd.equals(new String()));
List<SignedDomain> sdl = Arrays.asList(sd);
// SignedDomains test
SignedDomains sds = new SignedDomains().setDomains(sdl);
result = validator.validate(sds, "SignedDomains");
assertTrue(result.valid);
assertEquals(sds.getDomains(), sdl);
assertTrue(sds.equals(sds));
assertFalse(sds.equals(new SignedDomains()));
assertFalse(sds.equals(new String()));
}
use of com.yahoo.rdl.Schema in project athenz by yahoo.
the class ZMSCoreTest method testResourceAccessListMethod.
@Test
public void testResourceAccessListMethod() {
Schema schema = ZMSSchema.instance();
Validator validator = new Validator(schema);
Assertion a = new Assertion().setRole("test.role.*").setResource("test.resource.*").setAction("test-action").setEffect(AssertionEffect.ALLOW).setId(0L);
List<Assertion> al = Arrays.asList(a);
// ResourceAccess test
ResourceAccess ra = new ResourceAccess().setPrincipal("test.principal").setAssertions(al);
Result result = validator.validate(ra, "ResourceAccess");
assertTrue(result.valid);
assertEquals(ra.getPrincipal(), "test.principal");
assertEquals(ra.getAssertions(), al);
ResourceAccess ra2 = new ResourceAccess().setPrincipal("test.principal");
assertTrue(ra.equals(ra));
ra2.setAssertions(null);
assertFalse(ra2.equals(ra));
ra2.setPrincipal(null);
assertFalse(ra2.equals(ra));
assertFalse(ra.equals(new String()));
// ResourceAccessList test
List<ResourceAccess> ralist = Arrays.asList(ra);
ResourceAccessList ral = new ResourceAccessList().setResources(ralist);
result = validator.validate(ral, "ResourceAccessList");
assertTrue(result.valid);
assertEquals(ral.getResources(), ralist);
assertTrue(ral.equals(ral));
assertFalse(ral.equals(new ResourceAccessList()));
assertFalse(ral.equals(null));
}