@Test
  public void removeProperty_shouldContainStringOnly() throws Exception {
    pb.addProperty("number", 42);
    pb.addProperty("string", "42");
    pb.removeProperty("number");

    Set<String> list = pb.propertyKeySet();
    assertTrue(list.contains("string"));
    assertFalse(list.contains("number"));
  }
  @Test
  public void getPropertyCount_shouldReturnTwo() throws Exception {
    pb.addProperty("test", "42");
    pb.addProperty("number", 42);

    assertTrue(pb.propertyCount() == 2);
  }
  @Test
  public void removeAllProperties_shouldDeleteEverything() throws Exception {
    pb.addProperty("test", "42");
    pb.addProperty("number", 42);

    pb.removeAllProperties();
    assertTrue(pb.propertyCount() == 0);
  }
  @Test
  public void getPropertyKeyList_shouldReturnTwo() throws Exception {
    pb.addProperty("test", "42");
    pb.addProperty("number", 42);

    Set<String> list = pb.propertyKeySet();
    assertThat(list.size(), is(2));
  }
 @Test
 public void addOrReplaceProperty_shouldOverwriteValue() throws Exception {
   pb.addProperty("test", "42");
   pb.addOrReplaceProperty("test", "43");
   assertEquals(pb.getProperty("test"), "43");
 }
 @Test
 public void getPropertyClass_shouldReturnStringClass() throws Exception {
   pb.addProperty("test", "42");
   assertTrue(pb.getPropertyClass("test") == String.class);
 }
 @Test(expected = ProcessBagException.class)
 public void addProperty_shouldReturnException() throws ProcessBagException {
   pb.addProperty("test", "42");
   pb.addProperty("test", "42");
 }