@Test
  public void hypervisorCheckInReportsFailureWhenGuestIdUpdateFails() throws Exception {
    Owner owner = new Owner("admin");

    Map<String, List<GuestId>> hostGuestMap = new HashMap<String, List<GuestId>>();
    String expectedHostVirtId = "test-host";
    hostGuestMap.put(expectedHostVirtId, Arrays.asList(new GuestId("GUEST_B")));

    Consumer existing = new Consumer();
    existing.setUuid(expectedHostVirtId);
    existing.addGuestId(new GuestId("GUEST_A"));

    // Force update
    when(consumerCurator.findByUuid(eq(expectedHostVirtId))).thenReturn(existing);

    String expectedMessage = "Forced Exception.";
    RuntimeException exception = new RuntimeException(expectedMessage);
    // Simulate failure  when checking the owner
    when(consumerCurator.getHost(any(String.class))).thenThrow(exception);

    HypervisorCheckInResult result =
        hypervisorResource.hypervisorCheckIn(hostGuestMap, principal, owner.getKey());

    Set<String> failures = result.getFailedUpdate();
    assertEquals(1, failures.size());
    assertEquals(expectedHostVirtId + ": " + expectedMessage, failures.iterator().next());
  }