Чтобы ваш контроллер не зависел от помощника по манипулированию изображениями, вам нужно, чтобы он взаимодействовал с интерфейсом, а не с конкретным классом.Поэтому создайте интерфейс, подобный IImageManipulator, и пусть ваши методы вызова контроллера будут использоваться в этом интерфейсе, а не в вашем классе.Ваш класс манипулятора изображения должен будет реализовать этот интерфейс.Вам нужно будет использовать метод внедрения зависимостей, чтобы внедрить конкретную реализацию в ваш контроллер (есть несколько приемлемых способов сделать это).
Теперь ваш контроллер будет зависеть от интерфейса, а не от конкретной реализации,что позволяет вам тестировать ваш контроллер модульно с помощью интерфейса IImageManipulator и вводить этот макет в контроллер.