Package

Source Code of DocumentContainsTest

import static play.test.Helpers.GET;
import static play.test.Helpers.POST;
import static play.test.Helpers.routeAndCall;
import static play.test.Helpers.running;

import java.io.IOException;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.json.JSONObject;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import play.mvc.Http.Status;
import play.mvc.Result;
import play.test.FakeRequest;
import core.AbstractDocumentTest;
import core.TestConfig;


public class DocumentContainsTest extends AbstractDocumentTest {
  private Object json = null;
  private JsonNode document1;
  private JsonNode jsonForUpdate;
  private String sFakeCollection;

  @Override
  public String getRouteAddress() {
    return SERVICE_ROUTE + TestConfig.TEST_COLLECTION_NAME;
  }

  @Override
  public String getMethod() {
    return GET;
  }

  @Override
  protected void assertContent(String s) {
    json = toJSON(s);
    assertJSON(json, "@version");
  }
 
  @Before
  public void setDocument() throws JsonProcessingException, IOException{
    document1 = new ObjectMapper().readTree(
        "{\"players\": ["+
          "{"+
            "\"username\": \"XXXX@XXXX.COM\","+
            "\"name\": \"john doe\","+
            "\"points\": 0"+
          "},"+
          "{"+
          "\"username\": \"YYYY1@YYYY.COM\","+
          "\"name\": \"jane doe\","+
          "\"department\": \"one\","+
          "\"points\": 0"+
          "},"+
          "{"+
          "\"username\": \"ZZZZ@ZZZZ1.COM\","+
          "\"name\": \"dana scully\","+
          "\"department\": \"two\","+
          "\"points\": 0"+
          "}"+
        "],"+
        "\"status\": \"open\","+
        "\"player_turn\": 0,"+
        "\"id\": \"ff342a9b-79cd-4494-983e-6ec4a1a47c8a\","+
        "\"creationdate\": \"2014-02-15T13:49:51.051+0100\","+
        "\"_author\": \"admin\""
        + "}");
  }
 
  @Test
  public void testContains(){
    running
    (
      getFakeApplication(),
      new Runnable()     {
        public void run() {
           continueOnFail(false);
          sFakeCollection = new AdminCollectionFunctionalTest().routeCreateCollection();
          //create  document
          FakeRequest request = new FakeRequest(POST, getRouteAddress(sFakeCollection));
          request = request.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE);
          request = request.withHeader(TestConfig.KEY_AUTH, TestConfig.AUTH_ADMIN_ENC);
          request = request.withJsonBody(document1,POST);
          Result result = routeAndCall(request);
          assertRoute(result, "testContains CREATE 1", 200, null, true);
          String id1=getUuid();
 
         
          //read the doc
          request = new FakeRequest(GET, "/document/" + sFakeCollection + "/" + id1);
          request = request.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE);
          request = request.withHeader(TestConfig.KEY_AUTH, TestConfig.AUTH_ADMIN_ENC);
          result = routeAndCall(request);
          assertRoute(result, "testContains load document 1", Status.OK, "\"name\":\"john doe\"", true);
         
         
          //select it using the `contains`function
          request = new FakeRequest("GET", "/document/" + sFakeCollection +  "?where=players%20contains%20(username%3D%27XXXX%40XXXX.COM%27)");
          request = request.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE);
          request = request.withHeader(TestConfig.KEY_AUTH, TestConfig.AUTH_ADMIN_ENC);
          result = routeAndCall(request);
          assertRoute(result, "testContains load document 1 using contains", 200, "\"name\":\"john doe\"", true);         
        }
      }
    );     
  }
 
    private String getUuid()  {
    String sUuid = null;

    try  {
      JSONObject jo = (JSONObject)json;
      sUuid = jo.getJSONObject("data").getString("id");
    }
    catch (Exception ex)  {
      Assert.fail("Cannot get UUID (id) value: " + ex.getMessage() + "\n The json object is: \n" + json);
    }
    return sUuid;
  }
}

TOP

Related Classes of DocumentContainsTest

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.