Package com.gistlabs.mechanize.document.json.query

Source Code of com.gistlabs.mechanize.document.json.query.AttributeNodeSelectorTest

/**
* Copyright (C) 2012-2014 Gist Labs, LLC. (http://gistlabs.com)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package com.gistlabs.mechanize.document.json.query;

import static org.junit.Assert.*;

import java.util.List;

import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Test;

import com.gistlabs.mechanize.document.json.node.JsonNode;
import com.gistlabs.mechanize.document.json.node.impl.ObjectNodeImpl;
import com.gistlabs.mechanize.util.css_query.NodeSelector;


public class AttributeNodeSelectorTest {

  protected NodeSelector<JsonNode> build(final String json) throws JSONException {
    ObjectNodeImpl node = new ObjectNodeImpl(new JSONObject(json));
    return node.buildNodeSelector();
  }

  @Test
  public void testAttributeAsNode() throws Exception {
    NodeSelector<JsonNode> selector = build("{ \"a\" : 2, \"b\" : { \"x\" : \"y\" }, \"results\" : [ { \"a\" : 1 }, { \"b\" : 2, \"c\" : 3 } ] }");

    List<JsonNode> result = selector.findAll("b x");
    assertEquals(1, result.size());
    assertEquals("y", result.get(0).getValue());
  }
 
  @Test
  public void testAnyWithAttribute() throws Exception {
    NodeSelector<JsonNode> selector = build("{ \"a\" : 2, \"b\" : { \"x\" : \"y\" }, \"results\" : [ { \"x\" : 1 }, { \"b\" : 2, \"c\" : 3 } ] }");

    List<JsonNode> result = selector.findAll("[x]");
    assertEquals(2, result.size());
  }

  @Test
  public void testSpecificChildWithAttributeAsNode() throws Exception {
    NodeSelector<JsonNode> selector = build("{ \"a\" : 2, \"b\" : { \"x\" : \"y\" }, \"results\" : [ { \"a\" : 1 }, { \"_b\" : 2, \"c\" : 3 } ] }");

    List<JsonNode> result = selector.findAll("results[_b=\"2\"] c");
    assertEquals(1, result.size());
    assertEquals("3", result.get(0).getValue());
  }
}

TOP

Related Classes of com.gistlabs.mechanize.document.json.query.AttributeNodeSelectorTest

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.