Package org.red5.server.service

Source Code of org.red5.server.service.EchoServiceTest

/*
* RED5 Open Source Flash Server - http://code.google.com/p/red5/
*
* Copyright 2006-2014 by respective authors (see below). All rights reserved.
*
* Licensed 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.red5.server.service;

import java.io.IOException;
import java.io.StringReader;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import junit.framework.TestCase;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

/**
* @author The Red5 Project
* @author Chris Allen (mrchrisallen@gmail.com)
*/
public class EchoServiceTest extends TestCase {

  final private Logger log = LoggerFactory.getLogger(this.getClass());

  private EchoService echoService;

  /** {@inheritDoc} */
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    echoService = new EchoService();
  }

  /** {@inheritDoc} */
  @Override
  protected void tearDown() throws Exception {
    super.tearDown();
    echoService = null;
  }

  public void testEchoArray() {
    Object[] startArray = { "first", "second", "third" };
    Object[] resultArray = echoService.echoArray(startArray);
    assertEquals(startArray[0], resultArray[0]);
    assertEquals(startArray[1], resultArray[1]);
    assertEquals(startArray[2], resultArray[2]);
  }

  public void testEchoBoolean() {
    boolean b = true;
    assertTrue(echoService.echoBoolean(b));
  }

  public void testEchoDate() throws ParseException {
    SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy");
    Date startDate = dateFormat.parse("01-26-1974");
    Date returnDate = echoService.echoDate(startDate);
    assertEquals(startDate.getTime(), returnDate.getTime());
  }

  @SuppressWarnings("unchecked")
  public void testEchoList() {
    List<String> startList = new ArrayList<String>();
    startList.add(0, "first");
    startList.add(1, "second");
    List<String> resultList = echoService.echoList(startList);
    assertEquals(startList.get(0), resultList.get(0));
    assertEquals(startList.get(1), resultList.get(1));
  }

  public void testEchoNumber() {
    double num = 100;
    assertEquals(200, echoService.echoNumber(num), echoService.echoNumber(num));
  }

  @SuppressWarnings("unchecked")
  public void testEchoObject() {
    String str = "entry one";
    Date date = new Date();
    Map<String, Comparable<?>> startMap = new HashMap<String, Comparable<?>>();
    startMap.put("string", str);
    startMap.put("date", date);
    Map<String, Comparable<?>> resultMap = (Map<String, Comparable<?>>) echoService.echoObject(startMap);
    assertEquals(startMap.get("string"), resultMap.get("string"));
    assertEquals(startMap.get("date"), resultMap.get("date"));
  }

  public void testEchoString() {
    String str = "This is a test.";
    assertEquals("This is a test.", echoService.echoString(str));
  }

  public void testEchoXML() throws SAXException, IOException, ParserConfigurationException {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    String xmlStr = "<root testAttribute=\"test value\">this is a test</root>";
    StringReader reader = new StringReader(xmlStr);
    InputSource source = new InputSource(reader);
    Document xml = builder.parse(source);
    Document resultXML = echoService.echoXML(xml);
    assertEquals(xml.getFirstChild().getNodeValue(), resultXML.getFirstChild().getNodeValue());
  }

  public void testEchoMultibyteStrings() {
    java.nio.ByteBuffer buf = ByteBuffer.allocate(7);
    buf.put((byte) 0xE4);
    buf.put((byte) 0xF6);
    buf.put((byte) 0xFC);
    buf.put((byte) 0xC4);
    buf.put((byte) 0xD6);
    buf.put((byte) 0xDC);
    buf.put((byte) 0xDF);
    buf.flip();

    final Charset cs = Charset.forName("iso-8859-1");
    assertNotNull(cs);
    final String inputStr = cs.decode(buf).toString();
    log.debug("passing input string: {}", inputStr);
    final String outputStr = echoService.echoString(inputStr);
    assertEquals("unequal strings", inputStr, outputStr);
    log.debug("got output string: {}", outputStr);

    java.nio.ByteBuffer outputBuf = cs.encode(outputStr);

    for (int i = 0; i < 7; i++) {
      assertEquals("unexpected byte", buf.get(i), outputBuf.get(i));
    }
  }
}
TOP

Related Classes of org.red5.server.service.EchoServiceTest

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.