MessageServiceTestTDD.java :  » JPA » cz-zcu-kiv-jet-jpa » cz » zcu » kiv » jet » jpa » service » Java Open Source

Java Open Source » JPA » cz zcu kiv jet jpa 
cz zcu kiv jet jpa » cz » zcu » kiv » jet » jpa » service » MessageServiceTestTDD.java
package cz.zcu.kiv.jet.jpa.service;

import static org.junit.Assert.*;

import java.sql.Date;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.databene.contiperf.PerfTest;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;

import cz.zcu.kiv.jet.jpa.domain.Blip;
import cz.zcu.kiv.jet.jpa.domain.Group;
import cz.zcu.kiv.jet.jpa.domain.Message;
import cz.zcu.kiv.jet.jpa.domain.Participant;
import cz.zcu.kiv.jet.jpa.domain.User;
import cz.zcu.kiv.jet.jpa.exception.ObjectAlreadyExistsException;
import cz.zcu.kiv.jet.jpa.exception.ObjectBadAttributesException;
import cz.zcu.kiv.jet.jpa.exception.ObjectNotFoundException;


@ContextConfiguration({ "/appctx-main.xml", "/appctx-orm.xml" })
@PerfTest(invocations = 1, threads = 1)
public class MessageServiceTestTDD extends AbstractJUnit4SpringContextTests {
  
  @Autowired
  private MessageService messageService;

  /** User service dependency. */
  @Autowired
  private UserService userService;
  
  private Set<Participant> particip = new HashSet<Participant>();
  
  
  /* -----------------getMessage---------------------- */
  
  @Test (expected=ObjectNotFoundException.class)
  public void testGetMessageObjectNotFound() {
    //ocekavam null?? kdyz to padne na te vyjimce?
    assertNull("Message isnt null", messageService.getMessage(-1));
  }
  
  @Test
  public void testGetMessageObjectFound() {    
    List<User> users = new ArrayList<User>();
    User user = createUser("john1", "password", "Doe", "john.doe@example.org");
    
    particip.add(user);
    users.add(user);
    
    Message msg = createMessage(particip);
    
    assertEquals(msg.getId(), (messageService.getMessage(msg.getId())).getId());
    
    //tady to pada, ale je to nutny pro opakovane spousteni testu
    //userService.deleteUsers(users);
  }
  
  
  /* -----------------getHeadBlipsByUser---------------------- */
  
  @Test (expected=IllegalArgumentException.class)
  public void testGetHeadBlipsByUserIllegalArgument() {
    assertNull("Blips arent null", messageService.getHeadBlipsByUser(null));
  }
  
  @Test (expected=ObjectNotFoundException.class)
  public void testGetHeadBlipsByUserObjectsNotFound() {
    assertNull("Blips arent null", messageService.getHeadBlipsByUser(new User()));
  }
  
  @Test
  public void testGetHeadBlipsByUserObjectsFound() {
    User user = createUser("david", "password", "Fore", "david.fore@example.org");
    particip.add(user);
    
    Message msg = createMessage(particip);
    List<Blip> blips = createBlips(user, msg);
    
    assertEquals(blips.get(0).getId(), (messageService.getHeadBlipsByUser(user)).get(0).getId());
  }
  
  
  /* -----------------getHeadBlipsByGroup---------------------- */
  
  @Test (expected=IllegalArgumentException.class)
  public void testGetHeadBlipsByGroupIllegalArgument() {
    assertNull("Blips arent null", messageService.getHeadBlipsByGroup(null));
  }
  
  @Test (expected=ObjectNotFoundException.class)
  public void testGetHeadBlipsByGroupObjectsNotFound() {
    assertNull("Blips arent null", messageService.getHeadBlipsByGroup(new Group()));
  }
  
  @Test
  public void testGetHeadBlipsByGroupObjectsFound() {
    User user = createUser("david1", "password", "Fore", "david.fore@example.org");
    Group group = createGroup("group1");
    particip.add(group);
    
    
    Message msg = createMessage(particip);
    List<Blip> blips = createBlips(user, msg);
    
    assertEquals(blips.get(0).getId(), (messageService.getHeadBlipsByGroup(group)).get(0).getId());
  }
  
  
  /* -----------------getHeadBlipsMyGroup---------------------- */
  
  @Test (expected=IllegalArgumentException.class)
  public void testGetHeadBlipsMyGroupIllegalArgument() {
    assertNull("Blips arent null", messageService.getHeadBlipsMyGroup(null));
  }
  
  @Test (expected=ObjectNotFoundException.class)
  public void testGetHeadBlipsMyGroupObjectsNotFound() {
    assertNull("Blips arent null", messageService.getHeadBlipsMyGroup(new User()));
  }
  
  @Test
  public void testGetHeadBlipsMyGroupObjectsFound() {
    User user = createUser("david2", "password", "Fore", "david.fore@example.org");
    User user2 = createUser("potmesil", "password", "Smisek", "potme.smich@example.org");
    Group group = createGroup("group2");
    userService.addUserToGroup(user, group);
    
    particip.add(group);
    
    Message msg = createMessage(particip);
    List<Blip> blips = createBlips(user2, msg);
    
    assertEquals(blips.get(0).getId(), (messageService.getHeadBlipsMyGroup(user)).get(0).getId());
  }
  
  
  /* -----------------getAllBlipsByRootMessage---------------------- */
  
  @Test (expected=IllegalArgumentException.class)
  public void testGetAllBlipsByRootMessageIllegalArgument() {
    assertNull("Blips arent null", messageService.getAllBlipsByRootMessage(null));
  }
  
  @Test (expected=ObjectNotFoundException.class)
  public void testGetAllBlipsByRootMessageObjectsNotFound() {
    assertNull("Blips arent null", messageService.getAllBlipsByRootMessage(new Message()));
  }
  
  @Test
  public void testGetAllBlipsByRootMessageObjectFound() {    
    List<User> users = new ArrayList<User>();
    User user = createUser("john3", "password", "Doe", "john.doe@example.org");
    
    particip.add(user);
    users.add(user);
    
    Message msg = createMessage(particip);
    List<Blip> blips = createBlips(user, msg);
    
    assertEquals(blips.get(0).getId(), messageService.getAllBlipsByRootMessage(msg).get(0).getId());
  }
  
  
  /* -----------------addMessage---------------------- */
  
  @Test (expected=IllegalArgumentException.class)
  public void testAddMessageIllegalArgument() {
    assertNull("Blips arent null", messageService.addMessage(null));
  }
  
  @Test (expected=ObjectBadAttributesException.class)
  public void testAddMessageBadAttributes() {
    messageService.addMessage(new Message());
  }
  
  @Test (expected=ObjectAlreadyExistsException.class)
  public void testAddMessageObjectAlreadyExists() {
    List<User> users = new ArrayList<User>();
    User user = createUser("john4", "password", "Doe", "john.doe@example.org");
    
    particip.add(user);
    users.add(user);
    
    createMessage(particip);
    createMessage(particip);
  }
  
  @Test
  public void testAddMessageObjectAdded() {
    List<User> users = new ArrayList<User>();
    User user = createUser("john4", "password", "Doe", "john.doe@example.org");
    
    particip.add(user);
    users.add(user);
    
    Message msg = createMessage(particip);
    
    assertNotNull(messageService.getMessage(msg.getId()));
  }
  
  
  /* -----------------addBlip---------------------- */
  
  @Test (expected=IllegalArgumentException.class)
  public void testAddBlipIllegalArgument() {
    assertNull("Blips arent null", messageService.addBlip(null));
  }
  
  @Test (expected=ObjectBadAttributesException.class)
  public void testaddBlipBadAttributes() {
    messageService.addBlip(new Blip());
  }
  
  @Test (expected=ObjectAlreadyExistsException.class)
  public void testaddBlipObjectAlreadyExists() {
    List<User> users = new ArrayList<User>();
    User user = createUser("john4", "password", "Doe", "john.doe@example.org");
    
    particip.add(user);
    users.add(user);

    Message msg = createMessage(particip);
    
    createBlips(user, msg);
    createBlips(user, msg);
  }
  
  @Test
  public void testaddBlipObjectAdded() {
    List<User> users = new ArrayList<User>();
    User user = createUser("john4", "password", "Doe", "john.doe@example.org");
    
    particip.add(user);
    users.add(user);
    
    Message msg = createMessage(particip);
    
    createBlips(user, msg);
    
    assertNotNull(messageService.getHeadBlipsByUser(user));
  }
  
  
  /* -----------------deleteBlips---------------------- */
  
  @Test (expected=IllegalArgumentException.class)
  public void testDeleteBlipsIllegalArgument() {
    messageService.deleteBlips(null);
  }
  
  @Test (expected=ObjectNotFoundException.class)
  public void testDeleteBlipsNotFound() {
    messageService.deleteBlips(new ArrayList<Blip>());
  }
  
  @Test
  public void testDeleteBlipsObjectDeleted() {    
    List<User> users = new ArrayList<User>();
    User user = createUser("john5", "password", "Doe", "john.doe@example.org");
    
    particip.add(user);
    users.add(user);
    
    Message msg = createMessage(particip);
    List<Blip> blips = createBlips(user, msg);
    
    messageService.deleteBlips(blips);  
    
    assertNull(messageService.getHeadBlipsByUser(user));
  }
  
  
  /* -----------------deleteMessages---------------------- */
  
  @Test (expected=IllegalArgumentException.class)
  public void testDeleteMessagesIllegalArgument() {
    messageService.deleteMessages(null);
  }
  
  @Test (expected=ObjectNotFoundException.class)
  public void testDeleteMessagesNotFound() {
    messageService.deleteMessages(new ArrayList<Message>());
  }
  
  @Test
  public void testDeleteMessagesObjectDeleted() {    
    List<User> users = new ArrayList<User>();
    List<Message> messages = new ArrayList<Message>();
    User user = createUser("john6", "password", "Doe", "john.doe@example.org");
    
    particip.add(user);
    users.add(user);
    
    messages.add(createMessage(particip));
    
    messageService.deleteMessages(messages);  
    
    assertNull(messageService.getMessage(messages.get(0).getId()));
  }
  
  
  /* -----------------pomocne metody pro plneni databaze---------------------- */
  
  private Message createMessage(Set<Participant> part) {
    Message msg = new Message();
    Date date = new Date(System.currentTimeMillis());
    msg.setCreated(date);
    msg.setParticipants(part);
    msg.setUpdated(date);
    return messageService.addMessage(msg);
  }
  
  private User createUser(String username, String password, String name, String email) {
    User u = new User();
    u.setUsername(username);
    u.setPassword(password);
    u.setName(name);
    u.setEmail(email);
    u.setSurname("Jan");
    return userService.storeUser(u);
  }
  
  private Group createGroup(String name) {
    Group g = new Group();
    g.setName(name);
    return userService.storeGroup(g);
  }
  
  private List<Blip> createBlips(final User user, Message rootMessage) {
    List<Blip> blips = new ArrayList<Blip>();
    
    Blip blip = new Blip();
    blip.setAutor(user);
    blip.setContents("testovaci zprava, head blip");
    // blip.setParent(null);
    blip.setRootMessage(rootMessage);
    blips.add(messageService.addBlip(blip));

    Blip blip1 = new Blip();
    blip1.setAutor(user);
    blip1.setContents("testovaci zprava, notHeadBlip");
    blip1.setParent(blip);
    blip1.setRootMessage(rootMessage);
    blips.add(messageService.addBlip(blip1));
    
    return blips;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.