mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#919 - io.ebean package initial
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package org.tests.m2m;
|
||||
|
||||
import io.ebean.BaseTestCase;
|
||||
import io.ebean.Ebean;
|
||||
import io.ebean.SqlQuery;
|
||||
import io.ebean.SqlRow;
|
||||
import org.tests.model.m2m.MnyA;
|
||||
import org.tests.model.m2m.MnyB;
|
||||
import org.tests.model.m2m.MnyC;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class TestM2MDeleteCascadeFromParent extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
MnyC c0 = new MnyC();
|
||||
c0.setName("c0");
|
||||
c0.save();
|
||||
|
||||
MnyA a0 = new MnyA();
|
||||
a0.setName("a0");
|
||||
a0.save();
|
||||
|
||||
MnyB b0 = new MnyB();
|
||||
b0.setName("b0");
|
||||
b0.setA(a0);
|
||||
b0.save();
|
||||
|
||||
c0.getBs().add(b0);
|
||||
Ebean.save(c0);
|
||||
|
||||
SqlQuery sqlQuery = Ebean.createSqlQuery("select count(*) as count from mny_b_mny_c");
|
||||
SqlRow unique = sqlQuery.findUnique();
|
||||
assertEquals(Long.valueOf(1), unique.getLong("count"));
|
||||
|
||||
|
||||
//Ebean.deleteManyToManyAssociations(b0, "cs");
|
||||
a0.delete();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package org.tests.m2m;
|
||||
|
||||
import io.ebean.BaseTestCase;
|
||||
import io.ebean.Ebean;
|
||||
import org.tests.model.basic.MnocRole;
|
||||
import org.tests.model.basic.MnocUser;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import javax.persistence.PersistenceException;
|
||||
import java.util.List;
|
||||
|
||||
public class TestM2MDeleteNoCascade extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
MnocRole r0 = new MnocRole("r0");
|
||||
MnocRole r1 = new MnocRole("r0");
|
||||
|
||||
Ebean.save(r0);
|
||||
Ebean.save(r1);
|
||||
|
||||
MnocUser u0 = new MnocUser("usr0");
|
||||
u0.addValidRole(r0);
|
||||
u0.addValidRole(r1);
|
||||
|
||||
Ebean.save(u0);
|
||||
|
||||
MnocUser loadedUser = Ebean.find(MnocUser.class, u0.getUserId());
|
||||
List<MnocRole> validRoles = loadedUser.getValidRoles();
|
||||
|
||||
Assert.assertEquals(2, validRoles.size());
|
||||
|
||||
try {
|
||||
Ebean.delete(u0);
|
||||
Assert.assertTrue("expecting an exception", false);
|
||||
|
||||
} catch (PersistenceException e) {
|
||||
// we expect this
|
||||
Assert.assertTrue(true);
|
||||
}
|
||||
|
||||
u0.getValidRoles().clear();
|
||||
Ebean.save(u0);
|
||||
|
||||
Ebean.delete(u0);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package org.tests.m2m;
|
||||
|
||||
import io.ebean.BaseTestCase;
|
||||
import io.ebean.Ebean;
|
||||
import org.tests.model.m2m.Permission;
|
||||
import org.tests.model.m2m.Role;
|
||||
import org.tests.model.m2m.Tenant;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class TestM2MDeleteObjectWithCascadeToM2m extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
Ebean.createUpdate(Permission.class, "delete from Permission").execute();
|
||||
Ebean.createUpdate(Tenant.class, "delete from Tenant").execute();
|
||||
Ebean.createUpdate(Role.class, "delete from Role").execute();
|
||||
|
||||
Tenant tenant1 = new Tenant("Tenant");
|
||||
Ebean.save(tenant1);
|
||||
|
||||
Permission p1 = new Permission("p1");
|
||||
Permission p2 = new Permission("p2");
|
||||
Ebean.save(p1);
|
||||
Ebean.save(p2);
|
||||
|
||||
Role role1 = new Role("RoleOne");
|
||||
role1.setTenant(tenant1);
|
||||
|
||||
Set<Permission> permissions = new HashSet<>();
|
||||
List<Permission> permsList = Ebean.find(Permission.class).findList();
|
||||
permissions.addAll(permsList);
|
||||
|
||||
role1.setPermissions(permissions);
|
||||
|
||||
Ebean.save(role1);
|
||||
|
||||
|
||||
List<Tenant> tenantList = Ebean.find(Tenant.class).fetch("roles").findList();
|
||||
List<Role> roleList = Ebean.find(Role.class).fetch("permissions").findList();
|
||||
List<Permission> permissionList = Ebean.find(Permission.class).fetch("roles").findList();
|
||||
|
||||
Assert.assertEquals(1, tenantList.size());
|
||||
Assert.assertEquals(2, permissionList.size());
|
||||
Assert.assertEquals(1, roleList.size());
|
||||
|
||||
Ebean.delete(tenant1);
|
||||
|
||||
List<Tenant> tenantList2 = Ebean.find(Tenant.class).fetch("roles").findList();
|
||||
List<Role> roleList2 = Ebean.find(Role.class).fetch("permissions").findList();
|
||||
List<Permission> permissionList2 = Ebean.find(Permission.class).fetch("roles").findList();
|
||||
|
||||
Assert.assertEquals(0, tenantList2.size());
|
||||
Assert.assertEquals(0, roleList2.size());
|
||||
Assert.assertEquals(2, permissionList2.size());
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package org.tests.m2m;
|
||||
|
||||
import io.ebean.BaseTestCase;
|
||||
import io.ebean.Ebean;
|
||||
import org.tests.model.basic.MRole;
|
||||
import org.tests.model.basic.MUser;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class TestM2MDeleteWithCascade extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
MRole r0 = new MRole("r0");
|
||||
MRole r1 = new MRole("r1");
|
||||
|
||||
Ebean.save(r0);
|
||||
// Ebean.save(r1);
|
||||
|
||||
MUser u0 = new MUser("usr0");
|
||||
u0.addRole(r0);
|
||||
u0.addRole(r1);
|
||||
|
||||
Ebean.save(u0);
|
||||
|
||||
List<MRole> roles = u0.getRoles();
|
||||
|
||||
// this will delete
|
||||
Ebean.delete(u0);
|
||||
|
||||
MUser notThere = Ebean.find(MUser.class, u0.getUserid());
|
||||
Assert.assertNull("been deleted", notThere);
|
||||
|
||||
List<Object> roleIds = new ArrayList<>();
|
||||
Collections.addAll(roleIds, r0.getRoleid(), r1.getRoleid());
|
||||
|
||||
int rc = Ebean.find(MRole.class).where().idIn(roleIds).findCount();
|
||||
|
||||
Assert.assertEquals("roles not deleted", 2, rc);
|
||||
|
||||
Ebean.deleteAll(roles);
|
||||
|
||||
rc = Ebean.find(MRole.class).where().idIn(roleIds).findCount();
|
||||
|
||||
Assert.assertEquals("roles deleted now", 0, rc);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package org.tests.m2m;
|
||||
|
||||
import io.ebean.BaseTestCase;
|
||||
import io.ebean.Ebean;
|
||||
import org.tests.model.basic.MRole;
|
||||
import org.tests.model.basic.MUser;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TestM2MModifyTest extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
// Create 2 roles r0 and r1
|
||||
MRole r0 = new MRole("r0");
|
||||
MRole r1 = new MRole("r1");
|
||||
|
||||
// Save r1 and r2
|
||||
Ebean.save(r0);
|
||||
Ebean.save(r1);
|
||||
|
||||
// Create a new user
|
||||
MUser u0 = new MUser("usr0");
|
||||
u0.addRole(r0);
|
||||
u0.addRole(r1);
|
||||
|
||||
// Save the user
|
||||
Ebean.save(u0);
|
||||
|
||||
List<MRole> roles = u0.getRoles();
|
||||
|
||||
Assert.assertTrue(roles.size() == 2);
|
||||
|
||||
u0 = Ebean.find(MUser.class, u0.getUserid());
|
||||
|
||||
roles = u0.getRoles();
|
||||
int nrRoles = roles.size();
|
||||
|
||||
Assert.assertTrue(nrRoles == 2);
|
||||
|
||||
roles.clear();
|
||||
roles.add(r0);
|
||||
roles.add(r1);
|
||||
roles.remove(r1);
|
||||
|
||||
Ebean.save(u0);
|
||||
|
||||
u0 = Ebean.find(MUser.class, u0.getUserid());
|
||||
|
||||
roles = u0.getRoles();
|
||||
|
||||
nrRoles = roles.size();
|
||||
|
||||
Assert.assertTrue(nrRoles == 1);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package org.tests.m2m;
|
||||
|
||||
import io.ebean.BaseTestCase;
|
||||
import io.ebean.Ebean;
|
||||
import org.tests.model.m2m.MailBox;
|
||||
import org.tests.model.m2m.MailUser;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class TestM2MMultipleLists extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
MailUser u = new MailUser();
|
||||
u.setName("mailUser1");
|
||||
|
||||
MailBox m1 = new MailBox();
|
||||
m1.setName("mailBox1");
|
||||
|
||||
u.getInbox().add(m1);
|
||||
Ebean.save(u);
|
||||
|
||||
u = Ebean.find(MailUser.class, u.getId());
|
||||
|
||||
assertEquals(1, u.getInbox().size());
|
||||
assertEquals(0, u.getOutbox().size());
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package org.tests.m2m;
|
||||
|
||||
import io.ebean.BaseTestCase;
|
||||
import io.ebean.Ebean;
|
||||
import org.tests.model.m2m.MnyTopic;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Added to test DDL generation for ManyToMany related back to itself.
|
||||
*/
|
||||
public class TestM2MSelfRelationship extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
Ebean.getDefaultServer();
|
||||
|
||||
// Create 2 roles r0 and r1
|
||||
MnyTopic r0 = new MnyTopic("r0");
|
||||
MnyTopic r1 = new MnyTopic("r1");
|
||||
|
||||
// Save r1 and r2
|
||||
Ebean.save(r0);
|
||||
Ebean.save(r1);
|
||||
|
||||
r0.getSubTopics().add(r1);
|
||||
Ebean.save(r0);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package org.tests.m2m;
|
||||
|
||||
import io.ebean.BaseTestCase;
|
||||
import io.ebean.Ebean;
|
||||
import org.tests.model.m2m.Permission;
|
||||
import org.tests.model.m2m.Role;
|
||||
import org.tests.model.m2m.Tenant;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class TestM2mDeleteObject extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
Ebean.createUpdate(Permission.class, "delete from Permission").execute();
|
||||
Ebean.createUpdate(Tenant.class, "delete from Tenant").execute();
|
||||
Ebean.createUpdate(Role.class, "delete from Role").execute();
|
||||
|
||||
Tenant t = new Tenant("tenant");
|
||||
|
||||
Ebean.save(t);
|
||||
|
||||
Permission p1 = new Permission("p1");
|
||||
Permission p2 = new Permission("p2");
|
||||
|
||||
Ebean.save(p1);
|
||||
Ebean.save(p2);
|
||||
|
||||
Role role1 = new Role("role");
|
||||
role1.setTenant(t);
|
||||
|
||||
Set<Permission> permissions = new HashSet<>();
|
||||
List<Permission> permsList = Ebean.find(Permission.class).findList();
|
||||
permissions.addAll(permsList);
|
||||
|
||||
role1.setPermissions(permissions);
|
||||
|
||||
Ebean.save(role1);
|
||||
|
||||
List<Tenant> tenantList = Ebean.find(Tenant.class).fetch("roles").findList();
|
||||
List<Role> roleList = Ebean.find(Role.class).fetch("permissions").findList();
|
||||
List<Permission> permissionList = Ebean.find(Permission.class).fetch("roles").findList();
|
||||
|
||||
Assert.assertEquals(1, tenantList.size());
|
||||
Assert.assertEquals(2, permissionList.size());
|
||||
Assert.assertEquals(1, roleList.size());
|
||||
|
||||
Ebean.delete(role1);
|
||||
|
||||
List<Tenant> tenantList2 = Ebean.find(Tenant.class).fetch("roles").findList();
|
||||
List<Role> roleList2 = Ebean.find(Role.class).fetch("permissions").findList();
|
||||
List<Permission> permissionList2 = Ebean.find(Permission.class).fetch("roles").findList();
|
||||
|
||||
Assert.assertEquals(0, roleList2.size());
|
||||
Assert.assertEquals(1, tenantList2.size());
|
||||
Assert.assertEquals(2, permissionList2.size());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void test_deleteCascading() {
|
||||
|
||||
Permission p1 = new Permission("p1");
|
||||
Permission p2 = new Permission("p2");
|
||||
Ebean.save(p1);
|
||||
Ebean.save(p2);
|
||||
|
||||
Role role1 = new Role("role");
|
||||
|
||||
Set<Permission> permissions = new HashSet<>();
|
||||
permissions.add(p2);
|
||||
role1.setPermissions(permissions);
|
||||
Ebean.save(role1);
|
||||
|
||||
// only deletes as not associated
|
||||
Ebean.delete(p1);
|
||||
// delete cascades
|
||||
Ebean.delete(role1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user