Package api

Source Code of api.AdminManageUsers

package api;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import models.BasicInformation;
import models.InternshipFamiliar;
import models.Subscriber;
import models.User;
import org.junit.Test;
import play.mvc.Http.Response;
import play.mvc.Http.StatusCode;
import com.google.appengine.api.NamespaceManager;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import controllers.Data;
import base.BaseTest;

public class AdminManageUsers extends BaseTest {
 
  @Test
  public void crudTest() {
     Map<String, String> loginUserParams = new HashMap<String, String>();
     loginUserParams.put("username", "laura.garcia@B");
     loginUserParams.put("password", "secret1");
    // Login here so the following request will be authenticated:
     Response response = POST("/login", loginUserParams);
     // The following is an action that requires an authenticated user:
     response = GET("/api/users");
     assertIsOk(response);
     InputStream is = new ByteArrayInputStream(response.out.toByteArray());
     Reader reader = new InputStreamReader(is);
     Type dataType = new TypeToken<Data<User>>(){}.getType();
     Data<User> data = new Gson().fromJson(reader, dataType);
     assertTrue("La residencia sólo tiene 6 usuarios registrados", data.data.size() == 6);
     response = GET("/api/users?type=admin");
     assertIsOk(response);
     is = new ByteArrayInputStream(response.out.toByteArray());
     reader = new InputStreamReader(is);
     data = new Gson().fromJson(reader, dataType);
     assertTrue("La residencia sólo tiene un administrador", data.data.size() == 1);
     response = GET("/api/users?type=familiar");
     assertIsOk(response);
     is = new ByteArrayInputStream(response.out.toByteArray());
     reader = new InputStreamReader(is);
     data = new Gson().fromJson(reader, dataType);
     assertTrue("La residencia sólo tiene tres internos", data.data.size() == 3);
     response = GET("/api/users?type=capitan");
     assertStatus(StatusCode.NOT_FOUND,response);
     response = GET("/api/users?type=internal");
     assertIsOk(response);
     is = new ByteArrayInputStream(response.out.toByteArray());
     reader = new InputStreamReader(is);
     data = new Gson().fromJson(reader, dataType);
     assertTrue("La residencia sólo tiene dos internos", data.data.size() == 2);
     User internal = data.data.get(0);
     addFamiliar(internal);
  }
 
  private static void addFamiliar(User internal) {
    User familiar = new User();
    familiar.username = "angela.martin";
    familiar.password = "test2012";
    familiar.access = true;
    BasicInformation basicInformation = new BasicInformation();
    familiar.basic_information = basicInformation;
    basicInformation.firstName = "Angela";
    basicInformation.lastName = "Martin";
    Response response = POST("/api/users/" + internal.id + "/familiars", "application/json", new Gson().toJson(familiar));
    assertStatus(StatusCode.CREATED, response);
    String location = response.getHeader("location");
    assertNotNull("Location header musn't be empty", location);
    response = GET(location);
    InputStream is = new ByteArrayInputStream(response.out.toByteArray());
    Reader reader = new InputStreamReader(is);
    familiar = new Gson().fromJson(reader, new TypeToken<User>(){}.getType());
    response = GET("/api/users/" + internal.id + "/familiars");
    is = new ByteArrayInputStream(response.out.toByteArray());
    reader = new InputStreamReader(is);
    Type dataType = new TypeToken<Data<User>>(){}.getType();
    Data<User> data = new Gson().fromJson(reader, dataType);
    response = GET("/api/users/" + internal.id + "/familiars");
    assertIsOk(response);
    is = new ByteArrayInputStream(response.out.toByteArray());
    reader = new InputStreamReader(is);
    data = new Gson().fromJson(reader, dataType);
    assertTrue("El interno " + internal.basic_information.firstName +
        " debe tener un familiar", data.data.size() == 3);
    response = DELETE("/api/users/" + familiar.id)
    assertStatus(StatusCode.NO_RESPONSE, response);
    response = GET("/api/users/" + internal.id + "/familiars");
    assertIsOk(response);
    is = new ByteArrayInputStream(response.out.toByteArray());
    reader = new InputStreamReader(is);
    data = new Gson().fromJson(reader, dataType);
    assertTrue("El interno " + internal.basic_information.firstName +
      " debe tener un familiar", data.data.size() == 2);
    response = GET("/api/users");
    is = new ByteArrayInputStream(response.out.toByteArray());
    reader = new InputStreamReader(is);
    dataType = new TypeToken<Data<User>>(){}.getType();
    data = new Gson().fromJson(reader, dataType);
    assertTrue("La residencia sólo tiene 6 usuarios registrados", data.data.size() == 6);
    showUsers(data.data);
    response = DELETE("/api/users/" + internal.id)
    assertStatus(StatusCode.NO_RESPONSE, response);
    response = GET("/api/users");
    is = new ByteArrayInputStream(response.out.toByteArray());
    reader = new InputStreamReader(is);
    dataType = new TypeToken<Data<User>>(){}.getType();
    data = new Gson().fromJson(reader, dataType);
    assertTrue("La residencia sólo tiene 5 usuarios registrados", data.data.size() == 5);
    showUsers(data.data);
    response = GET("/api/users?type=internal");
    is = new ByteArrayInputStream(response.out.toByteArray());
    reader = new InputStreamReader(is);
    dataType = new TypeToken<Data<User>>(){}.getType();
    data = new Gson().fromJson(reader, dataType);
    assertTrue("La residencia sólo tiene 1 interno", data.data.size() == 1);
    showUsers(data.data);
  }
 
  private static void showUsers(List<User> users) {
    System.out.println("Users number: " + users.size());
    for(User user : users) {
      System.out.println("Username: " + user.username);
    }
  }
 
}
TOP

Related Classes of api.AdminManageUsers

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.