Search in sources :

Example 26 with Validator

use of com.yahoo.rdl.Validator 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()));
}
Also used : Schema(com.yahoo.rdl.Schema) Validator(com.yahoo.rdl.Validator) Result(com.yahoo.rdl.Validator.Result) Test(org.testng.annotations.Test)

Example 27 with Validator

use of com.yahoo.rdl.Validator 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()));
}
Also used : Schema(com.yahoo.rdl.Schema) ArrayList(java.util.ArrayList) Result(com.yahoo.rdl.Validator.Result) Struct(com.yahoo.rdl.Struct) Validator(com.yahoo.rdl.Validator) Test(org.testng.annotations.Test)

Example 28 with Validator

use of com.yahoo.rdl.Validator 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));
}
Also used : Schema(com.yahoo.rdl.Schema) Validator(com.yahoo.rdl.Validator) Result(com.yahoo.rdl.Validator.Result) Test(org.testng.annotations.Test)

Example 29 with Validator

use of com.yahoo.rdl.Validator 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()));
}
Also used : Schema(com.yahoo.rdl.Schema) Validator(com.yahoo.rdl.Validator) Result(com.yahoo.rdl.Validator.Result) Test(org.testng.annotations.Test)

Example 30 with Validator

use of com.yahoo.rdl.Validator 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()));
}
Also used : Schema(com.yahoo.rdl.Schema) Validator(com.yahoo.rdl.Validator) Result(com.yahoo.rdl.Validator.Result) Test(org.testng.annotations.Test)

Aggregations

Validator (com.yahoo.rdl.Validator)47 Schema (com.yahoo.rdl.Schema)45 Result (com.yahoo.rdl.Validator.Result)45 Test (org.testng.annotations.Test)45 ArrayList (java.util.ArrayList)3 Struct (com.yahoo.rdl.Struct)1