@Override
    public void setTimestamp(final Path file, final TransferStatus status) throws BackgroundException {
        try {
            final String resourceId = fileid.getFileId(file);
            final ResourceUpdateModel resourceUpdateModel = new ResourceUpdateModel();
            ResourceUpdateModelUpdate resourceUpdateModelUpdate = new ResourceUpdateModelUpdate();
            UiWin32 uiWin32 = new UiWin32();
            uiWin32.setCreationMillis(null != status.getCreated() ? status.getCreated() : null);
            uiWin32.setLastModificationMillis(null != status.getModified() ? status.getModified() : null);
            resourceUpdateModelUpdate.setUiwin32(uiWin32);
            resourceUpdateModel.setUpdate(resourceUpdateModelUpdate);
            new UpdateResourceApi(new EueApiClient(session)).resourceResourceIdPatch(resourceId,
                    resourceUpdateModel, null, null, null);
        }
        catch(ApiException e) {
            throw new EueExceptionMappingService().map("Failure to write attributes of {0}", e, file);
        }
    }
@Test
    public void testSetTimestampFile() throws Exception {
        final EueResourceIdProvider fileid = new EueResourceIdProvider(session);
        final Path container = new EueDirectoryFeature(session, fileid).mkdir(new Path(
                new AlphanumericRandomStringService().random(), EnumSet.of(Path.Type.directory, Path.Type.volume)), new TransferStatus());
        final Path file = new EueTouchFeature(session, fileid)
                .touch(new Path(container, new AlphanumericRandomStringService().random(), EnumSet.of(Path.Type.file)), new TransferStatus().withLength(0L));
        final PathAttributes attr = new EueAttributesFinderFeature(session, fileid).find(file);
        assertNotEquals(PathAttributes.EMPTY, attr);
        assertNotNull(attr.getETag());
        final long modified = Instant.now().minusSeconds(5 * 24 * 60 * 60).getEpochSecond() * 1000;
        new EueTimestampFeature(session, fileid).setTimestamp(file, modified);
        final PathAttributes updated = new EueAttributesFinderFeature(session, fileid).find(file);
        assertEquals(modified, updated.getModificationDate());
        assertNotEquals(attr.getETag(), updated.getETag());
        assertEquals(attr.getChecksum(), updated.getChecksum());
        assertEquals(modified, new DefaultAttributesFinderFeature(session).find(file).getModificationDate());
        new EueDeleteFeature(session, fileid).delete(Collections.singletonList(container), new DisabledLoginCallback(), new Delete.DisabledCallback());
    }