@Test
public void create() throws IOException {

    MarshalingTreeBuilder treeBuilder = MarshalingTreeBuilder.create(
        (path, marshaler, object) -> !path.equals(Collections.singletonList(NoKey.instance()))
    );
    TreeBuilderMarshalTarget<MarshalingTreeNode> marshalTarget = TreeBuilderMarshalTarget.create(treeBuilder);
    List<Marshaler<?>> marshalers = Arrays.asList(STRING_MARSHALER, INTEGER_MARSHALER);
    try (MarshalContext marshalContext
            = DelegatingMarshalContext.create(INTEGER_MARSHALER, marshalers, marshalTarget)) {
        INTEGER_MARSHALER.put(42, marshalContext);
    }
    Assert.assertEquals(
        marshalTarget.getTree(),
        MarshalingTreeNode.MarshaledReplacementObjectNode.of(
            INTEGER_MARSHALER,
            MarshalingTreeNode.RawObjectNode.of(STRING_MARSHALER, "42")
        )
    );
}