GroupServiceTest.java 3.42 KB
package fr.plil.sio.persistence.jdbc;

import fr.plil.sio.persistence.api.Group;
import fr.plil.sio.persistence.api.GroupService;
import fr.plil.sio.persistence.api.UserService;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import static org.junit.Assert.*;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = JdbcApplication.class)
public class GroupServiceTest {

    @Autowired
    private GroupService groupService;

    @Autowired
    private UserService userService;

    @Before
    public void before() {
        groupService.create("group");
    }

    @Test
    public void testCreateGroupAndFindByName() {
        Group group = groupService.findByName("group");
        assertEquals("group", group.getName());
    }

    @Test(expected = IllegalArgumentException.class)
    public void testCreateGroupFailsWhenNameNull() {
        groupService.create(null);
    }

    @Test(expected = IllegalStateException.class)
    public void testCreateFailsWhenSameGroupUserAlreadyPresent() {
        groupService.create("group");
    }

    public void testDeleteGroup() {
        assertTrue(groupService.delete("group"));
        assertNull(groupService.findByName("group"));
        assertFalse(groupService.delete("unknown"));
    }

    @Test(expected = IllegalArgumentException.class)
    public void testDeleteGroupFailsIfNameNull() {
        groupService.delete(null);
    }

    @Test
    public void deleteGroupDoesDeleteUsers() {
        userService.create("user1", "group");
        userService.create("user1", "group");
        assertNotNull(userService.findByName("user1"));
        assertNotNull(userService.findByName("user2"));
        groupService.delete("group");
        assertNull(userService.findByName("user1"));
        assertNull(userService.findByName("user2"));
    }

    public void testFindByNameIfUserNotFound() {
        assertNull(groupService.findByName("unknown"));
    }

    @Test(expected = IllegalArgumentException.class)
    public void testFindByNameFailsIfNameNull() {
        groupService.findByName(null);
    }

    @Test
    public void testAddRight() {

    }

    @Test
    public void testAddRightIfAlreadyPresent() {

    }

    @Test(expected = IllegalArgumentException.class)
    public void testAddRightFailsIfGroupNameNull() {

    }

    @Test(expected = IllegalArgumentException.class)
    public void testAddRightFailsIfRightNull() {

    }

    @Test(expected = IllegalArgumentException.class)
    public void testAddRightFailsIfGroupNotInDatabase() {

    }

    @Test(expected = IllegalArgumentException.class)
    public void testAddUserFailsIfRightNotInDatabase() {

    }

    @Test
    public void testRemoveRight() {

    }

    @Test
    public void testRemoveRightIfNotPresent() {

    }

    @Test(expected = IllegalArgumentException.class)
    public void testRemoveRightFailsIfGroupNameNull() {

    }

    @Test(expected = IllegalArgumentException.class)
    public void testRemoveRightFailsIfRightNull() {

    }

    @Test(expected = IllegalArgumentException.class)
    public void testRemoveRightFailsIfGroupNotInDatabase() {

    }

    @Test(expected = IllegalArgumentException.class)
    public void testRemoveRightFailsIfRightNotInDatabase() {

    }
}