После просмотра вашего кода кажется, что этот класс действует как Фабрика и Репозиторий для класса \ Entities \ Customer (это было неочевидно, поэтому вы могли бы рассмотреть переименование как более явное в своих намерениях). Я также не согласен с тем, что эта функция называется save, так как она возвращает только объект, который затем необходимо сохранить, но это больше семантика.
Теперь, когда у вас есть код, я вижу два разных теста, которые необходимы.
1) Проверьте свой класс \ Entities \ Customer.
Убедитесь, что каждый из ваших геттеров и сеттеров работает правильно, или хотя бы любой из них имеет бизнес-логику. Например, убедитесь, что если вы установите ResellerShop, то если вы получите правильный / действительный объект ResellerShow.
Более или менее, вам нужно проверить свою бизнес-логику. Получение / набор базовых полей (например, Name) на самом деле не требуют их собственных тестов (если только 100% охват кода не является целью, я так не думаю).
2) Проверьте класс (Factory \ Repository).
Убедитесь, что класс, который вы показали, правильно создается (или не работает) в зависимости от данных, передаваемых в массив. Например, он должен завершиться ошибкой, если обязательные поля не переданы, и он не должен возвращать объект сущности клиента.
Идея заключается в разделении интересов. Ваш класс Entity должен содержать вашу бизнес-логику и должен тестироваться отдельно от кода реализации вашего объекта.