У меня есть класс Service, содержащий этот метод:
public List<Tag> getSegmentByTypeSaved(String mailChimpListId) {
List<Tag> tags = mailChimpClient.listTags(mailChimpListId);
List<Tag> listOfSegmentsByTypeSaved = tags.stream()
.filter(x -> x.getType().equals(TagType.SAVED))
.map(y -> new Tag(y.getId(), y.getName(), y.getUpdatedAt(), y.getMemberCount(), y.getType()))
.sorted(Comparator.comparing(Tag::getUpdatedAt).reversed())
.collect(Collectors.toList());
return listOfSegmentsByTypeSaved;
}
Я хочу создать тест, чтобы проверить, работает ли сервис так, как я хочу. Класс тестирования до сих пор:
@Test
public void getFiltredListByTypeSaved() {
Tag tagOne = new Tag(1, "Test One", LocalDate.now().minusDays(2).toString(), 5, TagType.SAVED);
Tag tagTwo = new Tag(2, "Test Two", LocalDate.now().minusDays(5).toString(), 5, TagType.STATIC);
List<Tag> tags = new ArrayList<>();
tags.add(tagOne);
tags.add(tagTwo);
// Check if list has size of two after filtered
// Check if list have the properties as above only for SAVED
// Check if list if sorted by attribute eg: LocalDate
Как я могу издеваться, чтобы служба фактически возвращала мне отфильтрованный список? Мой метод класса Service принимает идентификатор в качестве входного параметра. Эта строка кода в классе обслуживания List<Tag> tags = mailChimpClient.listTags(mailChimpListId);
возвращает мне список tags
с другим объектом, содержащим типы «сохраненный» и «stati c». Но в моем тесте я хочу проверить, что я получаю список только TagType.SAVED
.
Мой MailChimpService
класс:
@Inject
public MailChimpService(MailChimpClient mailChimpClient,
MailChimpRepository mailChimpRepository,
ProductService productService,
SchoolService schoolService,
SchoolYearService schoolYearService,
SchoolYearConfigService schoolYearConfigService,
@Value("${mailchimp.customer.list}") String mailChimpCustomerListId,
@Value("${mailchimp.customer.smspermission}") String mailChimpCustomerSmsPermission,
@Value("${mailchimp.customer.emailpermission}") String mailChimpCustomerEmailPermission,
@Value("${mailchimp.schooladmin.list}") String mailChimpSchoolAdminListId,
@Value("${mailchimp.schooladmin.smspermission}") String mailChimpSchoolAdminSmsPermission,
@Value("${mailchimp.schooladmin.emailpermission}") String mailChimpSchoolAdminEmailPermission
) {
this.mailChimpClient = mailChimpClient;
this.mailChimpRepository = mailChimpRepository;
this.productService = productService;
this.schoolService = schoolService;
this.schoolYearService = schoolYearService;
this.schoolYearConfigService = schoolYearConfigService;
this.mailChimpCustomerListId = mailChimpCustomerListId;
this.mailChimpCustomerEmailPermission = mailChimpCustomerEmailPermission;
this.mailChimpCustomerSmsPermission = mailChimpCustomerSmsPermission;
this.mailChimpSchoolAdminListId = mailChimpSchoolAdminListId;
this.mailChimpSchoolAdminEmailPermission = mailChimpSchoolAdminEmailPermission;
this.mailChimpSchoolAdminSmsPermission = mailChimpSchoolAdminSmsPermission;
}
Есть идеи?
Спасибо!