Package net.sf.arianne.marboard.server.core.parser

Source Code of net.sf.arianne.marboard.server.core.parser.AttributesParserTest

package net.sf.arianne.marboard.server.core.parser;

import java.text.ParseException;

import marauroa.common.game.Attributes;
import marauroa.common.game.RPClass;

import org.junit.Test;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;

/**
* Tests for AttributesParser
*
* @author hendrik
*/
public class AttributesParserTest {

  /**
   * @throws ParseException
   */
  @Test
  public void testFindEndPosOfAttribute() throws ParseException {
    Attributes attributes = new Attributes(RPClass.getBaseRPObjectDefault());
    AttributesParser parser = new AttributesParser(": [a=b][c=d]", attributes);
    assertThat(Integer.valueOf(parser.findEndPosOfAttribute(0)), equalTo(Integer.valueOf(6)));

    parser = new AttributesParser(": [a=b\\]e][c=d]", attributes);
    assertThat(Integer.valueOf(parser.findEndPosOfAttribute(0)), equalTo(Integer.valueOf(9)));
  }


  /**
   * @throws ParseException
   */
  @Test(expected=ParseException.class)
  public void testFindEndPosOfAttributeFailNoClose() throws ParseException {
    Attributes attributes = new Attributes(RPClass.getBaseRPObjectDefault());
    AttributesParser parser = new AttributesParser(": [a=b\\][c=d", attributes);
    parser.findEndPosOfAttribute(0);
  }


  /**
   * @throws ParseException
   */
  @Test
  public void testCheckSplitterPosition() throws ParseException {
    Attributes attributes = new Attributes(RPClass.getBaseRPObjectDefault());
    AttributesParser parser = new AttributesParser("", attributes);
    parser.checkSplitterPosition(0, 1, 2);
  }

  /**
   * @throws ParseException
   */
  @Test(expected=ParseException.class)
  public void testCheckSplitterPositionFailNo() throws ParseException {
    Attributes attributes = new Attributes(RPClass.getBaseRPObjectDefault());
    AttributesParser parser = new AttributesParser("", attributes);
    parser.checkSplitterPosition(0, -1, 2);
  }

  /**
   * @throws ParseException
   */
  @Test(expected=ParseException.class)
  public void testCheckSplitterPositionFailOutside() throws ParseException {
    Attributes attributes = new Attributes(RPClass.getBaseRPObjectDefault());
    AttributesParser parser = new AttributesParser("", attributes);
    parser.checkSplitterPosition(0, 3, 2);
  }


  /**
   * @throws ParseException
   */
  @Test
  public void testParseAttribute() throws ParseException {
    Attributes attributes = new Attributes(RPClass.getBaseRPObjectDefault());
    AttributesParser parser = new AttributesParser(": [a=b][c=d]", attributes);
    parser.parseAttribute(2, 6);
    assertThat(attributes.get("a"), equalTo("b"));
  }


  /**
   * @throws ParseException
   */
  @Test
  public void testParse() throws ParseException {
    Attributes attributes = new Attributes(RPClass.getBaseRPObjectDefault());
    AttributesParser parser = new AttributesParser(": [a=b][c=d][e=\\\\f][g=h\\]abcd][i=\\]]", attributes);
    parser.parse();
    assertThat(attributes.get("a"), equalTo("b"));
    assertThat(attributes.get("c"), equalTo("d"));
    assertThat(attributes.get("e"), equalTo("\\f"));
    assertThat(attributes.get("g"), equalTo("h]abcd"));
    assertThat(attributes.get("i"), equalTo("]"));
  }

  /**
   * @throws ParseException
   */
  @Test(expected=ParseException.class)
  public void testParseFail() throws ParseException {
    Attributes attributes = new Attributes(RPClass.getBaseRPObjectDefault());
    AttributesParser parser = new AttributesParser(": [a=b][c=d", attributes);
    parser.parse();
  }
}
TOP

Related Classes of net.sf.arianne.marboard.server.core.parser.AttributesParserTest

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.