package svanimpe.reminders.json; import java.io.ByteArrayOutputStream; import java.util.ArrayList; import java.util.List; import javax.ws.rs.core.GenericEntity; 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 UserListWriterTest { private final UserListWriter writer = new UserListWriter(); private final List<User> users = new ArrayList<>(); @Test public void testIsUserListWritable() { GenericEntity<List<User>> usersEntity = new GenericEntity<List<User>>(users){}; assertTrue(writer.isWriteable(usersEntity.getRawType(), usersEntity.getType(), null, null)); } @Test public void testWriteUserList() throws Exception { User first = new User(); first.setUsername("someuser"); first.setFullName("Some User"); first.setPassword("supersecret"); first.getRoles().add(Role.ADMINISTRATOR); User second = new User(); second.setUsername("someotheruser"); second.setFullName("Some Other User"); second.setPassword("supersecret"); second.getRoles().add(Role.USER); users.add(first); users.add(second); ByteArrayOutputStream output = new ByteArrayOutputStream(); writer.writeTo(users, null, null, null, null, null, output); byte[] expectedOutput = getResourceAsBytes("/json/user/write-list.json"); assertArrayEquals(expectedOutput, output.toByteArray()); } }