@Test
  public void testGETObjectAtPageVersion() throws Exception {
    Object objectToBePut = getObject("XWiki.TagClass");

    Map<String, String> versionToValueMap = new HashMap<String, String>();
    for (int i = 0; i < 5; i++) {
      String value = String.format("Value%d", i);

      Property property = getProperty(objectToBePut, "tags");
      property.setValue(value);

      PutMethod putMethod =
          executePutXml(
              getUriBuilder(ObjectResource.class)
                  .build(
                      getWiki(),
                      "Main",
                      "WebHome",
                      objectToBePut.getClassName(),
                      objectToBePut.getNumber())
                  .toString(),
              objectToBePut,
              "Admin",
              "admin");
      Assert.assertEquals(
          getHttpMethodInfo(putMethod), HttpStatus.SC_ACCEPTED, putMethod.getStatusCode());

      GetMethod getMethod =
          executeGet(
              getUriBuilder(PageResource.class).build(getWiki(), "Main", "WebHome").toString());
      Assert.assertEquals(
          getHttpMethodInfo(getMethod), HttpStatus.SC_OK, getMethod.getStatusCode());

      Page page = (Page) unmarshaller.unmarshal(getMethod.getResponseBodyAsStream());

      versionToValueMap.put(page.getVersion(), value);
    }

    for (String version : versionToValueMap.keySet()) {
      GetMethod getMethod =
          executeGet(
              getUriBuilder(ObjectAtPageVersionResource.class)
                  .build(
                      getWiki(),
                      "Main",
                      "WebHome",
                      version,
                      objectToBePut.getClassName(),
                      objectToBePut.getNumber())
                  .toString());
      Assert.assertEquals(
          getHttpMethodInfo(getMethod), HttpStatus.SC_OK, getMethod.getStatusCode());

      Object currentObject = (Object) unmarshaller.unmarshal(getMethod.getResponseBodyAsStream());

      Property property = getProperty(currentObject, "tags");

      Assert.assertEquals(versionToValueMap.get(version), property.getValue());

      checkLinks(currentObject);
      for (Property p : currentObject.getProperties()) {
        checkLinks(p);
      }
    }
  }