@Test @Transactional public void testAddContactToGroupAndGroupConstituent() throws Exception { groupService.create(group); groupService.addAggregation(committee, group); Contact contact = new Contact(); contact.setFirstName("Test Contact"); contact.setEmail("*****@*****.**"); contactService.create(contact); contactService.addContactToCommittee(contact, committee); contactService.addToGroup(contact, group); contact = contactService.findById(contact.getId()); assertTrue(contact.getGroups().contains(group)); assertTrue(contact.getCommittees().contains(committee)); committee = committeeService.findById(committee.getId()); assertTrue(committee.getMembers().contains(contact)); group = groupService.findById(group.getId()); assertTrue(group.getTopLevelMembers().contains(contact)); }
@Test public void testAddMultipleContacts() throws Exception { groupService.create(group); groupService.addAggregation(committee, group); group = groupService.findById(group.getId()); contactService.addToGroup(topLevel, group); Contact anotherContact = new Contact(); anotherContact.setFirstName("Another"); anotherContact.setEmail("*****@*****.**"); contactService.create(anotherContact); contactService.addToGroup(anotherContact, group); group = groupService.findById(group.getId()); assertEquals(2, group.getTopLevelMembers().size()); anotherContact = contactService.findById(anotherContact.getId()); topLevel = contactService.findById(topLevel.getId()); assertEquals(1, anotherContact.getGroups().size()); assertEquals(1, topLevel.getGroups().size()); groupService.delete(group); anotherContact = contactService.findById(anotherContact.getId()); topLevel = contactService.findById(topLevel.getId()); assertEquals(0, anotherContact.getGroups().size()); assertEquals(0, topLevel.getGroups().size()); }
@Test @Transactional public void testRemoveContactFromEventMultipleGroups() throws Exception { groupService.create(group); groupService.addAggregation(event, group); Group secondGroup = new Group(); secondGroup.setGroupName("Second Group"); groupService.create(secondGroup); groupService.addAggregation(event, secondGroup); Contact newContact = new Contact(); newContact.setFirstName("Fresh Contact"); newContact.setEmail("Fresh email"); contactService.create(newContact); event = eventService.findById(event.getId()); contactService.attendEvent(newContact, event); newContact = contactService.findById(newContact.getId()); contactService.unattendEvent(newContact, event); event = eventService.findById(event.getId()); assertFalse(event.getAttendees().contains(newContact)); newContact = contactService.findById(newContact.getId()); assertFalse(newContact.getAttendedEvents().contains(event)); }
@Test public void testAddAggregation() throws Exception { groupService.create(group); groupService.addAggregation(committee, group); Group fromDb = groupService.findById(group.getId()); assertEquals(1, fromDb.getAggregations().size()); Aggregation aggregation = fromDb.getAggregations().iterator().next(); assertEquals(group.getGroupName(), aggregation.getGroups().iterator().next().getGroupName()); }
@Test public void testCreateGroupFromCommittee() throws Exception { String id = groupService.create(group); groupService.addAggregation(committee, group); Group fromDb = groupService.findById(id); assertEquals(group.getGroupName(), fromDb.getGroupName()); Aggregation aggregation = fromDb.getAggregations().iterator().next(); assertNotNull(aggregation); assertEquals( committee.getAggregationMembers().size(), aggregation.getAggregationMembers().size()); }
@Before public void setup() throws ConstraintViolation, NullDomainReference { createContacts(); committee = new Committee(); committee.setName("Committee Name"); committeeService.create(committee); contactService.addContactToCommittee(first, committee); contactService.addContactToCommittee(second, committee); organization = new Organization(); organization.setName("Organization Name"); organizationService.create(organization); contactService.addContactToOrganization(first, organization); contactService.addContactToOrganization(second, organization); event = new Event(); event.setName("Event Name"); event.setDateHeld("2015-01-01"); eventService.create(event); contactService.attendEvent(first, event); contactService.attendEvent(second, event); group = new Group(); group.setGroupName("New AlinskyGroup"); }
@Test public void testRemoveContactFromGroup() throws Exception { groupService.create(group); groupService.addAggregation(committee, group); contactService.addToGroup(topLevel, group); assertEquals(1, group.getTopLevelMembers().size()); contactService.removeFromGroup(topLevel, group); Group fromDb = groupService.findById(group.getId()); assertEquals(0, fromDb.getTopLevelMembers().size()); Contact contactFromDb = contactService.findById(topLevel.getId()); assertEquals(0, contactFromDb.getGroups().size()); }
@Test public void testRemoveContactFromAggregation() throws Exception { groupService.create(group); groupService.addAggregation(committee, group); group = groupService.findById(group.getId()); assertEquals( committee.getMembers().size(), group.getAggregations().iterator().next().getAggregationMembers().size()); contactService.removeContactFromCommittee(first, committee); committee = committeeService.findById(committee.getId()); group = groupService.findById(group.getId()); assertEquals( committee.getMembers().size(), group.getAggregations().iterator().next().getAggregationMembers().size()); }
@Test public void testRemoveAggregation() throws Exception { String id = groupService.create(group); groupService.addAggregation(committee, group); Group fromDb = groupService.findById(id); assertEquals(1, fromDb.getAggregations().size()); assertEquals(1, fromDb.getAggregations().iterator().next().getGroups().size()); Aggregation aggregation = committeeService.findById(committee.getId()); assertEquals(1, aggregation.getGroups().size()); groupService.removeAggregation(committee, fromDb); fromDb = groupService.findById(id); assertEquals(0, fromDb.getAggregations().size()); aggregation = committeeService.findById(committee.getId()); assertEquals(0, aggregation.getGroups().size()); }
@Test @Transactional public void testAddContactToMultipleGroupsMultipleConstituents() throws Exception { groupService.create(group); groupService.addAggregation(committee, group); groupService.addAggregation(event, group); Group secondGroup = new Group(); secondGroup.setGroupName("Second Group"); groupService.create(secondGroup); groupService.addAggregation(committee, secondGroup); groupService.addAggregation(event, secondGroup); Contact contact = new Contact(); contact.setFirstName("Test Contact"); contact.setEmail("*****@*****.**"); contactService.create(contact); contactService.addContactToCommittee(contact, committee); contactService.attendEvent(contact, event); contactService.addToGroup(contact, group); contactService.addToGroup(contact, secondGroup); contact = contactService.findById(contact.getId()); group = groupService.findById(group.getId()); secondGroup = groupService.findById(secondGroup.getId()); event = eventService.findById(event.getId()); committee = committeeService.findById(committee.getId()); assertTrue(contact.getGroups().contains(group)); assertTrue(contact.getGroups().contains(secondGroup)); assertTrue(contact.getCommittees().contains(committee)); assertTrue(contact.getAttendedEvents().contains(event)); assertTrue(event.getAttendees().contains(contact)); assertTrue(event.getGroups().contains(group)); assertTrue(event.getGroups().contains(secondGroup)); assertTrue(committee.getMembers().contains(contact)); assertTrue(committee.getGroups().contains(group)); assertTrue(committee.getGroups().contains(secondGroup)); assertTrue(group.getTopLevelMembers().contains(contact)); assertTrue(group.getAggregations().contains(committee)); assertTrue(group.getAggregations().contains(event)); assertTrue(secondGroup.getTopLevelMembers().contains(contact)); assertTrue(secondGroup.getAggregations().contains(committee)); assertTrue(secondGroup.getAggregations().contains(event)); }
@Test public void testDeleteGroup() throws Exception { groupService.create(group); groupService.addAggregation(committee, group); group = groupService.findById(group.getId()); contactService.addToGroup(topLevel, group); groupService.delete(group); Group groupFromDb = groupService.findById(group.getId()); assertNull(groupFromDb); Aggregation fromDb = committeeService.findById(committee.getId()); assertNotNull(fromDb); assertEquals(0, fromDb.getGroups().size()); assertEquals(committee.getAggregationMembers().size(), fromDb.getAggregationMembers().size()); Contact topLevelFromDb = contactService.findById(topLevel.getId()); assertNotNull(topLevelFromDb); assertEquals(0, topLevelFromDb.getGroups().size()); }
@Test @Transactional public void testAddContactToOrganizationMultipleGroups() throws Exception { groupService.create(group); groupService.addAggregation(organization, group); Group secondGroup = new Group(); secondGroup.setGroupName("Second Group"); groupService.create(secondGroup); groupService.addAggregation(organization, secondGroup); Contact newContact = new Contact(); newContact.setFirstName("Fresh Contact"); newContact.setEmail("Fresh email"); contactService.create(newContact); contactService.addContactToOrganization(newContact, organization); newContact = contactService.findById(newContact.getId()); assertTrue(newContact.getOrganizations().contains(organization)); group = groupService.findById(group.getId()); assertTrue(group.getAggregations().contains(organization)); secondGroup = groupService.findById(secondGroup.getId()); assertTrue(secondGroup.getAggregations().contains(organization)); organization = organizationService.findById(organization.getId()); assertTrue(organization.getMembers().contains(newContact)); }
@Test public void testShuffled() { for (Integer[] perm : perms) { Group group = new Group("group"); for (Integer i : perm) { Item item = new Item(group, i); group.add(item); } Queueable[] elems = group.getQueue(); for (Queueable elem : elems) { Item item = (Item) elem; // System.out.print( " " + item.getSalience() + "/" + item.getActivationNumber() + // "/" + item.getIndex() ); if (item.getIndex() % 2 == 0) { group.remove(item); group.add(item); } } boolean ok = true; StringBuilder sb = new StringBuilder("queue:"); for (int i = max - 1; i >= 0; i--) { int sal = group.getNext().getSalience(); sb.append(" ").append(sal); if (sal != i) ok = false; } assertTrue("incorrect order in " + sb.toString(), ok); // System.out.println( sb.toString() ); } }
@Test public void testCreateGroupFromMultipleAggregations() throws Exception { String id = groupService.create(group); groupService.addAggregation(committee, group); group = groupService.findById(group.getId()); groupService.addAggregation(organization, group); group = groupService.findById(group.getId()); groupService.addAggregation(event, group); group = groupService.findById(group.getId()); contactService.addToGroup(topLevel, group); Group fromDb = groupService.findById(id); assertEquals(group.getGroupName(), fromDb.getGroupName()); assertEquals(3, group.getAggregations().size()); Set<Contact> allAggregationMembers = new HashSet<>(); for (Aggregation aggregation : group.getAggregations()) { for (Contact c : aggregation.getAggregationMembers()) { allAggregationMembers.add(c); } } assertEquals(2, allAggregationMembers.size()); assertEquals(1, group.getTopLevelMembers().size()); }
@Test @Transactional public void testAddEventMultipleGroups() throws Exception { groupService.create(group); groupService.addAggregation(event, group); groupService.addAggregation(committee, group); Group secondGroup = new Group(); secondGroup.setGroupName("Second Group"); groupService.create(secondGroup); groupService.addAggregation(event, secondGroup); groupService.addAggregation(organization, secondGroup); event = eventService.findById(event.getId()); assertTrue(event.getGroups().contains(group)); assertTrue(event.getGroups().contains(secondGroup)); group = groupService.findById(group.getId()); assertTrue(group.getAggregations().contains(event)); secondGroup = groupService.findById(secondGroup.getId()); assertTrue(secondGroup.getAggregations().contains(event)); }