public GrantDTO create(GrantDTO grantDTO, @Nullable User currentUser) {
        return create(grantDTO, requireNonNull(currentUser, "currentUser cannot be null").getName());
    }
@Test
    public void createWithGrantDTOAndUserObject() {
        final ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
        final GRN grantee = GRNTypes.USER.toGRN("jane");
        final GRN target = GRNTypes.DASHBOARD.toGRN("54e3deadbeefdeadbeef0000");
        final User user = mock(User.class);

        when(user.getName()).thenReturn("john");

        final GrantDTO grantDTO = GrantDTO.of(grantee, Capability.OWN, target).toBuilder()
                // Ensure that the time tests work
                .createdAt(now.minusHours(1))
                .updatedAt(now.minusHours(1))
                .build();
        final GrantDTO grant = dbService.create(grantDTO, user);

        assertThat(grant.id()).isNotBlank();
        assertThat(grant.grantee()).isEqualTo(grantee);
        assertThat(grant.capability()).isEqualTo(Capability.OWN);
        assertThat(grant.target()).isEqualTo(target);
        assertThat(grant.createdBy()).isEqualTo("john");
        assertThat(grant.createdAt()).isAfter(grantDTO.createdAt());
        assertThat(grant.updatedBy()).isEqualTo("john");
        assertThat(grant.updatedAt()).isAfter(grantDTO.updatedAt());
    }