private static Forest createForest() {
    Plant grass = new Plant("Grass", "Herb");
    Plant oak = new Plant("Oak", "Tree");

    Animal zebra = new Animal("Zebra", Set.of(grass), Collections.emptySet());
    Animal buffalo = new Animal("Buffalo", Set.of(grass), Collections.emptySet());
    Animal lion = new Animal("Lion", Collections.emptySet(), Set.of(zebra, buffalo));

    return new Forest("Amazon", Set.of(lion, buffalo, zebra), Set.of(grass, oak));
  }
@Test
  void blobSerializerTest() {
    Forest forest = createForest();
    try (LobSerializer serializer = new BlobSerializer()) {

      Object serialized = serializer.serialize(forest);
      int id = serializer.persistToDb(1, forest.getName(), serialized);

      Object fromDb = serializer.loadFromDb(id, Forest.class.getSimpleName());
      Forest forestFromDb = serializer.deSerialize(fromDb);

      Assertions.assertEquals(forest.hashCode(), forestFromDb.hashCode(),
          "Hashes of objects after Serializing and Deserializing are the same");
    } catch (SQLException | IOException | TransformerException | ParserConfigurationException |
             SAXException |
             ClassNotFoundException e) {
      throw new RuntimeException(e);
    }
  }