@Test
public void testOrderNoGapImpossible() throws PlanningException {

  prepareBasicPlan();
  // create a completely utilized segment at time 30
  int[] f = { 100, 100 };
  ReservationDefinition rDef = ReservationSystemTestUtil
      .createSimpleReservationDefinition(30, 30 * step + f.length * step,
          f.length * step, 1, recurrenceExpression);
  assertTrue(
      plan.toString(),
      plan.addReservation(new InMemoryReservationAllocation(
          ReservationSystemTestUtil.getNewReservationId(), rDef, "u1",
          "dedicated", 30 * step, 30 * step + f.length * step,
          ReservationSystemTestUtil.generateAllocation(30 * step, step, f),
          res, minAlloc), false));
  // create a chain of 4 RR, mixing gang and non-gang
  ReservationDefinition rr = new ReservationDefinitionPBImpl();
  rr.setArrival(0L);
  rr.setDeadline(70L);
  ReservationRequests reqs = new ReservationRequestsPBImpl();
  reqs.setInterpreter(ReservationRequestInterpreter.R_ORDER_NO_GAP);
  ReservationRequest r = ReservationRequest.newInstance(
      Resource.newInstance(2048, 2), 10, 1, 10);
  ReservationRequest r2 = ReservationRequest.newInstance(
      Resource.newInstance(1024, 1), 10, 10, 20);
  List<ReservationRequest> list = new ArrayList<ReservationRequest>();
  list.add(r);
  list.add(r2);
  list.add(r);
  list.add(r2);
  reqs.setReservationResources(list);
  rr.setReservationRequests(reqs);
  ReservationId reservationID = ReservationSystemTestUtil
      .getNewReservationId();
  boolean result = false;
  try {
    // submit to agent
    result = agent.createReservation(reservationID, "u1", plan, rr);
    fail();
  } catch (PlanningException p) {
    // expected
  }
  // validate
  assertFalse("Agent-based allocation should have failed", result);
  assertTrue("Agent-based allocation should have failed", plan
      .getAllReservations().size() == 3);
  System.out
      .println("--------AFTER ORDER_NO_GAP IMPOSSIBLE ALLOCATION (queue: "
          + reservationID + ")----------");
  System.out.println(plan.toString());
  System.out.println(plan.toCumulativeString());
}