package com.aperture_software.glados_wiki.tests; import com.aperture_software.glados_wiki.entities.Group; import com.aperture_software.glados_wiki.junit.MyTestcase; import com.aperture_software.glados_wiki.services.GroupService; import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import junit.framework.Assert; import org.apache.commons.lang3.ObjectUtils; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.List; import java.util.UUID; /** * Created by jhyun on 13. 12. 25. */ public class GroupServiceTests extends MyTestcase { @Autowired private GroupService groupService; private List<Group> everyGroups = new ArrayList<Group>(); @Before public void prepare() { List<String> descs = ImmutableList.<String>builder() .add("foo").add("bar").add("zoo").add("spam").add("eggs") .add("alpha").add("bravo").add("charlie").add("delta").add("echo") .build(); for (String desc : descs) { final String name = UUID.randomUUID().toString(); Group g = groupService.create(name, desc); everyGroups.add(g); } } @After public void cleanup() { for (Group g : everyGroups) { groupService.delete(g); } } @Test public void t_01() { List<Group> l = groupService.list(Optional.<String>of("o"), 0, Integer.MAX_VALUE); List<String> l2 = Lists.transform(l, new GroupDescription()); LOG.debug("FOUND GROUPS = " + ObjectUtils.toString(l2)); for (String s : l2) { Assert.assertTrue(s.toLowerCase().contains("o")); } } @Test public void t_02() { List<Group> l = groupService.list(Optional.<String>of("0"), 0, Integer.MAX_VALUE); List<String> l2 = Lists.transform(l, new GroupName()); LOG.debug("FOUND GROUPS = " + ObjectUtils.toString(l2)); for (String s : l2) { Assert.assertTrue(s.toLowerCase().contains("0")); } } private static class GroupName implements Function<Group, String> { @Override public String apply(Group input) { if (input != null) { return input.getName(); } else { return null; } } } private static class GroupDescription implements Function<Group, String> { @Override public String apply(Group input) { if (input != null) { return input.getDescription(); } else { return null; } } } }