Ejemplo n.º 1
0
 public static Result routeAndCall(Router router, RequestBuilder requestBuilder, long timeout) {
   try {
     Request request = requestBuilder.build();
     if (router.routes().isDefinedAt(request._underlyingRequest())) {
       return invokeHandler(router.routes().apply(request._underlyingRequest()), request, timeout);
     } else {
       return null;
     }
   } catch (RuntimeException e) {
     throw e;
   } catch (Throwable t) {
     throw new RuntimeException(t);
   }
 }
Ejemplo n.º 2
0
 public static Result routeAndCall(
     Class<? extends Router> router, RequestBuilder requestBuilder, long timeout) {
   try {
     Request request = requestBuilder.build();
     Router routes =
         (Router)
             router
                 .getClassLoader()
                 .loadClass(router.getName() + "$")
                 .getDeclaredField("MODULE$")
                 .get(null);
     if (routes.routes().isDefinedAt(request._underlyingRequest())) {
       return invokeHandler(routes.routes().apply(request._underlyingRequest()), request, timeout);
     } else {
       return null;
     }
   } catch (RuntimeException e) {
     throw e;
   } catch (Throwable t) {
     throw new RuntimeException(t);
   }
 }
Ejemplo n.º 3
0
 // --
 @SuppressWarnings(value = "unchecked")
 private static Result invokeHandler(
     play.api.mvc.Handler handler, Request requestBuilder, long timeout) {
   if (handler instanceof play.api.mvc.Action) {
     play.api.mvc.Action action = (play.api.mvc.Action) handler;
     return wrapScalaResult(action.apply(requestBuilder._underlyingRequest()), timeout);
   } else if (handler instanceof JavaHandler) {
     return invokeHandler(
         ((JavaHandler) handler)
             .withComponents(
                 Play.application().injector().instanceOf(JavaHandlerComponents.class)),
         requestBuilder,
         timeout);
   } else {
     throw new RuntimeException("This is not a JavaAction and can't be invoked this way.");
   }
 }
Ejemplo n.º 4
0
 public static boolean isHttpsRequest(Request request) {
   return (request.getHeader(SSL_HEADER) != null
           && request.getHeader(SSL_HEADER).contains("https"))
       || isOverHttpsPort(request.host());
 }
Ejemplo n.º 5
0
  @Test
  public void matchingBBTest() {

    /*
    ====================================================
    BLACK BOX TEST  : SEE /Z/report/report.pdf,  page 16
    ====================================================
    */

    Coordinate coorATest = new Coordinate(50.669715, 4.602624);
    Coordinate coorBTest = new Coordinate(50.667892, 4.619073);
    User userTest =
        new User(
            "loginTest",
            "Mister",
            "Nobody",
            "*****@*****.**",
            "0123-456",
            0,
            null,
            null,
            null,
            null,
            null);
    Date arrTimeTest = new Date(2013, 01, 04, 15, 00);
    Traject trajectTest =
        new Traject(
            1, // Seats
            15, // TotalCost
            null, // Request
            userTest, // User
            null, // Dep PP
            null, // Arr PP
            null); // Proposal
    Request reqTest =
        new Request(
            coorATest, // Coor departure
            coorBTest, // Coor arrival
            "Place Galilee 6 1348 Louvain-La-Neuve", // Adress departure
            "Cour des Fleurets 1348 Louvain-La-Neuve", // Adress arrival
            arrTimeTest, // Arrival time
            1, // Seats
            60, // Time tolerance
            3000, // Walk tolerance in m
            5, // Price tolerance
            userTest, // User
            trajectTest); // Traject
    trajectTest.setRequest(reqTest);

    // BB Test : msg-1
    ArrayList<Traject> response = controllers.Matching.match(reqTest);
    /*for(Traject traj : response){
        Assert.fail("Requete n est pas dans la base de donnees mais matching retourne un trajet");
    }*/
    reqTest.getUser().addRequest(reqTest);
    reqTest.save();
    reqTest.getUser().save();

    // BB Test : msg-2
    ArrayList<Traject> response2 = controllers.Matching.match(reqTest);
    for (Traject traj : response2) {
      ExpressionList<Proposal> res = Proposal.find.where().eq("id", traj.getProposal().getId());
      if (res.findRowCount() < 1) {
        Assert.fail("Proposal n est pas dans la base de donnees mais matching retourne un trajet");
      }
    }

    // BB Test : msg-3 + msg-4
    for (Traject traj : response2) {
      PickupPoint depPP = traj.getDeparturePP().getPickupPoint();
      PickupPoint arrPP = traj.getArrivalPP().getPickupPoint();
      if (PickupPoint.find.where().eq("id", depPP.getId()) != depPP) {
        Assert.fail("Departure PickUpPoint pas dans la base de donnees");
      }
      if (PickupPoint.find.where().eq("id", arrPP.getId()) != arrPP) {
        Assert.fail("Arrival PickUpPoint pas dans la base de donnees");
      }
    }

    for (Traject traj : response2) {
      // BB Test : msg-5
      double walkBegin =
          Matching.distance(
              traj.getDeparturePP().getPickupPoint().getCoordinates(),
              reqTest.getTraject().getDeparturePP().getPickupPoint().getCoordinates());
      double walkEnd =
          Matching.distance(
              reqTest.getTraject().getArrivalPP().getPickupPoint().getCoordinates(),
              traj.getArrivalPP().getPickupPoint().getCoordinates());
      if (walkBegin + walkEnd > 3000) {
        Assert.fail("La tolerance de distance de marche n est pas respectee");
      }

      // BB Test : msg-6
      Date maxiTime = new Date(2013, 01, 04, 16, 00);
      if (traj.getArrivalPP().getTime().after(maxiTime)) {
        Assert.fail("Heure d arrivee du passager depasse la tolerance d heure d arrivee");
      }

      // BB Test : msg-7
      if (traj.getReservedSeats() - 1 < 0) {
        Assert.fail("Pas assez de sieges libres dans la proposition pour satisfaire la requete");
      }

      // BB Test : msg-8
      if (traj.getTotalCost() > 5) {
        Assert.fail("Tolerance en cout non respectee.");
      }
    }
  }