Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.lucene.store
Class MockDirectoryWrapper

    java.lang.Object
      org.apache.lucene.store.Directory
          org.apache.lucene.store.MockDirectoryWrapper

All Implemented Interfaces:
  Closeable

    public class MockDirectoryWrapper

extends org.apache.lucene.store.Directory

This is a Directory Wrapper that adds methods intended to be used only by unit tests. It also adds a number of features useful for testing:

- Instances created by `LuceneTestCase.newDirectory()` are tracked to ensure they are closed by the test.
- When a MockDirectoryWrapper is closed, it will throw an exception if it has any open files against it (with a stacktrace indicating where they were opened from).
- When a MockDirectoryWrapper is closed, it runs CheckIndex to test if the index was corrupted.
- MockDirectoryWrapper simulates some "features" of Windows, such as refusing to write/delete to open files.

Nested Class Summary
`static class` | `MockDirectoryWrapper.Failure` Objects that represent fail-able conditions.
`static class` | `MockDirectoryWrapper.Throttling`

Field Summary

Fields inherited from class org.apache.lucene.store.Directory
`isOpen, lockFactory`

Constructor Summary
`MockDirectoryWrapper(Random random, org.apache.lucene.store.Directory delegate)`

Method Summary
`void` | `clearCrash()`
`void` | `clearLock(String name)`
`void` | `close()`
`void` | `copy(org.apache.lucene.store.Directory to, String src, String dest)`
`void` | `crash()` Simulates a crash of OS or machine by overwriting unsynced files.
`org.apache.lucene.store.IndexOutput` | `createOutput(String name)`
`void` | `deleteFile(String name)`
`void` | `failOn(MockDirectoryWrapper.Failure fail)` add a Failure object to the list of objects to be evaluated at every potential failure point
`boolean` | `fileExists(String name)`
`long` | `fileLength(String name)`
`long` | `fileModified(String name)`
`boolean` | `getCheckIndexOnClose()`
`int` | `getInputCloneCount()`
`org.apache.lucene.store.LockFactory` | `getLockFactory()`
`String` | `getLockID()`
`long` | `getMaxSizeInBytes()`
`long` | `getMaxUsedSizeInBytes()` Returns the peek actual storage used (bytes) in this directory.
`boolean` | `getNoDeleteOpenFile()`
`Set<String>` | `getOpenDeletedFiles()`
`double` | `getRandomIOExceptionRate()`
`long` | `getRecomputedActualSizeInBytes()` Like getRecomputedSizeInBytes(), but, uses actual file lengths rather than buffer allocations (which are quantized up to nearest RAMOutputStream.BUFFER_SIZE (now 1024) bytes.
`long` | `getRecomputedSizeInBytes()` Provided for testing purposes.
`boolean` | `isOpen()`
`String[]` | `listAll()`
`org.apache.lucene.store.Lock` | `makeLock(String name)`
`org.apache.lucene.store.IndexInput` | `openInput(String name)`
`void` | `removeIndexInput(org.apache.lucene.store.IndexInput in, String name)`
`void` | `removeIndexOutput(org.apache.lucene.store.IndexOutput out, String name)`
`void` | `resetMaxUsedSizeInBytes()`
`void` | `setAssertNoUnrefencedFilesOnClose(boolean v)`
`void` | `setCheckIndexOnClose(boolean value)` Set whether or not checkindex should be run on close
`void` | `setFailOnCreateOutput(boolean v)`
`void` | `setFailOnOpenInput(boolean v)`
`void` | `setLockFactory(org.apache.lucene.store.LockFactory lockFactory)`
`void` | `setMaxSizeInBytes(long maxSize)`
`void` | `setNoDeleteOpenFile(boolean value)` Emulate windows whereby deleting an open file is not allowed (raise IOException).
`void` | `setPreventDoubleWrite(boolean value)` If set to true, we throw an IOException if the same file is opened by createOutput, ever.
`void` | `setRandomIOExceptionRate(double rate)` If 0.0, no exceptions will be thrown.
`void` | `setThrottling(MockDirectoryWrapper.Throttling throttling)`
`void` | `setTrackDiskUsage(boolean v)`
`long` | `sizeInBytes()`
`void` | `sync(Collection<String> names)`
`void` | `sync(String name)` Deprecated.
`String` | `toString()`
`void` | `touchFile(String name)` Deprecated.

Methods inherited from class org.apache.lucene.store.Directory
`copy, ensureOpen, openInput`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### MockDirectoryWrapper

    public MockDirectoryWrapper(Random random,
                                org.apache.lucene.store.Directory delegate)

Method Detail

### getInputCloneCount

    public int getInputCloneCount()

### setTrackDiskUsage

    public void setTrackDiskUsage(boolean v)

### setPreventDoubleWrite

    public void setPreventDoubleWrite(boolean value)

  If set to true, we throw an IOException if the same file is opened by createOutput, ever.

### sync

    @Deprecated
    public void sync(String name)
              throws IOException

  Deprecated.

  Overrides:
    `sync` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### setThrottling

    public void setThrottling(MockDirectoryWrapper.Throttling throttling)

### sync

    public void sync(Collection<String> names)
              throws IOException

  Overrides:
    `sync` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### toString

    public String toString()

  Overrides:
    `toString` in class `org.apache.lucene.store.Directory`

### sizeInBytes

    public final long sizeInBytes()
                           throws IOException

  Throws:
    `IOException`

### crash

    public void crash()
               throws IOException

  Simulates a crash of OS or machine by overwriting unsynced files.

  Throws:
    `IOException`

### clearCrash

    public void clearCrash()
                    throws IOException

  Throws:
    `IOException`

### setMaxSizeInBytes

    public void setMaxSizeInBytes(long maxSize)

### getMaxSizeInBytes

    public long getMaxSizeInBytes()

### getMaxUsedSizeInBytes

    public long getMaxUsedSizeInBytes()

  Returns the peek actual storage used (bytes) in this directory.

### resetMaxUsedSizeInBytes

    public void resetMaxUsedSizeInBytes()
                                 throws IOException

  Throws:
    `IOException`

### setNoDeleteOpenFile

    public void setNoDeleteOpenFile(boolean value)

  Emulate windows whereby deleting an open file is not allowed (raise IOException).

### getNoDeleteOpenFile

    public boolean getNoDeleteOpenFile()

### setCheckIndexOnClose

    public void setCheckIndexOnClose(boolean value)

  Set whether or not checkindex should be run on close

### getCheckIndexOnClose

    public boolean getCheckIndexOnClose()

### setRandomIOExceptionRate

    public void setRandomIOExceptionRate(double rate)

  If 0.0, no exceptions will be thrown. Else this should be a double 0.0 - 1.0. We will randomly throw an IOException on the first write to an OutputStream based on this probability.

### getRandomIOExceptionRate

    public double getRandomIOExceptionRate()

### deleteFile

    public void deleteFile(String name)
                    throws IOException

  Specified by:
    `deleteFile` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### getOpenDeletedFiles

    public Set<String> getOpenDeletedFiles()

### setFailOnCreateOutput

    public void setFailOnCreateOutput(boolean v)

### createOutput

    public org.apache.lucene.store.IndexOutput createOutput(String name)
                                                     throws IOException

  Specified by:
    `createOutput` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### setFailOnOpenInput

    public void setFailOnOpenInput(boolean v)

### openInput

    public org.apache.lucene.store.IndexInput openInput(String name)
                                                 throws IOException

  Specified by:
    `openInput` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### getRecomputedSizeInBytes

    public final long getRecomputedSizeInBytes()
                                        throws IOException

  Provided for testing purposes. Use sizeInBytes() instead.

  Throws:
    `IOException`

### getRecomputedActualSizeInBytes

    public final long getRecomputedActualSizeInBytes()
                                              throws IOException

  Like getRecomputedSizeInBytes(), but, uses actual file lengths rather than buffer allocations (which are quantized up to nearest RAMOutputStream.BUFFER_SIZE (now 1024) bytes.

  Throws:
    `IOException`

### setAssertNoUnrefencedFilesOnClose

    public void setAssertNoUnrefencedFilesOnClose(boolean v)

### close

    public void close()
               throws IOException

  Specified by:
    `close` in interface `Closeable`
  Specified by:
    `close` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### removeIndexOutput

    public void removeIndexOutput(org.apache.lucene.store.IndexOutput out,
                                  String name)

### removeIndexInput

    public void removeIndexInput(org.apache.lucene.store.IndexInput in,
                                 String name)

### isOpen

    public boolean isOpen()

### failOn

    public void failOn(MockDirectoryWrapper.Failure fail)

  add a Failure object to the list of objects to be evaluated at every potential failure point

### listAll

    public String[] listAll()
                     throws IOException

  Specified by:
    `listAll` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### fileExists

    public boolean fileExists(String name)
                       throws IOException

  Specified by:
    `fileExists` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### fileModified

    public long fileModified(String name)
                      throws IOException

  Specified by:
    `fileModified` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### touchFile

    @Deprecated
    public void touchFile(String name)
                   throws IOException

  Deprecated.

  Specified by:
    `touchFile` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### fileLength

    public long fileLength(String name)
                    throws IOException

  Specified by:
    `fileLength` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### makeLock

    public org.apache.lucene.store.Lock makeLock(String name)

  Overrides:
    `makeLock` in class `org.apache.lucene.store.Directory`

### clearLock

    public void clearLock(String name)
                   throws IOException

  Overrides:
    `clearLock` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### setLockFactory

    public void setLockFactory(org.apache.lucene.store.LockFactory lockFactory)
                        throws IOException

  Overrides:
    `setLockFactory` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

### getLockFactory

    public org.apache.lucene.store.LockFactory getLockFactory()

  Overrides:
    `getLockFactory` in class `org.apache.lucene.store.Directory`

### getLockID

    public String getLockID()

  Overrides:
    `getLockID` in class `org.apache.lucene.store.Directory`

### copy

    public void copy(org.apache.lucene.store.Directory to,
                     String src,
                     String dest)
              throws IOException

  Overrides:
    `copy` in class `org.apache.lucene.store.Directory`
  Throws:
    `IOException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD