Package com.google.jstestdriver.server.gateway

Source Code of com.google.jstestdriver.server.gateway.MockResponseTest

// Copyright 2012 Google Inc. All Rights Reserved.
package com.google.jstestdriver.server.gateway;

import com.google.common.collect.ImmutableMap;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import junit.framework.TestCase;

import org.easymock.EasyMock;

import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;

/**
* @author rdionne@google.com (Robert Dionne)
*/
public class MockResponseTest extends TestCase {

  private JsonParser parser;

  @Override protected void setUp() throws Exception {
    parser = new JsonParser();
  }

  public void testEntryDescribesMockResponse_status() throws Exception {
    JsonObject entry = parser.parse("{\"status\":0}").getAsJsonObject();
    assertTrue("Should describe mock response",
        MockResponse.entryDescribesMockResponse(entry));
  }

  public void testEntryDescribesMockResponse_responseText() throws Exception {
    JsonObject entry = parser.parse("{\"responseText\":0}").getAsJsonObject();
    assertTrue("Should describe mock response",
        MockResponse.entryDescribesMockResponse(entry));
  }

  public void testEntryDescribesMockResponse_contentType() throws Exception {
    JsonObject entry = parser.parse("{\"contentType\":0}").getAsJsonObject();
    assertTrue("Should describe mock response",
        MockResponse.entryDescribesMockResponse(entry));
  }

  public void testEntryDescribesMockResponse_responseHeaders() throws Exception {
    JsonObject entry = parser.parse("{\"responseHeaders\":{}}").getAsJsonObject();
    assertTrue("Should describe mock response",
        MockResponse.entryDescribesMockResponse(entry));
  }

  public void testEntryDescribesMockResponse_negative() throws Exception {
    JsonObject entry = parser.parse("{\"server\":{}}").getAsJsonObject();
    assertFalse("Should describe mock response",
        MockResponse.entryDescribesMockResponse(entry));
  }

  public void testBuildFromEntry() throws Exception {
    JsonObject entry = parser.parse("{" +
        "\"status\":200," +
        "\"responseHeaders\":{}," +
        "\"contentType\":\"text/html\"," +
        "\"responseText\":\"hello world\"" +
    "}").getAsJsonObject();
    MockResponse mockResponse = MockResponse.buildFromEntry(entry);
    assertEquals(
        "status should match", Integer.valueOf(200), mockResponse.status);
    assertEquals(
        "responseHeaders should match", 0, mockResponse.responseHeaders.size());
    assertEquals(
        "contentType should match", "text/html", mockResponse.contentType);
    assertEquals(
        "repsonseText should match", "hello world", mockResponse.responseText);
  }

  public void testWriteTo() throws Exception {
    HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    PrintWriter writer = new PrintWriter(out);
    MockResponse mockResponse = new MockResponse(
        200, ImmutableMap.of("X-Test", "Blah"), "text/plain", "hello world");
    /* expect */ response.setStatus(200);
    /* expect */ response.setHeader("X-Test", "Blah");
    /* expect */ response.setContentType("text/plain");
    EasyMock.expect(response.getWriter()).andReturn(writer);
    EasyMock.replay(response);
    mockResponse.writeTo(response);
    writer.flush();
    EasyMock.verify(response);
    assertEquals("responseText should match", "hello world", out.toString());
  }
}
TOP

Related Classes of com.google.jstestdriver.server.gateway.MockResponseTest

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.