@Test
  public void testDifferentObjectTypePuts() {
    DiskRegionProperties diskRegionProperties = new DiskRegionProperties();
    diskRegionProperties.setOverflow(true);
    diskRegionProperties.setOverFlowCapacity(100);
    diskRegionProperties.setDiskDirs(diskDirs);

    DiskStoreFactory diskStoreFactory = toDiskStoreFactory(diskRegionProperties);

    createDiskStoreWithSizeInBytes(diskStoreName, diskStoreFactory);

    Region<String, Object> region =
        createRegion(regionName, diskStoreName, true, false, false, true, 100);

    DiskRegion diskRegion = getDiskRegion(region);

    int total = 10;
    for (int i = 0; i < total; i++) {
      region.put(String.valueOf(i), String.valueOf(i));
    }
    region.put("foobar", "junk");

    region.localDestroy("foobar");

    region.put("foobar2", "junk");
    diskRegion.flushForTesting();
    region.localDestroy("foobar2");

    // test invalidate
    region.put("invalid", "invalid");
    diskRegion.flushForTesting();
    region.invalidate("invalid");
    diskRegion.flushForTesting();
    assertThat(region.containsKey("invalid")).isTrue();
    assertThat(region.containsValueForKey("invalid")).isFalse();
    total++;

    // test local-invalidate
    region.put("localinvalid", "localinvalid");
    diskRegion.flushForTesting();
    region.localInvalidate("localinvalid");
    diskRegion.flushForTesting();
    assertThat(region.containsKey("localinvalid")).isTrue();
    assertThat(region.containsValueForKey("localinvalid")).isFalse();
    total++;

    // test byte[] values
    region.put("byteArray", new byte[0]);
    diskRegion.flushForTesting();
    assertThatArrayEquals(new byte[0], region.get("byteArray"));
    total++;

    // test modification
    region.put("modified", "originalValue");
    diskRegion.flushForTesting();
    region.put("modified", "modified");
    diskRegion.flushForTesting();
    assertThat(region.get("modified")).isEqualTo("modified");
    total++;

    assertThat(region.size()).isEqualTo(total);

    cache.close();
    cache = (InternalCache) new CacheFactory(config).create();

    diskStoreFactory = toDiskStoreFactory(diskRegionProperties);

    createDiskStoreWithSizeInBytes(diskStoreName, diskStoreFactory);

    region = createRegion(regionName, diskStoreName, true, false, false, true, 100);

    assertThat(region.size()).isEqualTo(total);
    assertThat(region.containsKey("invalid")).isTrue();
    assertThat(region.get("invalid")).isNull();
    assertThat(region.containsValueForKey("invalid")).isFalse();

    region.localDestroy("invalid");
    total--;

    assertThat(region.containsKey("localinvalid")).isTrue();
    assertThat(region.containsValueForKey("localinvalid")).isFalse();
    region.localDestroy("localinvalid");
    total--;

    assertThatArrayEquals(new byte[0], region.get("byteArray"));
    region.localDestroy("byteArray");
    total--;

    assertThat(region.get("modified")).isEqualTo("modified");
    region.localDestroy("modified");
    total--;

    assertThat(region.size()).isEqualTo(total);
  }
test method for putting different objects and validating that they have been correctly put
geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionJUnitTest.java