This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 3818e5d211eb0a6c7459b885c5539610ef9bcd77 Author: Benoit Tellier <[email protected]> AuthorDate: Tue Dec 10 11:32:58 2019 +0700 [Refactoring] Tests for DefaultImapEncoderFactory --- .../encode/main/DefaultImapEncoderFactory.java | 6 +-- .../encode/main/DefaultImapEncoderFactoryTest.java | 56 ++++++++++++++++++++++ 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactory.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactory.java index bdeb461..d5ed92f 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactory.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactory.java @@ -20,7 +20,6 @@ package org.apache.james.imap.encode.main; import java.io.IOException; -import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Stream; @@ -58,17 +57,16 @@ import org.apache.james.imap.encode.XListResponseEncoder; import org.apache.james.imap.encode.base.EndImapEncoder; import com.github.steveash.guavate.Guavate; -import com.google.common.collect.ImmutableList; /** * TODO: perhaps a POJO would be better */ public class DefaultImapEncoderFactory implements ImapEncoderFactory { - private static class DefaultImapEncoder implements ImapEncoder { + static class DefaultImapEncoder implements ImapEncoder { private final Map<Class<? extends ImapMessage>, ImapResponseEncoder> encoders; private final EndImapEncoder endImapEncoder; - private DefaultImapEncoder(Stream<ImapResponseEncoder> encoders, EndImapEncoder endImapEncoder) { + DefaultImapEncoder(Stream<ImapResponseEncoder> encoders, EndImapEncoder endImapEncoder) { this.encoders = encoders .collect(Guavate.toImmutableMap( ImapResponseEncoder::acceptableMessages, diff --git a/protocols/imap/src/test/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactoryTest.java b/protocols/imap/src/test/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactoryTest.java new file mode 100644 index 0000000..b9e270b --- /dev/null +++ b/protocols/imap/src/test/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactoryTest.java @@ -0,0 +1,56 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ + +package org.apache.james.imap.encode.main; + +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +import java.util.stream.Stream; + +import org.apache.james.imap.encode.ImapResponseComposer; +import org.apache.james.imap.encode.RecentResponseEncoder; +import org.apache.james.imap.encode.base.EndImapEncoder; +import org.apache.james.imap.message.response.RecentResponse; +import org.junit.jupiter.api.Test; + +class DefaultImapEncoderFactoryTest { + @Test + void defaultImapEncoderConstructorShouldThrowOnDuplicatedProcessor() { + assertThatThrownBy(() -> new DefaultImapEncoderFactory.DefaultImapEncoder( + Stream.of( + new RecentResponseEncoder(), + new RecentResponseEncoder()), + new EndImapEncoder())) + .isInstanceOf(IllegalArgumentException.class); + } + + @Test + void encodeShouldTagNoWhenUnknownMessage() throws Exception { + DefaultImapEncoderFactory.DefaultImapEncoder defaultImapEncoder = new DefaultImapEncoderFactory.DefaultImapEncoder( + Stream.empty(), + new EndImapEncoder()); + + ImapResponseComposer composer = mock(ImapResponseComposer.class); + defaultImapEncoder.encode(new RecentResponse(18), composer); + + verify(composer).untaggedNoResponse("Unknown message in pipeline", null); + } +} \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
