@Test
  public void testLIFOQueue() {
    try {
      assertNotNull(cache);
      Region rgn = cache.getRegion(SEPARATOR + regionName);
      assertNotNull(rgn);
      // insert data
      lifoClockHand.appendEntry(new TestLRUNode(1));
      lifoClockHand.appendEntry(new TestLRUNode(2));
      lifoClockHand.appendEntry(new TestLRUNode(3));
      assertTrue(lifoClockHand.size() == 3);
      // make sure data is removed in LIFO fashion
      TestLRUNode tailValue = (TestLRUNode) lifoClockHand.getEvictableEntry();
      assertTrue("Value = " + tailValue.getValue(), tailValue.value == 3);
      assertTrue("LIFO Queue Size = " + lifoClockHand.size(), lifoClockHand.size() == 2);
      tailValue = (TestLRUNode) lifoClockHand.getEvictableEntry();
      assertTrue("Value = " + tailValue.getValue(), tailValue.value == 2);
      assertTrue("LIFO Queue Size = " + lifoClockHand.size(), lifoClockHand.size() == 1);
      tailValue = (TestLRUNode) lifoClockHand.getEvictableEntry();
      assertTrue("Value = " + tailValue.getValue(), tailValue.value == 1);
      assertTrue("LIFO Queue Size = " + lifoClockHand.size(), lifoClockHand.size() == 0);
      tailValue = (TestLRUNode) lifoClockHand.getEvictableEntry();
      assertTrue("No Value - null", tailValue == null);
      assertTrue("LIFO Queue Size = " + lifoClockHand.size(), lifoClockHand.size() == 0);
      // check that entries not available or already evicted are skipped and removed
      TestLRUNode testlrunode = new TestLRUNode(1);
      lifoClockHand.appendEntry(testlrunode);
      testlrunode = new TestLRUNode(2);
      testlrunode.setEvicted();
      lifoClockHand.appendEntry(testlrunode);
      testlrunode = new TestLRUNode(3);
      testlrunode.setEvicted();
      lifoClockHand.appendEntry(testlrunode);
      tailValue = (TestLRUNode) lifoClockHand.getEvictableEntry();
      assertTrue("Value = " + tailValue.getValue(), tailValue.value == 1);
      assertTrue("LIFO Queue Size = " + lifoClockHand.size(), lifoClockHand.size() == 0);
      tailValue = (TestLRUNode) lifoClockHand.getEvictableEntry();
      assertTrue("No Value - null", tailValue == null);
      assertTrue("LIFO Queue Size = " + lifoClockHand.size(), lifoClockHand.size() == 0);
      // TODO : need tests for data still part of transaction
    } catch (Exception ex) {
      ex.printStackTrace();
      fail(ex.getMessage());
    }
  }
This test does the following :<br>
1)Perform put operation <br>
2)Verify count of evicted entries <br>
geode-core/src/integrationTest/java/org/apache/geode/internal/cache/LIFOEvictionAlgoMemoryEnabledRegionJUnitTest.java