@Test
public void testMove() {

  final String user = "user1";
  Queue parentQueue = createQueue("parent", null);
  Queue oldQueue = createQueue("old", parentQueue);
  Queue newQueue = createQueue("new", parentQueue);
  QueueMetrics parentMetrics = parentQueue.getMetrics();
  QueueMetrics oldMetrics = oldQueue.getMetrics();
  QueueMetrics newMetrics = newQueue.getMetrics();
  ApplicationAttemptId appAttId = createAppAttemptId(0, 0);
  SchedulerApplicationAttempt app = new SchedulerApplicationAttempt(appAttId,
      user, oldQueue, oldQueue.getActiveUsersManager(), null);
  oldMetrics.submitApp(user);
  
  // Resource request
  Resource requestedResource = Resource.newInstance(1536, 2);
  Priority requestedPriority = Priority.newInstance(2);
  ResourceRequest request = ResourceRequest.newInstance(requestedPriority,
      ResourceRequest.ANY, requestedResource, 3);
  app.updateResourceRequests(Arrays.asList(request));
  // Allocated container
  RMContainer container1 = createRMContainer(appAttId, 1, requestedResource);
  app.liveContainers.put(container1.getContainerId(), container1);
  SchedulerNode node = createNode();
  app.appSchedulingInfo.allocate(NodeType.OFF_SWITCH, node, requestedPriority,
      request, container1.getContainer());
  
  // Reserved container
  Priority prio1 = Priority.newInstance(1);
  Resource reservedResource = Resource.newInstance(2048, 3);
  RMContainer container2 = createReservedRMContainer(appAttId, 1, reservedResource,
      node.getNodeID(), prio1);
  Map<NodeId, RMContainer> reservations = new HashMap<NodeId, RMContainer>();
  reservations.put(node.getNodeID(), container2);
  app.reservedContainers.put(prio1, reservations);
  oldMetrics.reserveResource(user, reservedResource);
  
  checkQueueMetrics(oldMetrics, 1, 1, 1536, 2, 2048, 3, 3072, 4);
  checkQueueMetrics(newMetrics, 0, 0, 0, 0, 0, 0, 0, 0);
  checkQueueMetrics(parentMetrics, 1, 1, 1536, 2, 2048, 3, 3072, 4);
  
  app.move(newQueue);
  
  checkQueueMetrics(oldMetrics, 0, 0, 0, 0, 0, 0, 0, 0);
  checkQueueMetrics(newMetrics, 1, 1, 1536, 2, 2048, 3, 3072, 4);
  checkQueueMetrics(parentMetrics, 1, 1, 1536, 2, 2048, 3, 3072, 4);
}