/** * Gets the user executing this session. * * @return not null */ public User getUser() { return User.fromUsername(userName); }
@VisibleForTesting boolean areDomainsDifferent(String user, String otherUser) { Optional<Domain> domain = User.fromUsername(user).getDomainPart(); Optional<Domain> otherDomain = User.fromUsername(otherUser).getDomainPart(); return !domain.equals(otherDomain); }
@Test public void withDefaultDomainFromUserShouldPreserveUserWhenAlreadyHasADomain() { assertThat(User.fromUsername("user@domain") .withDefaultDomainFromUser(User.fromUsername("bob@tld"))) .isEqualTo(User.fromUsername("user@domain")); }
@Test public void withDefaultDomainFromUserShouldAppendOtherUserDomainWhenNone() { assertThat(User.fromUsername("user") .withDefaultDomainFromUser(User.fromUsername("bob@tld"))) .isEqualTo(User.fromUsername("user@tld")); }
private String listScriptsInternals(Session session) throws AuthenticationRequiredException, StorageException { authenticationCheck(session); String list = Joiner.on("\r\n").join( Iterables.transform(sieveRepository.listScripts(User.fromUsername(session.getUser())), scriptSummary -> '"' + scriptSummary.getName().getValue() + '"' + (scriptSummary.isActive() ? " ACTIVE" : ""))); if (Strings.isNullOrEmpty(list)) { return "OK"; } else { return list + "\r\nOK"; } }
@Test public void fromUsernameShouldThrowOnEmpty() { assertThatThrownBy(() -> User.fromUsername("")) .isInstanceOf(IllegalArgumentException.class); }
@Test public void withDefaultDomainShouldNotThrowUponEmptyDomain() { assertThat(User.fromUsername("user") .withDefaultDomain(Optional.empty())) .isEqualTo(User.fromUsername("user")); }
@Test public void withDefaultDomainShouldNotAppendDefaultDomainWhenDomainIsPresent() { assertThat(User.fromUsername("user@domain") .withDefaultDomain(Domain.LOCALHOST)) .isEqualTo(User.fromUsername("user@domain")); }
@Test public void fromUsernameShouldThrowWhenStartsWithDomainDelimiter() { assertThatThrownBy(() -> User.fromUsername("@aa")) .isInstanceOf(IllegalArgumentException.class); }
@Test public void fromUsernameShouldThrowOnEmpty() { assertThatThrownBy(() -> User.fromUsername("")) .isInstanceOf(IllegalArgumentException.class); }
@Test public void fromUsernameShouldParseUsernameWithDomain() { assertThat(User.fromUsername("aa@bb")) .isEqualTo(User.from("aa", Optional.of("bb"))); }
@Test public void withDefaultDomainShouldAppendDefaultDomainWhenNone() { assertThat(User.fromUsername("user") .withDefaultDomain(Domain.LOCALHOST)) .isEqualTo(User.fromLocalPartWithDomain("user", Domain.LOCALHOST)); }
@Override public String deleteScript(Session session, String name) { return handleCommandExecution(() -> { authenticationCheck(session); sieveRepository.deleteScript(User.fromUsername(session.getUser()), new ScriptName(name)); return "OK"; }, session); }
@Override public String setActive(Session session, String name) { return handleCommandExecution(() -> { authenticationCheck(session); sieveRepository.setActive(User.fromUsername(session.getUser()), new ScriptName(name)); return "OK"; }, session); }
@Test void userShouldBeWellSerialized() { assertThat(DTO_JSON_SERIALIZE.userWriters().writes(User.fromUsername("bob"))) .isEqualTo(new JsString("bob")); }
@Test void userShouldBeWellDeSerialized() { assertThat(DTO_JSON_SERIALIZE.userReads().reads(new JsString("bob")).get()) .isEqualTo(User.fromUsername("bob")); }
@Test void userShouldBeWellDeSerializedWhenVirtualHosting() { assertThat(DTO_JSON_SERIALIZE.userReads().reads(new JsString("bob@domain")).get()) .isEqualTo(User.fromUsername("bob@domain")); }
@Override public String putScript(Session session, String name, String content) { return handleCommandExecution(() -> { authenticationCheck(session); sieveRepository.putScript(User.fromUsername(session.getUser()), new ScriptName(name), new ScriptContent(content)); return manageWarnings(parser.parse(content)); }, session); }
@Test default void groupListenersShouldNotReceiveNoopEvents() throws Exception { MailboxListener listener = newListener(); eventBus().register(listener, GROUP_A); MailboxListener.Added noopEvent = new MailboxListener.Added(MailboxSession.SessionId.of(18), User.fromUsername("bob"), MailboxPath.forUser("bob", "mailbox"), TestId.of(58), ImmutableSortedMap.of(), Event.EventId.random()); eventBus().dispatch(noopEvent, NO_KEYS).block(); verify(listener, after(FIVE_HUNDRED_MS.toMillis()).never()) .event(any()); }
@Test default void registeredListenersShouldNotReceiveNoopEvents() throws Exception { MailboxListener listener = newListener(); eventBus().register(listener, KEY_1); MailboxListener.Added noopEvent = new MailboxListener.Added(MailboxSession.SessionId.of(18), User.fromUsername("bob"), MailboxPath.forUser("bob", "mailbox"), TestId.of(58), ImmutableSortedMap.of(), Event.EventId.random()); eventBus().dispatch(noopEvent, KEY_1).block(); verify(listener, after(FIVE_HUNDRED_MS.toMillis()).never()) .event(any()); }