### Question:
DMNClientProjectDiagramService extends ClientProjectDiagramService { RemoteCallback<DMNContentResource> onProjectContent(final ServiceCallback<ProjectDiagram> callback) { return resource -> dmnMarshallerService.unmarshall(resource.getMetadata(), resource.getContent(), DMNClientProjectDiagramService.this.getMarshallerCallback(resource, callback)); } @Inject  DMNClientProjectDiagramService(final ShapeManager shapeManager,
                                          final SessionManager sessionManager,
                                          final Caller<ProjectDiagramService> diagramServiceCaller,
                                          final Caller<DiagramLookupService> diagramLookupServiceCaller,
                                          final Event<SessionDiagramSavedEvent> saveEvent,
                                          final Caller<DMNContentService> dmnContentServiceCaller,
                                          final DMNMarshallerService dmnMarshallerService); @Override void getByPath(final Path path,
                          final ServiceCallback<ProjectDiagram> callback); @Override void saveOrUpdate(final Path path,
                             final ProjectDiagram diagram,
                             final Metadata metadata,
                             final String comment,
                             final ServiceCallback<ProjectDiagram> callback);  }### Answer:
@Test public void testOnProjectContent() { final DMNContentResource resource = mock(DMNContentResource.class); final Metadata metadata = mock(Metadata.class); final String content = "<dmn />"; when(resource.getMetadata()).thenReturn(metadata); when(resource.getContent()).thenReturn(content); doReturn(diagramCallback).when(service).getMarshallerCallback(resource, projectDiagramCallback); service.onProjectContent(projectDiagramCallback).callback(resource); verify(dmnMarshallerService).unmarshall(metadata, content, diagramCallback); }