Search in sources :

Example 1 with NOTICE

use of org.folio.circulation.domain.representations.logs.LogEventType.NOTICE in project mod-circulation by folio-org.

the class DueDateNotRealTimeScheduledNoticesProcessingTests method processingTakesNoticesLimitedByConfiguration.

@Test
void processingTakesNoticesLimitedByConfiguration() {
    Period beforePeriod = Period.weeks(1);
    JsonObject uponAtDueDateNoticeConfig = new NoticeConfigurationBuilder().withTemplateId(TEMPLATE_ID).withDueDateEvent().withBeforeTiming(beforePeriod).sendInRealTime(false).create();
    NoticePolicyBuilder noticePolicy = new NoticePolicyBuilder().withName("Policy with due date notices").withLoanNotices(Collections.singletonList(uponAtDueDateNoticeConfig));
    use(noticePolicy);
    IndividualResource james = usersFixture.james();
    IndividualResource steve = usersFixture.steve();
    IndividualResource rebecca = usersFixture.rebecca();
    // Generate several loans
    for (int i = 0; i < 4; i++) {
        String baseBarcode = Integer.toString(i);
        checkOutFixture.checkOutByBarcode(itemsFixture.basedUponNod(b -> b.withBarcode(baseBarcode + "1")), james);
        checkOutFixture.checkOutByBarcode(itemsFixture.basedUponNod((b -> b.withBarcode(baseBarcode + "2"))), steve);
        checkOutFixture.checkOutByBarcode(itemsFixture.basedUponNod((b -> b.withBarcode(baseBarcode + "3"))), rebecca);
    }
    verifyNumberOfScheduledNotices(12);
    int noticesLimitConfig = 10;
    configClient.create(ConfigurationExample.schedulerNoticesLimitConfiguration(Integer.toString(noticesLimitConfig)));
    // Should fetch 10 notices, when total records is 12
    // So that notices for one of the users should not be processed
    final ZonedDateTime runTime = ClockUtil.getZonedDateTime().plusDays(15);
    mockClockManagerToReturnFixedDateTime(runTime);
    scheduledNoticeProcessingClient.runDueDateNotRealTimeNoticesProcessing(runTime);
    long numberOfUniqueUserIds = scheduledNoticesClient.getAll().stream().map(notice -> notice.getString("recipientUserId")).distinct().count();
    assertThat(numberOfUniqueUserIds, is(1L));
    verifyNumberOfSentNotices(2);
    verifyNumberOfScheduledNotices(4);
    verifyNumberOfPublishedEvents(NOTICE, 2);
    verifyNumberOfPublishedEvents(NOTICE_ERROR, 0);
}
Also used : CoreMatchers.is(org.hamcrest.CoreMatchers.is) NOTICE(org.folio.circulation.domain.representations.logs.LogEventType.NOTICE) BeforeEach(org.junit.jupiter.api.BeforeEach) JsonObjectMatcher.toStringMatcher(api.support.matchers.JsonObjectMatcher.toStringMatcher) Arrays(java.util.Arrays) ZonedDateTime(java.time.ZonedDateTime) APITests(api.support.APITests) FakePubSub(api.support.fakes.FakePubSub) PatronNoticeTestHelper.verifyNumberOfScheduledNotices(api.support.utl.PatronNoticeTestHelper.verifyNumberOfScheduledNotices) DateFormatUtil.parseDateTime(org.folio.circulation.support.utils.DateFormatUtil.parseDateTime) Pair(org.apache.commons.lang3.tuple.Pair) IndividualResource(api.support.http.IndividualResource) Period(org.folio.circulation.domain.policy.Period) NoticePolicyBuilder(api.support.builders.NoticePolicyBuilder) JsonObject(io.vertx.core.json.JsonObject) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) ZoneOffset(java.time.ZoneOffset) DateTimeUtil.isSameMillis(org.folio.circulation.support.utils.DateTimeUtil.isSameMillis) PatronNoticeTestHelper.verifyNumberOfPublishedEvents(api.support.utl.PatronNoticeTestHelper.verifyNumberOfPublishedEvents) DateFormatUtil(org.folio.circulation.support.utils.DateFormatUtil) NOTICE_ERROR(org.folio.circulation.domain.representations.logs.LogEventType.NOTICE_ERROR) DateTimeUtil.atStartOfDay(org.folio.circulation.support.utils.DateTimeUtil.atStartOfDay) CoreMatchers.hasItems(org.hamcrest.CoreMatchers.hasItems) TemplateContextMatchers.getLoanPolicyContextMatchersForUnlimitedRenewals(api.support.fixtures.TemplateContextMatchers.getLoanPolicyContextMatchersForUnlimitedRenewals) TemplateContextMatchers.getMultipleLoansContextMatcher(api.support.fixtures.TemplateContextMatchers.getMultipleLoansContextMatcher) NoticeConfigurationBuilder(api.support.builders.NoticeConfigurationBuilder) FakeModNotify(api.support.fakes.FakeModNotify) lombok.val(lombok.val) UUID(java.util.UUID) UserBuilder(api.support.builders.UserBuilder) ItemResource(api.support.http.ItemResource) PatronNoticeMatcher.hasEmailNoticeProperties(api.support.matchers.PatronNoticeMatcher.hasEmailNoticeProperties) ConfigurationExample(api.support.fixtures.ConfigurationExample) ZoneId(java.time.ZoneId) PatronNoticeTestHelper.verifyNumberOfSentNotices(api.support.utl.PatronNoticeTestHelper.verifyNumberOfSentNotices) Test(org.junit.jupiter.api.Test) MatcherAssert(org.hamcrest.MatcherAssert) ClockUtil(org.folio.circulation.support.utils.ClockUtil) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) Matcher(org.hamcrest.Matcher) Collections(java.util.Collections) ZonedDateTime(java.time.ZonedDateTime) NoticePolicyBuilder(api.support.builders.NoticePolicyBuilder) NoticeConfigurationBuilder(api.support.builders.NoticeConfigurationBuilder) Period(org.folio.circulation.domain.policy.Period) JsonObject(io.vertx.core.json.JsonObject) IndividualResource(api.support.http.IndividualResource) Test(org.junit.jupiter.api.Test)

Example 2 with NOTICE

use of org.folio.circulation.domain.representations.logs.LogEventType.NOTICE in project mod-circulation by folio-org.

the class EndExpiredPatronActionSessionTests method patronHasSomeSessionsAndOnlySessionsWithSameActionTypeShouldBeExpiredByTimeout.

@Test
void patronHasSomeSessionsAndOnlySessionsWithSameActionTypeShouldBeExpiredByTimeout() {
    IndividualResource james = usersFixture.james();
    ItemResource nod = itemsFixture.basedUponNod();
    ItemResource interestingTimes = itemsFixture.basedUponInterestingTimes();
    checkOutFixture.checkOutByBarcode(nod, james);
    checkOutFixture.checkOutByBarcode(interestingTimes, james);
    checkInFixture.checkInByBarcode(nod);
    checkInFixture.checkInByBarcode(interestingTimes);
    expiredEndSessionClient.deleteAll();
    List<JsonObject> sessions = patronSessionRecordsClient.getAll();
    assertThat(sessions, hasSize(4));
    String patronId = sessions.stream().filter(session -> session.getMap().get(ACTION_TYPE).equals(PatronActionType.CHECK_IN.getRepresentation())).findFirst().map(session -> session.getString(PATRON_ID)).orElse("");
    createExpiredEndSession(patronId, CHECK_IN);
    expiredSessionProcessingClient.runRequestExpiredSessionsProcessing(204);
    waitAtMost(1, SECONDS).until(patronSessionRecordsClient::getAll, hasSize(2));
    verifyNumberOfSentNotices(1);
    verifyNumberOfPublishedEvents(NOTICE, 1);
    verifyNumberOfPublishedEvents(NOTICE_ERROR, 0);
}
Also used : IntStream(java.util.stream.IntStream) NOTICE(org.folio.circulation.domain.representations.logs.LogEventType.NOTICE) BeforeEach(org.junit.jupiter.api.BeforeEach) Arrays(java.util.Arrays) ACTION_TYPE(org.folio.circulation.domain.notice.session.PatronActionSessionProperties.ACTION_TYPE) APITests(api.support.APITests) Awaitility.waitAtMost(org.awaitility.Awaitility.waitAtMost) IndividualResource(api.support.http.IndividualResource) NoticePolicyBuilder(api.support.builders.NoticePolicyBuilder) Wait.waitAtLeast(api.support.Wait.waitAtLeast) PatronActionType(org.folio.circulation.domain.notice.session.PatronActionType) Matchers.hasSize(org.hamcrest.Matchers.hasSize) JsonObject(io.vertx.core.json.JsonObject) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) PATRON_ID(org.folio.circulation.domain.notice.session.PatronActionSessionProperties.PATRON_ID) EndSessionBuilder(api.support.builders.EndSessionBuilder) Matchers.empty(org.hamcrest.Matchers.empty) PatronNoticeTestHelper.verifyNumberOfPublishedEvents(api.support.utl.PatronNoticeTestHelper.verifyNumberOfPublishedEvents) NOTICE_ERROR(org.folio.circulation.domain.representations.logs.LogEventType.NOTICE_ERROR) NoticeConfigurationBuilder(api.support.builders.NoticeConfigurationBuilder) FakeModNotify(api.support.fakes.FakeModNotify) lombok.val(lombok.val) LOAN_ID(org.folio.circulation.domain.notice.session.PatronActionSessionProperties.LOAN_ID) UUID(java.util.UUID) ItemResource(api.support.http.ItemResource) PatronNoticeMatcher.hasEmailNoticeProperties(api.support.matchers.PatronNoticeMatcher.hasEmailNoticeProperties) PatronNoticeTestHelper.verifyNumberOfSentNotices(api.support.utl.PatronNoticeTestHelper.verifyNumberOfSentNotices) TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test) List(java.util.List) Stream(java.util.stream.Stream) ID(org.folio.circulation.domain.notice.session.PatronActionSessionProperties.ID) SECONDS(java.util.concurrent.TimeUnit.SECONDS) TemplateContextMatchers(api.support.fixtures.TemplateContextMatchers) JsonObject(io.vertx.core.json.JsonObject) IndividualResource(api.support.http.IndividualResource) ItemResource(api.support.http.ItemResource) Test(org.junit.jupiter.api.Test)

Example 3 with NOTICE

use of org.folio.circulation.domain.representations.logs.LogEventType.NOTICE in project mod-circulation by folio-org.

the class EndExpiredPatronActionSessionTests method patronHasSeveralSessionsAndOnlyOneShouldBeExpiredByTimeout.

@Test
void patronHasSeveralSessionsAndOnlyOneShouldBeExpiredByTimeout() {
    IndividualResource james = usersFixture.james();
    ItemResource nod = itemsFixture.basedUponNod();
    ItemResource interestingTimes = itemsFixture.basedUponInterestingTimes();
    checkOutFixture.checkOutByBarcode(nod, james);
    checkOutFixture.checkOutByBarcode(interestingTimes, james);
    checkInFixture.checkInByBarcode(nod);
    expiredEndSessionClient.deleteAll();
    List<JsonObject> sessions = patronSessionRecordsClient.getAll();
    assertThat(sessions, hasSize(3));
    String patronId = sessions.stream().filter(session -> session.getMap().get(ACTION_TYPE).equals(PatronActionType.CHECK_IN.getRepresentation())).findFirst().map(session -> session.getString(PATRON_ID)).orElse("");
    createExpiredEndSession(patronId, CHECK_IN);
    expiredSessionProcessingClient.runRequestExpiredSessionsProcessing(204);
    waitAtMost(1, SECONDS).until(patronSessionRecordsClient::getAll, hasSize(2));
    verifyNumberOfSentNotices(1);
    verifyNumberOfPublishedEvents(NOTICE, 1);
    verifyNumberOfPublishedEvents(NOTICE_ERROR, 0);
}
Also used : IntStream(java.util.stream.IntStream) NOTICE(org.folio.circulation.domain.representations.logs.LogEventType.NOTICE) BeforeEach(org.junit.jupiter.api.BeforeEach) Arrays(java.util.Arrays) ACTION_TYPE(org.folio.circulation.domain.notice.session.PatronActionSessionProperties.ACTION_TYPE) APITests(api.support.APITests) Awaitility.waitAtMost(org.awaitility.Awaitility.waitAtMost) IndividualResource(api.support.http.IndividualResource) NoticePolicyBuilder(api.support.builders.NoticePolicyBuilder) Wait.waitAtLeast(api.support.Wait.waitAtLeast) PatronActionType(org.folio.circulation.domain.notice.session.PatronActionType) Matchers.hasSize(org.hamcrest.Matchers.hasSize) JsonObject(io.vertx.core.json.JsonObject) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) PATRON_ID(org.folio.circulation.domain.notice.session.PatronActionSessionProperties.PATRON_ID) EndSessionBuilder(api.support.builders.EndSessionBuilder) Matchers.empty(org.hamcrest.Matchers.empty) PatronNoticeTestHelper.verifyNumberOfPublishedEvents(api.support.utl.PatronNoticeTestHelper.verifyNumberOfPublishedEvents) NOTICE_ERROR(org.folio.circulation.domain.representations.logs.LogEventType.NOTICE_ERROR) NoticeConfigurationBuilder(api.support.builders.NoticeConfigurationBuilder) FakeModNotify(api.support.fakes.FakeModNotify) lombok.val(lombok.val) LOAN_ID(org.folio.circulation.domain.notice.session.PatronActionSessionProperties.LOAN_ID) UUID(java.util.UUID) ItemResource(api.support.http.ItemResource) PatronNoticeMatcher.hasEmailNoticeProperties(api.support.matchers.PatronNoticeMatcher.hasEmailNoticeProperties) PatronNoticeTestHelper.verifyNumberOfSentNotices(api.support.utl.PatronNoticeTestHelper.verifyNumberOfSentNotices) TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test) List(java.util.List) Stream(java.util.stream.Stream) ID(org.folio.circulation.domain.notice.session.PatronActionSessionProperties.ID) SECONDS(java.util.concurrent.TimeUnit.SECONDS) TemplateContextMatchers(api.support.fixtures.TemplateContextMatchers) JsonObject(io.vertx.core.json.JsonObject) IndividualResource(api.support.http.IndividualResource) ItemResource(api.support.http.ItemResource) Test(org.junit.jupiter.api.Test)

Example 4 with NOTICE

use of org.folio.circulation.domain.representations.logs.LogEventType.NOTICE in project mod-circulation by folio-org.

the class DueDateNotRealTimeScheduledNoticesProcessingTests method beforeRecurringNoticesAreRescheduled.

@Test
void beforeRecurringNoticesAreRescheduled() {
    configClient.create(ConfigurationExample.utcTimezoneConfiguration());
    Period beforePeriod = Period.weeks(1);
    Period recurringPeriod = Period.days(1);
    JsonObject uponAtDueDateNoticeConfig = new NoticeConfigurationBuilder().withTemplateId(TEMPLATE_ID).withDueDateEvent().withBeforeTiming(beforePeriod).recurring(recurringPeriod).sendInRealTime(false).create();
    NoticePolicyBuilder noticePolicy = new NoticePolicyBuilder().withName("Policy with due date notices").withLoanNotices(Collections.singletonList(uponAtDueDateNoticeConfig));
    use(noticePolicy);
    ZonedDateTime loanDate = ZonedDateTime.of(2019, 8, 23, 10, 30, 0, 0, ZoneOffset.UTC);
    IndividualResource james = usersFixture.james();
    IndividualResource nodToJamesLoan = checkOutFixture.checkOutByBarcode(itemsFixture.basedUponNod(), james, loanDate);
    checkOutFixture.checkOutByBarcode(itemsFixture.basedUponInterestingTimes(), james, loanDate);
    verifyNumberOfScheduledNotices(2);
    ZonedDateTime dueDate = parseDateTime(nodToJamesLoan.getJson().getString("dueDate"));
    ZonedDateTime timeForNoticeToBeSent = dueDate.minusWeeks(1);
    ZonedDateTime nextDayAfterBeforeNoticeShouldBeSend = atStartOfDay(timeForNoticeToBeSent).plusDays(1);
    scheduledNoticeProcessingClient.runDueDateNotRealTimeNoticesProcessing(nextDayAfterBeforeNoticeShouldBeSend);
    ZonedDateTime newNextRunTime = recurringPeriod.plusDate(timeForNoticeToBeSent);
    assertTrue(scheduledNoticesClient.getAll().stream().map(entries -> entries.getString("nextRunTime")).map(DateFormatUtil::parseDateTime).allMatch(d -> isSameMillis(newNextRunTime, d)), "all scheduled notices are rescheduled");
    verifyNumberOfSentNotices(1);
    verifyNumberOfScheduledNotices(2);
    verifyNumberOfPublishedEvents(NOTICE, 1);
    verifyNumberOfPublishedEvents(NOTICE_ERROR, 0);
}
Also used : CoreMatchers.is(org.hamcrest.CoreMatchers.is) NOTICE(org.folio.circulation.domain.representations.logs.LogEventType.NOTICE) BeforeEach(org.junit.jupiter.api.BeforeEach) JsonObjectMatcher.toStringMatcher(api.support.matchers.JsonObjectMatcher.toStringMatcher) Arrays(java.util.Arrays) ZonedDateTime(java.time.ZonedDateTime) APITests(api.support.APITests) FakePubSub(api.support.fakes.FakePubSub) PatronNoticeTestHelper.verifyNumberOfScheduledNotices(api.support.utl.PatronNoticeTestHelper.verifyNumberOfScheduledNotices) DateFormatUtil.parseDateTime(org.folio.circulation.support.utils.DateFormatUtil.parseDateTime) Pair(org.apache.commons.lang3.tuple.Pair) IndividualResource(api.support.http.IndividualResource) Period(org.folio.circulation.domain.policy.Period) NoticePolicyBuilder(api.support.builders.NoticePolicyBuilder) JsonObject(io.vertx.core.json.JsonObject) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) ZoneOffset(java.time.ZoneOffset) DateTimeUtil.isSameMillis(org.folio.circulation.support.utils.DateTimeUtil.isSameMillis) PatronNoticeTestHelper.verifyNumberOfPublishedEvents(api.support.utl.PatronNoticeTestHelper.verifyNumberOfPublishedEvents) DateFormatUtil(org.folio.circulation.support.utils.DateFormatUtil) NOTICE_ERROR(org.folio.circulation.domain.representations.logs.LogEventType.NOTICE_ERROR) DateTimeUtil.atStartOfDay(org.folio.circulation.support.utils.DateTimeUtil.atStartOfDay) CoreMatchers.hasItems(org.hamcrest.CoreMatchers.hasItems) TemplateContextMatchers.getLoanPolicyContextMatchersForUnlimitedRenewals(api.support.fixtures.TemplateContextMatchers.getLoanPolicyContextMatchersForUnlimitedRenewals) TemplateContextMatchers.getMultipleLoansContextMatcher(api.support.fixtures.TemplateContextMatchers.getMultipleLoansContextMatcher) NoticeConfigurationBuilder(api.support.builders.NoticeConfigurationBuilder) FakeModNotify(api.support.fakes.FakeModNotify) lombok.val(lombok.val) UUID(java.util.UUID) UserBuilder(api.support.builders.UserBuilder) ItemResource(api.support.http.ItemResource) PatronNoticeMatcher.hasEmailNoticeProperties(api.support.matchers.PatronNoticeMatcher.hasEmailNoticeProperties) ConfigurationExample(api.support.fixtures.ConfigurationExample) ZoneId(java.time.ZoneId) PatronNoticeTestHelper.verifyNumberOfSentNotices(api.support.utl.PatronNoticeTestHelper.verifyNumberOfSentNotices) Test(org.junit.jupiter.api.Test) MatcherAssert(org.hamcrest.MatcherAssert) ClockUtil(org.folio.circulation.support.utils.ClockUtil) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) Matcher(org.hamcrest.Matcher) Collections(java.util.Collections) DateFormatUtil(org.folio.circulation.support.utils.DateFormatUtil) ZonedDateTime(java.time.ZonedDateTime) NoticePolicyBuilder(api.support.builders.NoticePolicyBuilder) NoticeConfigurationBuilder(api.support.builders.NoticeConfigurationBuilder) Period(org.folio.circulation.domain.policy.Period) JsonObject(io.vertx.core.json.JsonObject) IndividualResource(api.support.http.IndividualResource) Test(org.junit.jupiter.api.Test)

Example 5 with NOTICE

use of org.folio.circulation.domain.representations.logs.LogEventType.NOTICE in project mod-circulation by folio-org.

the class EndExpiredPatronActionSessionTests method patronNoticeContextContainsUserTokensWhenNoticeIsTriggeredByExpiredSession.

@Test
void patronNoticeContextContainsUserTokensWhenNoticeIsTriggeredByExpiredSession() {
    IndividualResource james = usersFixture.james();
    ItemResource nod = itemsFixture.basedUponNod();
    checkOutFixture.checkOutByBarcode(nod, james);
    patronSessionRecordsClient.getAll().stream().filter(session -> session.getMap().get(ACTION_TYPE).equals(PatronActionType.CHECK_OUT.getRepresentation())).map(session -> session.getString(PATRON_ID)).forEach(patronId -> createExpiredEndSession(patronId, CHECK_OUT));
    expiredSessionProcessingClient.runRequestExpiredSessionsProcessing(204);
    waitAtMost(1, SECONDS).until(patronSessionRecordsClient::getAll, empty());
    verifyNumberOfSentNotices(1);
    verifyNumberOfPublishedEvents(NOTICE, 1);
    verifyNumberOfPublishedEvents(NOTICE_ERROR, 0);
    assertThat(FakeModNotify.getFirstSentPatronNotice(), hasEmailNoticeProperties(james.getId(), CHECK_OUT_TEMPLATE_ID, TemplateContextMatchers.getUserContextMatchers(james)));
}
Also used : IntStream(java.util.stream.IntStream) NOTICE(org.folio.circulation.domain.representations.logs.LogEventType.NOTICE) BeforeEach(org.junit.jupiter.api.BeforeEach) Arrays(java.util.Arrays) ACTION_TYPE(org.folio.circulation.domain.notice.session.PatronActionSessionProperties.ACTION_TYPE) APITests(api.support.APITests) Awaitility.waitAtMost(org.awaitility.Awaitility.waitAtMost) IndividualResource(api.support.http.IndividualResource) NoticePolicyBuilder(api.support.builders.NoticePolicyBuilder) Wait.waitAtLeast(api.support.Wait.waitAtLeast) PatronActionType(org.folio.circulation.domain.notice.session.PatronActionType) Matchers.hasSize(org.hamcrest.Matchers.hasSize) JsonObject(io.vertx.core.json.JsonObject) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) PATRON_ID(org.folio.circulation.domain.notice.session.PatronActionSessionProperties.PATRON_ID) EndSessionBuilder(api.support.builders.EndSessionBuilder) Matchers.empty(org.hamcrest.Matchers.empty) PatronNoticeTestHelper.verifyNumberOfPublishedEvents(api.support.utl.PatronNoticeTestHelper.verifyNumberOfPublishedEvents) NOTICE_ERROR(org.folio.circulation.domain.representations.logs.LogEventType.NOTICE_ERROR) NoticeConfigurationBuilder(api.support.builders.NoticeConfigurationBuilder) FakeModNotify(api.support.fakes.FakeModNotify) lombok.val(lombok.val) LOAN_ID(org.folio.circulation.domain.notice.session.PatronActionSessionProperties.LOAN_ID) UUID(java.util.UUID) ItemResource(api.support.http.ItemResource) PatronNoticeMatcher.hasEmailNoticeProperties(api.support.matchers.PatronNoticeMatcher.hasEmailNoticeProperties) PatronNoticeTestHelper.verifyNumberOfSentNotices(api.support.utl.PatronNoticeTestHelper.verifyNumberOfSentNotices) TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test) List(java.util.List) Stream(java.util.stream.Stream) ID(org.folio.circulation.domain.notice.session.PatronActionSessionProperties.ID) SECONDS(java.util.concurrent.TimeUnit.SECONDS) TemplateContextMatchers(api.support.fixtures.TemplateContextMatchers) IndividualResource(api.support.http.IndividualResource) ItemResource(api.support.http.ItemResource) Test(org.junit.jupiter.api.Test)

Aggregations

APITests (api.support.APITests)7 NoticeConfigurationBuilder (api.support.builders.NoticeConfigurationBuilder)7 NoticePolicyBuilder (api.support.builders.NoticePolicyBuilder)7 FakeModNotify (api.support.fakes.FakeModNotify)7 IndividualResource (api.support.http.IndividualResource)7 ItemResource (api.support.http.ItemResource)7 PatronNoticeMatcher.hasEmailNoticeProperties (api.support.matchers.PatronNoticeMatcher.hasEmailNoticeProperties)7 PatronNoticeTestHelper.verifyNumberOfPublishedEvents (api.support.utl.PatronNoticeTestHelper.verifyNumberOfPublishedEvents)7 PatronNoticeTestHelper.verifyNumberOfSentNotices (api.support.utl.PatronNoticeTestHelper.verifyNumberOfSentNotices)7 JsonObject (io.vertx.core.json.JsonObject)7 Arrays (java.util.Arrays)7 UUID (java.util.UUID)7 lombok.val (lombok.val)7 NOTICE (org.folio.circulation.domain.representations.logs.LogEventType.NOTICE)7 NOTICE_ERROR (org.folio.circulation.domain.representations.logs.LogEventType.NOTICE_ERROR)7 MatcherAssert.assertThat (org.hamcrest.MatcherAssert.assertThat)7 BeforeEach (org.junit.jupiter.api.BeforeEach)7 Test (org.junit.jupiter.api.Test)7 Wait.waitAtLeast (api.support.Wait.waitAtLeast)5 EndSessionBuilder (api.support.builders.EndSessionBuilder)5