Package com.madgnome.jira.plugins.jirachievements.data.services.impl

Source Code of com.madgnome.jira.plugins.jirachievements.data.services.impl.AchievementDaoServiceTest

package com.madgnome.jira.plugins.jirachievements.data.services.impl;

import com.atlassian.activeobjects.external.ActiveObjects;
import com.madgnome.jira.plugins.jirachievements.data.ao.Achievement;
import com.madgnome.jira.plugins.jirachievements.data.ao.Category;
import com.madgnome.jira.plugins.jirachievements.data.ao.UserAchievement;
import com.madgnome.jira.plugins.jirachievements.data.ao.UserWrapper;
import org.junit.Before;
import org.junit.Test;

import java.util.List;
import java.util.Map;

import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;

public class AchievementDaoServiceTest extends ReferencableDaoServiceTest<Achievement, AchievementDaoService>
{
  private UserWrapperDaoService userWrapperDaoService;
  private UserAchievementDaoService userAchievementDaoService;
  private ActiveObjects ao;

  @Before
  public void setUp() throws Exception
  {
    ao = createActiveObjects();
    referencableDaoService = new AchievementDaoService(ao);
    userWrapperDaoService = new UserWrapperDaoService(ao);
    userAchievementDaoService = new UserAchievementDaoService(ao);
  }

  @Test
  public void activateFalseShouldDesactivates() throws Exception
  {
    final Achievement achievement = referencableDaoService.create("Achievement1");
   
    referencableDaoService.activate(achievement.getID(), false);
   
    assertThat(referencableDaoService.get("Achievement1").isActive(), is(false));
  }

  @Test
  public void activateUnknownIdShouldDoNothing() throws Exception
  {
    referencableDaoService.create("Achievement1");

    referencableDaoService.activate(-1, false);
  }

  @Test
  public void allActiveShouldReturnEmptyListIfAllInactive()
  {
    referencableDaoService.activate(referencableDaoService.create("Achievement1").getID(), false);
    referencableDaoService.activate(referencableDaoService.create("Achievement2").getID(), false);
    referencableDaoService.activate(referencableDaoService.create("Achievement3").getID(), false);
    referencableDaoService.activate(referencableDaoService.create("Achievement4").getID(), false);

    final List<Achievement> achievements = referencableDaoService.allActive();

    assertThat(achievements.size(), is(0));
  }

  @Test
  public void allActiveShouldReturnActiveAchievement()
  {
    referencableDaoService.activate(referencableDaoService.create("Achievement1").getID(), true);
    referencableDaoService.activate(referencableDaoService.create("Achievement2").getID(), false);
    referencableDaoService.activate(referencableDaoService.create("Achievement3").getID(), false);
    referencableDaoService.activate(referencableDaoService.create("Achievement4").getID(), false);

    final List<Achievement> achievements = referencableDaoService.allActive();

    assertThat(achievements.size(), is(1));
    assertThat(achievements.get(0).getRef(), is("Achievement1"));
  }

  @Test
  public void getUserNewAchievementsShouldReturnsNewAchivement()
  {
    UserWrapper userWrapper = userWrapperDaoService.create("user", null);
    final Achievement achievement = referencableDaoService.create("Achivement1");
    userAchievementDaoService.addAchievementToUser(achievement, userWrapper);

    final List<Achievement> newAchievements = referencableDaoService.getUserNewAchievements(userWrapper);
    final UserAchievement userAchievement = userAchievementDaoService.get(newAchievements.get(0), userWrapper);

    assertThat(newAchievements.size(), is(1));
    assertThat(userAchievement.isNotified(), is(false));
  }

  @Test
  public void allGroupByCategoryNameShouldReturnAchievementsByCategoryName() throws Exception
  {
    createAchievement("AchievementUser1", Category.USER);
    createAchievement("AchievementUser2", Category.USER);
    createAchievement("AchievementTester1", Category.TESTER);

    final Map<String,List<Achievement>> achievementsByCategoryName = referencableDaoService.allGroupByCategoryName();
   
    assertThat(achievementsByCategoryName.size(), is(2)); // User & Tester
    assertThat(achievementsByCategoryName.get(Category.TESTER.toString()).size(), is(1));
    assertThat(achievementsByCategoryName.get(Category.TESTER.toString()).get(0).getRef(), is("AchievementTester1"));
    assertThat(achievementsByCategoryName.get(Category.USER.toString()).size(), is(2));
  }

  @Test
  public void deleteAllShouldDeleteAllAchievements() throws Exception
  {
    createAchievement("AchievementUser1", Category.USER);
    createAchievement("AchievementUser2", Category.USER);
    createAchievement("AchievementTester1", Category.TESTER);

    assertEquals(referencableDaoService.all().size(), 3);
    referencableDaoService.deleteAll();
    assertEquals(referencableDaoService.all().size(), 0);
  }

  private void createAchievement(String ref, Category category)
  {
    final Achievement achievement = referencableDaoService.create(ref);
    achievement.setCategory(category);
    achievement.save();
  }
}
TOP

Related Classes of com.madgnome.jira.plugins.jirachievements.data.services.impl.AchievementDaoServiceTest

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.