Index: TestUtilTest.java =================================================================== RCS file: /cvs/projects/projectapi/test/unit/src/org/netbeans/api/project/TestUtilTest.java,v retrieving revision 1.2 diff -u -r1.2 TestUtilTest.java --- TestUtilTest.java 16 Mar 2004 15:35:20 -0000 1.2 +++ TestUtilTest.java 5 May 2004 10:07:36 -0000 @@ -15,9 +15,13 @@ import java.net.URL; import java.util.Date; +import java.io.File; +import java.io.OutputStream; + import org.netbeans.junit.NbTestCase; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; +import org.openide.filesystems.FileLock; import org.openide.util.Lookup; import org.openide.util.lookup.Lookups; @@ -61,6 +65,46 @@ assertEquals("got same b back", b, TestUtil.createFileFromContent(null, scratch, "d2/b")); Date modified = b.lastModified(); assertTrue("touched and changed timestamp", modified.after(created)); + } + + public void testTimTime () throws Exception { + final long TIM_PAUSE = 15000; + final long introTime = System.currentTimeMillis(); + + Thread.sleep(TIM_PAUSE); + + final long precreationTime = System.currentTimeMillis(); + assertTrue(TIM_PAUSE <= (precreationTime - introTime)); + final FileObject scratch = TestUtil.makeScratchDir(this); + assertNotNull(scratch); + FileObject testFo = scratch.createData("testFo.txt"); + assertNotNull(testFo); + final File testFile = FileUtil.toFile(testFo); + assertNotNull(testFile); + assertTrue(precreationTime <= testFo.lastModified().getTime()); + assertTrue(precreationTime <= testFile.lastModified()); + assertEquals(testFo.lastModified().getTime(), testFile.lastModified()); + + Thread.sleep(TIM_PAUSE); + + final long modificationTime = System.currentTimeMillis(); + assertTrue(TIM_PAUSE <= (modificationTime - precreationTime)); + assertTrue(modificationTime >= testFo.lastModified().getTime()); + assertTrue(modificationTime >= testFile.lastModified()); + + FileLock testLock = testFo.lock(); + OutputStream os = null; + try { + os = testFo.getOutputStream(testLock); + } finally { + assertNotNull(os); + os.close(); + assertNotNull(testLock); + testLock.releaseLock(); + assertTrue(modificationTime <= testFo.lastModified().getTime()); + assertTrue(modificationTime <= testFile.lastModified()); + assertEquals(testFo.lastModified().getTime(), testFile.lastModified()); + } } }