/******************************************************************************* * Copyright (c) 2010-2014 SAP AG and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * SAP AG - initial API and implementation *******************************************************************************/ package org.eclipse.skalli.core.rest.resources; import java.text.MessageFormat; import org.eclipse.skalli.core.rest.JSONRestWriter; import org.eclipse.skalli.core.rest.XMLRestWriter; import org.eclipse.skalli.model.User; import org.eclipse.skalli.services.rest.RestWriter; import org.eclipse.skalli.testutil.RestWriterTestBase; import org.junit.Test; @SuppressWarnings("nls") public class UserConverterTest extends RestWriterTestBase { private static final String NAMESPACE_ATTRIBUTES = MessageFormat.format(ATTRIBUTES_PATTERN, UserConverter.NAMESPACE, "user", UserConverter.API_VERSION); @Test public void testMarshalAnonymousUserXML() throws Exception { User user = new User("me"); XMLRestWriter restWriter = new XMLRestWriter(writer, "http://example.org"); marshalUser(user, restWriter); assertEqualsXML("<user " + NAMESPACE_ATTRIBUTES + ">" + "<link rel=\"self\" href=\"http://example.org/api/users/me\"/>" + "<userId>me</userId></user>"); } @Test public void testMarshalUserXML() throws Exception { User user = newUser(); XMLRestWriter restWriter = new XMLRestWriter(writer, "http://example.org"); marshalUser(user, restWriter); assertEqualsXML("<user " + NAMESPACE_ATTRIBUTES + ">" + "<link rel=\"self\" href=\"http://example.org/api/users/me\"/>" + "<userId>me</userId>" + "<firstname>john</firstname>" + "<lastname>doe</lastname>" + "<email>mail@example.org</email>" + "<phone>4711</phone>" + "<mobile>0815</mobile>" + "<sip>sip</sip>" + "<company>Acme Inc.</company>" + "<department>whatever</department>" + "<location>nowhere</location>" + "<room>basement</room>" + "</user>"); } @Test public void testMarshalAnonymousUserJSON() throws Exception { User user = new User("me"); JSONRestWriter restWriter = new JSONRestWriter(writer, "http://example.org"); marshalUser(user, restWriter); assertEqualsJSON("{" + "\"namespace\":\""+ UserConverter.NAMESPACE + "\",\"apiVersion\":\"" + UserConverter.API_VERSION + "\"," + "\"link\":{\"rel\":\"self\",\"href\":\"http://example.org/api/users/me\"}," + "\"userId\":\"me\"}"); } @Test public void testMarshalUserJSON() throws Exception { User user = newUser(); JSONRestWriter restWriter = new JSONRestWriter(writer, "http://example.org"); marshalUser(user, restWriter); assertEqualsJSON("{" + "\"namespace\":\""+ UserConverter.NAMESPACE + "\",\"apiVersion\":\"" + UserConverter.API_VERSION + "\"," + "\"link\":{\"rel\":\"self\",\"href\":\"http://example.org/api/users/me\"}," + "\"userId\":\"me\"," + "\"firstname\":\"john\"," + "\"lastname\":\"doe\"," + "\"email\":\"mail@example.org\"," + "\"phone\":\"4711\"," + "\"mobile\":\"0815\"," + "\"sip\":\"sip\"," + "\"company\":\"Acme Inc.\"," + "\"department\":\"whatever\"," + "\"location\":\"nowhere\"," + "\"room\":\"basement\"" + "}"); } private User newUser() { User user = new User("me"); user.setFirstname("john"); user.setLastname("doe"); user.setEmail("mail@example.org"); user.setTelephone("4711"); user.setMobile("0815"); user.setSip("sip"); user.setCompany("Acme Inc."); user.setDepartment("whatever"); user.setLocation("nowhere"); user.setRoom("basement"); return user; } private void marshalUser(User user, RestWriter restWriter) throws Exception { UserConverter converter = new UserConverter(); converter.marshal(user, restWriter); restWriter.flush(); } }