Search in sources :

Example 26 with Schema

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()));
}
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 Schema

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

Example 28 with Schema

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()));
}
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 Schema

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()));
}
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 30 with Schema

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

Aggregations

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