I'd probably change how the generator works:
instead of using `self.context.get_files()` here I'd add the files from the outside, e.g.:

```python

with ZipGenerator() as generator:
    for file_path, file_pointer in representation.get_files():
        generator.add_file(file_path, file_pointer)
    zipfile = generator.generate()
```

This will remove all dependencies from the ZipGenerator to Plone and will allow you to test it very isolated in unit tests.
I also think that generator does not have to be an adapter, since I don't think that we need to change it.