package svanimpe.reminders.json; import java.io.ByteArrayInputStream; import java.io.IOException; import javax.ws.rs.BadRequestException; import org.junit.Test; import svanimpe.reminders.domain.Role; import svanimpe.reminders.domain.User; import static org.junit.Assert.*; import static svanimpe.reminders.util.Utilities.*; public class UserReaderTest { private final UserReader reader = new UserReader(); @Test public void testIsUserReadable() { assertTrue(reader.isReadable(User.class, null, null, null)); } @Test public void testReadUser() throws Exception { User result = reader.readFrom(User.class, null, null, null, null, getResourceAsStream("/json/user/read.json")); assertEquals("someuser", result.getUsername()); assertEquals("Some User", result.getFullName()); assertEquals("f75778f7425be4db0369d09af37a6c2b9a83dea0e53e7bd57412e4b060e607f7", result.getPassword()); assertArrayEquals(new Role[] {Role.ADMINISTRATOR, Role.USER}, result.getRoles().toArray()); } @Test(expected = BadRequestException.class) public void testUsernameNotAString() throws IOException { User result = reader.readFrom(User.class, null, null, null, null, getResourceAsStream("/json/user/read-invalid-username.json")); } @Test(expected = BadRequestException.class) public void testFullNameNotAString() throws IOException { User result = reader.readFrom(User.class, null, null, null, null, getResourceAsStream("/json/user/read-invalid-fullname.json")); } @Test(expected = BadRequestException.class) public void testPasswordNotAString() throws IOException { User result = reader.readFrom(User.class, null, null, null, null, getResourceAsStream("/json/user/read-invalid-password.json")); } @Test(expected = BadRequestException.class) public void testInvalidRole() throws IOException { User result = reader.readFrom(User.class, null, null, null, null, getResourceAsStream("/json/user/read-invalid-role-1.json")); } @Test(expected = BadRequestException.class) public void testRoleNotAString() throws IOException { User result = reader.readFrom(User.class, null, null, null, null, getResourceAsStream("/json/user/read-invalid-role-2.json")); } @Test(expected = BadRequestException.class) public void testRolesNotAnArray() throws IOException { User result = reader.readFrom(User.class, null, null, null, null, getResourceAsStream("/json/user/read-invalid-roles.json")); } @Test(expected = BadRequestException.class) public void testInvalidJson() throws IOException { String invalidJson = "{]"; User result = reader.readFrom(User.class, null, null, null, null, new ByteArrayInputStream(invalidJson.getBytes())); } }