Exemplo n.º 1
0
  @Test
  public void testToXML() throws Exception {
    KVCache cache = new KVCache(3, 2);

    // test empty
    assertEquals(
        "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KVCache>\r\n"
            + "<Set id=\"0\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "<Set id=\"1\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "<Set id=\"2\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "</KVCache>\r\n",
        cache.toXML());

    // test single element
    cache.put("duck", "bawk");
    assertEquals(
        "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KVCache>\r\n"
            + "<Set id=\"0\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"true\">\r\n"
            + "<Key>duck</Key>\r\n"
            + "<Value>bawk</Value>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "<Set id=\"1\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "<Set id=\"2\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "</KVCache>\r\n",
        cache.toXML());

    // test element replacement
    cache.put("duck", "quack");
    assertEquals(
        "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KVCache>\r\n"
            + "<Set id=\"0\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"true\">\r\n"
            + "<Key>duck</Key>\r\n"
            + "<Value>quack</Value>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "<Set id=\"1\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "<Set id=\"2\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "</KVCache>\r\n",
        cache.toXML());

    // test isReferenced
    assertEquals("quack", cache.get("duck"));
    assertEquals(
        "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KVCache>\r\n"
            + "<Set id=\"0\">\r\n"
            + "<CacheEntry isReferenced=\"true\" isValid=\"true\">\r\n"
            + "<Key>duck</Key>\r\n"
            + "<Value>quack</Value>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "<Set id=\"1\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "<Set id=\"2\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "</KVCache>\r\n",
        cache.toXML());

    // test another set and multiples in a set
    cache.put("cow", "moo");
    cache.put("crow", "cawcawcaw");
    assertEquals(
        "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KVCache>\r\n"
            + "<Set id=\"0\">\r\n"
            + "<CacheEntry isReferenced=\"true\" isValid=\"true\">\r\n"
            + "<Key>duck</Key>\r\n"
            + "<Value>quack</Value>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "<Set id=\"1\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "<Set id=\"2\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"true\">\r\n"
            + "<Key>cow</Key>\r\n"
            + "<Value>moo</Value>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"true\">\r\n"
            + "<Key>crow</Key>\r\n"
            + "<Value>cawcawcaw</Value>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "</KVCache>\r\n",
        cache.toXML());

    // test deletion
    cache.del("duck");
    assertEquals(
        "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KVCache>\r\n"
            + "<Set id=\"0\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "<Set id=\"1\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"false\">\r\n"
            + "<Key/>\r\n"
            + "<Value/>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "<Set id=\"2\">\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"true\">\r\n"
            + "<Key>cow</Key>\r\n"
            + "<Value>moo</Value>\r\n"
            + "</CacheEntry>\r\n"
            + "<CacheEntry isReferenced=\"false\" isValid=\"true\">\r\n"
            + "<Key>crow</Key>\r\n"
            + "<Value>cawcawcaw</Value>\r\n"
            + "</CacheEntry>\r\n"
            + "</Set>\r\n"
            + "</KVCache>\r\n",
        cache.toXML());
  }