Package com.atomrain.labs.architect.mybatis

Source Code of com.atomrain.labs.architect.mybatis.UserServiceImplTest

package com.atomrain.labs.architect.mybatis;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests;
import org.springframework.transaction.annotation.Transactional;

import com.atomrain.labs.architect.domain.User;
import com.atomrain.labs.architect.service.UserServiceException;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:META-INF/test-mybatis.xml"})
@Transactional
public class UserServiceImplTest extends AbstractTransactionalTestNGSpringContextTests {
 
  @Autowired(required=true)
  protected UserServiceImpl userService;
 
  @Autowired(required=true)
  protected MessageSource messageSource;
 
  private long id;
  private String username;
  private String password;
  private String email;
 
  private List<UserServiceException> exceptions;
 
  @Before
  public void beforeTest() {
    username = "tester";
    password = "password";
    email = "tester@test.com";
    exceptions = new ArrayList<UserServiceException>();
  }
 
  @After
  public void afterTest() {
    for (UserServiceException e : exceptions) {
      String message = messageSource.getMessage(e.getCode(), e.getArgs(), Locale.getDefault());
      System.out.println(message);
      System.out.println(e.joinStackTrace());
    }
  }

  /**
   * Satisfies the following services:
   *   {@code UserServiceImpl.class.createLazyUser()}
   *   {@code UserServiceImpl.class.getUserByEmail()}
   *   {@code UserServiceImpl.class.getUserById()}
   *   {@code UserServiceImpl.class.removeUserById()}
   */
  @Test
  public void lazyUserServices() {
    boolean pass = true;
    // satisfies createLazyUser
    try {
      userService.createLazyUser(username, password, email);
    } catch (UserServiceException e) {
      pass = false;
      exceptions.add(e);
    }
    // satisfies getUserByEmail
    User user;
    try {
      user = userService.getUserByEmail(email);
    } catch (UserServiceException e) {
      pass = false;
      user = new User();
      exceptions.add(e);
    }
    pass = (pass &&
        username.equals(user.getUsername()) &&
          password.equals(user.getPassword()) &&
          email.equals(user.getEmail()));
    id = user.getId();
    // satisfies getUserById
    User userById;
    try {
      userById = userService.getUserById(id);
    } catch (UserServiceException e) {
      pass = false;
      userById = new User();
      exceptions.add(e);
    }
    pass = (pass && user.getUsername().equals(userById.getUsername()));
    // satisfies removeUserById
    try {
      userService.removeUserById(id);
    } catch (UserServiceException e) {
      pass = false;
      exceptions.add(e);
    }
    try {
      userById = userService.getUserById(id);
    } catch (UserServiceException e) {
      pass = false;
      userById = new User();
      exceptions.add(e);
    }
    pass = (pass && userById == null); // expect null
   
    Assert.assertTrue(pass);
  }

  /**
   * Satisfies the following services:
   *   {@code UserServiceImpl.class.getEagerUser()}
   *   {@code UserServiceImpl.class.getUserByUsername()}
   *   {@code UserServiceImpl.class.removeUserByUsername()}
   *   {@code UserServiceImpl.class.removeUserByEmail()}
   */
  @Test
  public void eagerUserServices() {
    boolean pass = true;
    // satisfies getEagerUser
    // satisfies getUserByUsername
    User user;
    try {
      user = userService.createEagerUser(username, password, email);
    } catch (UserServiceException e) {
      pass = false;
      user = new User();
      exceptions.add(e);
    }
    pass = (pass &&
        username.equals(user.getUsername()) &&
          password.equals(user.getPassword()) &&
          email.equals(user.getEmail()));
    id = user.getId();
    // satisfies removeUserByUsername
    try {
      userService.removeUserByUsername(user.getUsername());
    } catch (UserServiceException e) {
      pass = false;
      exceptions.add(e);
    }
    User userRemoved = null;
    try {
      userRemoved = userService.getUserById(id);
    } catch (UserServiceException e ) {
      pass = false;
      exceptions.add(e);
    }
    pass = (pass && userRemoved == null); // expect null
   
    // satisfies removeUserByEmail
    try {
      user = userService.createEagerUser(username, password, email);
    } catch (UserServiceException e) {
      pass = false;
      user = new User();
      exceptions.add(e);
    }
    try {
      userService.removeUserByEmail(email);
    } catch (UserServiceException e) {
      pass = false;
      exceptions.add(e);
    }
    try {
      userRemoved = userService.getUserByEmail(email);
    } catch (UserServiceException e) {
      pass = false;
      //expections.add(e);
    }
    pass = (pass && userRemoved == null); // expect null
   
    Assert.assertTrue(pass);
  }
}
TOP

Related Classes of com.atomrain.labs.architect.mybatis.UserServiceImplTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.