Package br.com.mystudies.service

Source Code of br.com.mystudies.service.SrpintServiceBeanTest

package br.com.mystudies.service;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;

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

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;

import br.com.mystudies.domain.entity.Sprint;
import br.com.mystudies.domain.entity.Story;
import br.com.mystudies.domain.enun.SprintStatus;
import br.com.mystudies.domain.enun.StoryStatus;
import br.com.mystudies.service.persistence.SprintDao;

public class SrpintServiceBeanTest {

  @InjectMocks
  private SprintServiceBean sprintServiceBean;


  @Mock
  private SprintDao sprintDao;


  @Before
  public void setUp() throws Exception {
    sprintServiceBean = new SprintServiceBean();
    initMocks(this);
  }


  @After
  public void tearDown() throws Exception {
    sprintServiceBean = null;
  }


  @Test
  public void shouldReturnTrueWhileContainsSprintInRun() {

    when(sprintDao.findSprintByStatus(SprintStatus.RUNNING)).thenReturn(new Sprint());

    boolean containsSprintInRun = sprintServiceBean.containsSprintInRun();

    verify(sprintDao).findSprintByStatus(SprintStatus.RUNNING);

    assertTrue(containsSprintInRun);
  }



  @Test
  public void shouldReturnFalseWhileDontContainsSprintInRun() {

    when(sprintDao.findSprintByStatus(SprintStatus.RUNNING)).thenReturn(null);

    boolean containsSprintInRun = sprintServiceBean.containsSprintInRun();

    verify(sprintDao).findSprintByStatus(SprintStatus.RUNNING);

    assertFalse(containsSprintInRun);
  }



  @Test(expected=IllegalStateException.class)
  public void shouldThrowExceptionWhenContainsSprintInRunning() {

    when(sprintDao.findSprintByStatus(SprintStatus.RUNNING)).thenReturn(new Sprint());

    sprintServiceBean.create(new Sprint());

  }

  @Test()
  public void shouldCreateSprintWhenHaventSprintInRunning() {

    Sprint sprint = new Sprint(
        new Date(),
        new Date(),
        SprintStatus.RUNNING
        );

    when(sprintDao.findSprintByStatus(SprintStatus.RUNNING)).thenReturn(null);
    when(sprintDao.persist(any(Sprint.class) )).thenReturn(sprint);


    sprint = sprintServiceBean.create(sprint);

    verify(sprintDao).findSprintByStatus(SprintStatus.RUNNING);
    verify(sprintDao).persist(sprint);

    assertNotNull(sprint);
    assertEquals(SprintStatus.RUNNING, sprint.getSprintStatus());
    assertEquals(new Long(0), sprint.getEstimatedPoints());


  }


  @Test()
  public void shouldReturnNullWhenHaventSprintInRunning() {

    when(sprintDao.findSprintByStatus(SprintStatus.RUNNING)).thenReturn(null);

    Sprint sprint = sprintServiceBean.getCurrentSprint();

    verify(sprintDao).findSprintByStatus(SprintStatus.RUNNING);

    assertNull(sprint);

  }


  @Test()
  public void shouldReturnNullWhenHaveSprintInRunning() {

    when(sprintDao.findSprintByStatus(SprintStatus.RUNNING)).thenReturn(new Sprint());

    Sprint sprint = sprintServiceBean.getCurrentSprint();

    verify(sprintDao).findSprintByStatus(SprintStatus.RUNNING);

    assertNotNull(sprint);
  }


  @Test(expected=IllegalStateException.class)
  public void shouldThrowAExceptionWhenHaventSprintInRunning() {

    when(sprintDao.findSprintByStatus(SprintStatus.RUNNING)).thenReturn(null);

    sprintServiceBean.addStoryInSprint(new Story());

    verify(sprintDao).findSprintByStatus(SprintStatus.RUNNING);

  }


  @Test()
  public void shouldReturnSprintWithStoryWithStatusInSprint() {

    Sprint sprint = new Sprint();
    sprint.setStories(new HashSet<Story>());
    sprint.setEstimatedPoints(new Long(3));

    Story story = new Story();
    story.setStatus(StoryStatus.BACKLOG);
    story.setPoints(3);

    when(sprintDao.findSprintByStatus(SprintStatus.RUNNING)).thenReturn(sprint);
    when(sprintDao.update(sprint)).thenReturn(sprint);

    sprint = sprintServiceBean.addStoryInSprint(story);

    verify(sprintDao).findSprintByStatus(SprintStatus.RUNNING);
    verify(sprintDao).update(sprint);

    story = sprint.getStories().iterator().next();

    assertEquals(StoryStatus.TODO, story.getStatus());
    assertEquals(sprint, story.getSprint());
    assertEquals(new Long(6), sprint.getEstimatedPoints());

  }

  @Test()
  public void shouldReturnListAllSprint() {


    when(sprintDao.listAll()).thenReturn(new ArrayList<Sprint>());

    List<Sprint> sprints =
        sprintServiceBean.getAllSprints();

    verify(sprintDao).listAll();

    assertNotNull(sprints);

  }


}
TOP

Related Classes of br.com.mystudies.service.SrpintServiceBeanTest

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.