use of com.yahoo.rdl.Validator.Result 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.Validator.Result 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));
}
use of com.yahoo.rdl.Validator.Result in project athenz by yahoo.
the class ZMSCoreTest method testPoliciesMethod.
@Test
public void testPoliciesMethod() {
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<Policy> plist = Arrays.asList(new Policy().setName("test").setAssertions(Arrays.asList(a)));
Policies ps = new Policies().setList(plist);
Result result = validator.validate(ps, "Policies");
assertTrue(result.valid);
assertEquals(ps.getList(), plist);
Policies ps2 = new Policies();
assertTrue(ps.equals(ps));
assertFalse(ps.equals(ps2));
assertFalse(ps.equals(new String()));
}
use of com.yahoo.rdl.Validator.Result in project athenz by yahoo.
the class ZMSCoreTest method testTopLevelDomainMethod.
@Test
public void testTopLevelDomainMethod() {
Schema schema = ZMSSchema.instance();
Validator validator = new Validator(schema);
List<String> admins = Arrays.asList("test.admin1");
// DomainTemplateList test
List<String> templateNames = Arrays.asList("test");
DomainTemplateList dtl = new DomainTemplateList().setTemplateNames(templateNames);
Result result = validator.validate(dtl, "DomainTemplateList");
assertTrue(result.valid);
assertEquals(dtl.getTemplateNames(), templateNames);
assertTrue(dtl.equals(dtl));
assertFalse(dtl.equals(new DomainTemplateList()));
// TopLevelDomain test
TopLevelDomain tld = new TopLevelDomain().setDescription("domain desc").setOrg("org:test").setEnabled(true).setAuditEnabled(false).setAccount("user.test").setYpmId(10).setName("testdomain").setAdminUsers(admins).setTemplates(dtl);
result = validator.validate(tld, "TopLevelDomain");
assertTrue(result.valid);
assertEquals(tld.getDescription(), "domain desc");
assertEquals(tld.getOrg(), "org:test");
assertTrue(tld.getEnabled());
assertFalse(tld.getAuditEnabled());
assertEquals(tld.getAccount(), "user.test");
assertEquals((int) tld.getYpmId(), 10);
assertEquals(tld.getName(), "testdomain");
assertEquals(tld.getAdminUsers(), admins);
assertNotNull(tld.getTemplates());
TopLevelDomain tld2 = new TopLevelDomain().setDescription("domain desc").setOrg("org:test").setEnabled(true).setAuditEnabled(false).setAccount("user.test").setYpmId(10).setName("testdomain").setAdminUsers(admins);
assertTrue(tld.equals(tld));
tld2.setTemplates(null);
assertFalse(tld2.equals(tld));
tld2.setAdminUsers(null);
assertFalse(tld2.equals(tld));
tld2.setName(null);
assertFalse(tld2.equals(tld));
tld2.setYpmId(null);
assertFalse(tld2.equals(tld));
tld2.setAccount(null);
assertFalse(tld2.equals(tld));
tld2.setAuditEnabled(null);
assertFalse(tld2.equals(tld));
tld2.setEnabled(null);
assertFalse(tld2.equals(tld));
tld2.setOrg(null);
assertFalse(tld2.equals(tld));
tld2.setDescription(null);
assertFalse(tld2.equals(tld));
assertFalse(tld2.equals(null));
assertFalse(tld.equals(new String()));
}
use of com.yahoo.rdl.Validator.Result in project athenz by yahoo.
the class ZMSCoreTest method testServicePrincipalMethod.
@Test
public void testServicePrincipalMethod() {
Schema schema = ZMSSchema.instance();
Validator validator = new Validator(schema);
ServicePrincipal sp = new ServicePrincipal().setDomain("test.domain").setService("test-service").setToken("test-token");
Result result = validator.validate(sp, "ServicePrincipal");
assertTrue(result.valid);
assertEquals(sp.getDomain(), "test.domain");
assertEquals(sp.getService(), "test-service");
assertEquals(sp.getToken(), "test-token");
ServicePrincipal sp2 = new ServicePrincipal().setDomain("test.domain").setService("test-service");
assertTrue(sp.equals(sp));
sp2.setToken(null);
assertFalse(sp2.equals(sp));
sp2.setService(null);
assertFalse(sp2.equals(sp));
sp2.setDomain(null);
assertFalse(sp2.equals(sp));
assertFalse(sp2.equals(null));
assertFalse(sp.equals(new String()));
}