As a software engineer
I want to have good code coverage of FileService
So that I can have confidence that changes won't break existing functionality

Given mockall can be used to mock struct impl dependencies
When adding unit tests to FileService
Then create mockall mocks to create a mock instance CachingClient (if they don't already exist)
And use these mocks to test FileService methods
And use 'mock!' to define test doubles whose actions can be mocked
And use PointerService in pointer_service.rs and PointerCachingClient in pointer_caching_client.rs and PublicArchiveCachingClient in public_archive_caching_client.rs as examples
And use #[double] annotation above the import in cases when the non-mock dependency is used

Implementation Notes

- Place any unit tests at the bottom of the same file as the associated production code
- Increment patch version of anttp package in Cargo.toml
- Create a copy of this issue description and save to /spec using the name of this issue as the filename (with lower underscore case, starting with the 5 char padded issue number, e.g. 00001_issue_title.txt)
- Fix failing unit tests in FileService and improve coverage
- Do not clone or mock other *_service.rs code
- Mock PublicArchiveCachingClient using mockall `!mock` annotation to improve testing of public_archive_service.rs
- Update get_public_archive to allow path to be optional
- Use #[double] (from 'mockall_double::double') on any imports which have a mocked version to avoid dependency errors