Package org.apache.wink.server.internal.providers.entity.html

Source Code of org.apache.wink.server.internal.providers.entity.html.HtmlRepresentationCollectionDefaultTest$DefectsDefaultResource

/*******************************************************************************
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*   http://www.apache.org/licenses/LICENSE-2.0
*  Unless required by applicable law or agreed to in writing,
*  software distributed under the License is distributed on an
*  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
*  KIND, either express or implied.  See the License for the
*  specific language governing permissions and limitations
*  under the License.
*******************************************************************************/

package org.apache.wink.server.internal.providers.entity.html;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;

import org.apache.wink.common.model.synd.SyndCategory;
import org.apache.wink.common.model.synd.SyndFeed;
import org.apache.wink.common.model.synd.SyndLink;
import org.apache.wink.common.model.synd.SyndPerson;
import org.apache.wink.common.model.synd.SyndText;
import org.junit.Test;
import org.springframework.mock.web.MockHttpServletResponse;

/**
* Test default Html Representation for collection resource.
*/
public class HtmlRepresentationCollectionDefaultTest extends HtmlMockServletInvocationTest {

    private static Date             CURRENT_DATE        = new Date();
    private static SimpleDateFormat simpleDateFormat    = new SimpleDateFormat("dd/MM/yyyy");       //$NON-NLS-1$
    private static final String     COL_ID              = "10";
    private static final String     COL_TITLE           = "Collection";
    private static final String     COL_OWNER           = "Tali Col";
    private static final String     COL_SUB_TITLE       = "sub title of Collection";
    private static final String     COL_CATEGORY_SCHEME = "urn:com:hp:categories:collection:scheme";
    private static final String     COL_CATEGORY_TERM   = "low";
    private static final String     COL_LINK_REL        = "urn:com:hp:links:collection:rel";
    private static final String     COL_LINK_TYPE       = MediaType.TEXT_HTML;
    private static final String     COL_LINK_HREF       = "www.google.com";

    @Path("/defectsDefault")
    public static class DefectsDefaultResource {

        @GET
        @Produces(MediaType.TEXT_HTML)
        public Object getSomeDefects(@Context HttpServletResponse httpServletResponse,
                                     @Context HttpServletRequest httpServletRequest) {

            return new HtmlDescriptor(createSyndFeed());
        }
    } // class DefectsDefaultResource

    /**
     * The method invokes the Resource and check the response.
     *
     * @throws IOException
     */
    @Test
    public void testGetCollectionHtmlDefault() throws Exception {
        MockHttpServletResponse response =
            invoke(constructMockRequest("GET", "/defectsDefault", MediaType.TEXT_HTML));
        assertEquals("HTTP status", 200, response.getStatus());
        String content = response.getContentAsString();
        assertEquals("body", HtmlConstants.DEFAULT_JSP_COLLECTION_PATH, content);
    }

    /**
     * The method tests the CollectionHtmlDefaultAdapter that is used for
     * default case.
     */
    @Test
    public void testCollectionHtmlDefaultAdapter() {
        SyndFeed syndFeed = createSyndFeed();
        HtmlSyndFeedAdapter collectionAdapter = new HtmlSyndFeedAdapter(syndFeed);
        assertEquals("id", COL_ID, collectionAdapter.getId());
        assertEquals("updated", simpleDateFormat.format(CURRENT_DATE), collectionAdapter
            .getUpdated());
        assertEquals("title", COL_TITLE, collectionAdapter.getTitle());
        assertEquals("link rel", COL_LINK_REL, collectionAdapter.getLinks().get(0).getRel());
        assertEquals("link type", COL_LINK_TYPE, collectionAdapter.getLinks().get(0).getType());
        assertEquals("link href", COL_LINK_HREF, collectionAdapter.getLinks().get(0).getHref());
        assertEquals("categories scheme", COL_CATEGORY_SCHEME, collectionAdapter.getCategories()
            .get(0).getScheme());
        assertEquals("categories term", COL_CATEGORY_TERM, collectionAdapter.getCategories().get(0)
            .getTerm());
        assertEquals("owner", COL_OWNER, collectionAdapter.getAuthor());
        assertEquals("summary", COL_SUB_TITLE, collectionAdapter.getSubTitle());
        // assertEquals("id", ENTRY_NAME, new HtmlSyndEntryAdapter(
        // collectionAdapter.getEntryResource(0)).getId());
    }

    /**
     * The method creates CollectionResource with dummy data.
     *
     * @return CollectionResource<Object>
     */
    public static SyndFeed createSyndFeed() {
        SyndFeed feed = new SyndFeed();
        feed.setId(COL_ID);
        feed.setUpdated(CURRENT_DATE);
        feed.setTitle(new SyndText(COL_TITLE));
        SyndLink syndLink = new SyndLink();
        syndLink.setHref(COL_LINK_HREF);
        syndLink.setType(COL_LINK_TYPE);
        syndLink.setRel(COL_LINK_REL);
        feed.addLink(syndLink);
        SyndCategory category = new SyndCategory();
        category.setScheme(COL_CATEGORY_SCHEME);
        category.setTerm(COL_CATEGORY_TERM);
        feed.addCategory(category);
        SyndPerson person = new SyndPerson();
        person.setName(COL_OWNER);
        feed.addAuthor(person);
        feed.setSubtitle(new SyndText(COL_SUB_TITLE));
        return feed;
    }

}
TOP

Related Classes of org.apache.wink.server.internal.providers.entity.html.HtmlRepresentationCollectionDefaultTest$DefectsDefaultResource

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.