public static Limit from(Optional<Integer> limit) { return limit.map(Limit::from) .orElse(unlimited()); }
public static Limit from(int limit) { if (limit > 0) { return new Limit(Optional.of(limit)); } else { return unlimited(); } }
public static Limit from(int limit) { if (limit > 0) { return new Limit(Optional.of(limit)); } else { return unlimited(); } }
@Test void ofShouldTakeZeroValueAsUnlimited() { assertThat(Limit.from(0)) .isEqualTo(Limit.unlimited()); } }
@Test public void extractLimitShouldReturnUnlimitedWhenNotInParameters() { Request request = mock(Request.class); when(request.queryParams("limit")) .thenReturn(null); Limit limit = ParametersExtractor.extractLimit(request); assertThat(limit).isEqualTo(Limit.unlimited()); }
@Test void ofShouldTakeNegativeValueAsUnlimited() { assertThat(Limit.from(-1)) .isEqualTo(Limit.unlimited()); }
@Test public void ofShouldTakeZeroValueAsUnlimited() { assertThat(Limit.from(0)) .isEqualTo(Limit.unlimited()); } }
@Test public void ofShouldTakeNegativeValueAsUnlimited() { assertThat(Limit.from(-1)) .isEqualTo(Limit.unlimited()); }
@Test public void extractLimitShouldReturnUnlimitedWhenPresentInParametersButEmpty() { Request request = mock(Request.class); when(request.queryParams("limit")) .thenReturn(""); Limit limit = ParametersExtractor.extractLimit(request); assertThat(limit).isEqualTo(Limit.unlimited()); }
@Test public void extractLimitShouldReturnUnlimitedWhenNotInParameters() { Request request = mock(Request.class); when(request.queryParams("limit")) .thenReturn(null); Limit limit = ParametersExtractor.extractLimit(request); assertThat(limit).isEqualTo(Limit.unlimited()); }
@Test public void extractLimitShouldReturnUnlimitedWhenPresentInParametersButEmpty() { Request request = mock(Request.class); when(request.queryParams("limit")) .thenReturn(""); Limit limit = ParametersExtractor.extractLimit(request); assertThat(limit).isEqualTo(Limit.unlimited()); }
@Test public void listMailsShouldReturnEmptyWhenMailRepositoryIsEmpty() throws Exception { when(mailRepositoryStore.getByPath(FIRST_REPOSITORY_PATH)).thenReturn(Stream.of(repository)); assertThat(testee.listMails(FIRST_REPOSITORY_PATH, Offset.none(), Limit.unlimited()).get()) .isEmpty(); }
@Test void unlimitedShouldCreateLimitWithNoLimit() { Limit testee = Limit.unlimited(); assertThat(testee.getLimit()).isEqualTo(Optional.empty()); }
@Test public void listMailsShouldThrowWhenMailRepositoryStoreThrows() throws Exception { when(mailRepositoryStore.getByPath(FIRST_REPOSITORY_PATH)) .thenThrow(new MailRepositoryStore.MailRepositoryStoreException("message")); assertThatThrownBy(() -> testee.listMails(FIRST_REPOSITORY_PATH, Offset.none(), Limit.unlimited())) .isInstanceOf(MailRepositoryStore.MailRepositoryStoreException.class); }
@Test void unlimitedShouldCreateLimitThatDoesNotAffectStream() { Limit testee = Limit.unlimited(); assertThat( testee .applyOnStream(aList.stream()) .collect(Guavate.toImmutableList()) ).isEqualTo(aList); }
@Test public void unlimitedShouldCreateLimitThatDoesNotAffectStream() { Limit testee = Limit.unlimited(); assertThat( testee .applyOnStream(aList.stream()) .collect(Guavate.toImmutableList()) ).isEqualTo(aList); }
@Test void saveShouldStoreMessageWithBodyContent() throws Exception { message = createMessage(messageId, CONTENT, BODY_START, new PropertyBuilder(), NO_ATTACHMENT); testee.save(message).join(); MessageWithoutAttachment attachmentRepresentation = toMessage(testee.retrieveMessages(messageIds, MessageMapper.FetchType.Body, Limit.unlimited())); byte[] expected = Bytes.concat( new byte[BODY_START], CONTENT.substring(BODY_START).getBytes(StandardCharsets.UTF_8)); assertThat(IOUtils.toString(attachmentRepresentation.getContent(), StandardCharsets.UTF_8)) .isEqualTo(IOUtils.toString(new ByteArrayInputStream(expected), StandardCharsets.UTF_8)); }
@Test void saveShouldSaveNullValueForTextualLineCountAsZero() throws Exception { message = createMessage(messageId, CONTENT, BODY_START, new PropertyBuilder(), NO_ATTACHMENT); testee.save(message).join(); MessageWithoutAttachment attachmentRepresentation = toMessage(testee.retrieveMessages(messageIds, MessageMapper.FetchType.Metadata, Limit.unlimited())); assertThat(attachmentRepresentation.getPropertyBuilder().getTextualLineCount()) .isEqualTo(0L); }
@Test void saveShouldSaveTextualLineCount() throws Exception { long textualLineCount = 10L; PropertyBuilder propertyBuilder = new PropertyBuilder(); propertyBuilder.setTextualLineCount(textualLineCount); message = createMessage(messageId, CONTENT, BODY_START, propertyBuilder, NO_ATTACHMENT); testee.save(message).join(); MessageWithoutAttachment attachmentRepresentation = toMessage(testee.retrieveMessages(messageIds, MessageMapper.FetchType.Metadata, Limit.unlimited())); assertThat(attachmentRepresentation.getPropertyBuilder().getTextualLineCount()).isEqualTo(textualLineCount); }
@Test public void listMailsShouldReturnContainedMailKeys() throws Exception { when(mailRepositoryStore.getByPath(FIRST_REPOSITORY_PATH)).thenReturn(Stream.of(repository)); repository.store(FakeMail.builder() .name(NAME_1.asString()) .build()); repository.store(FakeMail.builder() .name(NAME_2.asString()) .build()); assertThat(testee.listMails(FIRST_REPOSITORY_PATH, Offset.none(), Limit.unlimited()).get()) .containsOnly(new MailKeyDTO(NAME_1), new MailKeyDTO(NAME_2)); }