@VisibleForTesting static ImapConfiguration getImapConfiguration(HierarchicalConfiguration configuration) { ImmutableSet<String> disabledCaps = ImmutableSet.copyOf(Splitter.on(CAPABILITY_SEPARATOR).split(configuration.getString("disabledCaps", ""))); return ImapConfiguration.builder() .enableIdle(configuration.getBoolean("enableIdle", ImapConfiguration.DEFAULT_ENABLE_IDLE)) .idleTimeInterval(configuration.getLong("idleTimeInterval", ImapConfiguration.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS)) .idleTimeIntervalUnit(getTimeIntervalUnit(configuration.getString("idleTimeIntervalUnit", DEFAULT_TIME_UNIT))) .disabledCaps(disabledCaps) .build(); }
@Test public void condstoreShouldBeDisableByDefault() throws Exception { system.configure(ImapConfiguration.builder().build()); simpleScriptedTestProtocol.run("CondstoreDisable"); }
@Test public void idleKeepAliveShouldBeDefaultValueWhenNoSetting() { ImapConfiguration imapConfiguration = ImapConfiguration.builder().build(); assertThat(imapConfiguration.getIdleTimeInterval()).isEqualTo(ImapConfiguration.DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS); }
@Test public void millisecondsShouldBeDefaultValueWhenNoSetting() { ImapConfiguration imapConfiguration = ImapConfiguration.builder().build(); assertThat(imapConfiguration.getIdleTimeIntervalUnit()).isEqualTo(ImapConfiguration.DEFAULT_HEARTBEAT_INTERVAL_UNIT); }
@Test public void idleShouldEnableByDefault() { ImapConfiguration imapConfiguration = ImapConfiguration.builder() .build(); assertThat(imapConfiguration.isEnableIdle()).isTrue(); }
@Test public void condstoreShouldBeDisableWhenGivenAndFalse() throws Exception { system.configure(ImapConfiguration.builder().isCondstoreEnable(false).build()); simpleScriptedTestProtocol.run("CondstoreDisable"); }
@Test public void condstoreShouldBeEnableWhenGivenAndTrue() throws Exception { system.configure(ImapConfiguration.builder().isCondstoreEnable(true).build()); simpleScriptedTestProtocol.run("CondstoreEnable"); } }
@Test public void millisecondsShouldReturnSetValue() { ImapConfiguration imapConfiguration = ImapConfiguration.builder() .idleTimeIntervalUnit(TimeUnit.MINUTES) .build(); assertThat(imapConfiguration.getIdleTimeIntervalUnit()).isEqualTo(TimeUnit.MINUTES); }
@Test public void isCondstoreEnableShouldBeTrueWhenValueIsTrue() { ImapConfiguration imapConfiguration = ImapConfiguration.builder() .isCondstoreEnable(true) .build(); assertThat(imapConfiguration.isCondstoreEnable()).isTrue(); }
@Test public void idleKeepAliveShouldReturnSetValue() { long idleValue = 1; ImapConfiguration imapConfiguration = ImapConfiguration.builder() .idleTimeInterval(idleValue) .build(); assertThat(imapConfiguration.getIdleTimeInterval()).isEqualTo(idleValue); }
@Test public void idleShouldBeDisable() { ImapConfiguration imapConfiguration = ImapConfiguration.builder() .enableIdle(false) .build(); assertThat(imapConfiguration.isEnableIdle()).isFalse(); }
@Test public void isCondstoreEnableShouldBeFalseWhenValueIsFalse() { ImapConfiguration imapConfiguration = ImapConfiguration.builder() .isCondstoreEnable(false) .build(); assertThat(imapConfiguration.isCondstoreEnable()).isFalse(); } }
@Test public void disabledCapsShouldBeEmptyAsDefault() { ImapConfiguration imapConfiguration = ImapConfiguration.builder() .build(); assertThat(imapConfiguration.getDisabledCaps()).isEmpty(); }
@Test public void disabledCapsShouldReturnMultipleSetValues() { ImapConfiguration imapConfiguration = ImapConfiguration.builder() .disabledCaps(ImmutableSet.of("AnyValue", "OtherValue")) .build(); assertThat(imapConfiguration.getDisabledCaps()).containsExactly("AnyValue", "OtherValue"); }
@Test public void disabledCapsShouldReturnMultipleSetValuesWithNormalizeValue() { ImapConfiguration imapConfiguration = ImapConfiguration.builder() .disabledCaps(ImmutableSet.of(" AnyValue ", " OtherValue ")) .build(); assertThat(imapConfiguration.getDisabledCaps()).containsExactly("AnyValue", "OtherValue"); }
@Test public void condstoreShouldBeNotSupportedByDefault() { testee.configure(ImapConfiguration.builder().build()); Set<String> supportedCapabilities = testee.getSupportedCapabilities(null); assertThat(supportedCapabilities).doesNotContain(ImapConstants.SUPPORTS_CONDSTORE); } }
@Test public void disabledCapShouldReturnMultipleStringWithNormalizeValue() { ImapConfiguration imapConfiguration = ImapConfiguration.builder() .disabledCap(" AnyValue ") .build(); assertThat(imapConfiguration.getDisabledCaps()).containsExactly("AnyValue"); }
@Test public void disabledCapsFromStringArrayShouldReturnMultipleSetValuesWithNormalizeValue() { ImapConfiguration imapConfiguration = ImapConfiguration.builder() .disabledCaps(" AnyValue ", " OtherValue ") .build(); assertThat(imapConfiguration.getDisabledCaps()).containsExactly("AnyValue", "OtherValue"); }
@Test public void idleKeepAliveShouldThrowWhenRezo() { expectedException.expect(IllegalArgumentException.class); ImapConfiguration.builder() .idleTimeInterval(0L) .build(); }
@Test public void condstoreShouldBeSupportedWhenSelectedFor() { testee.configure(ImapConfiguration.builder().isCondstoreEnable(true).build()); Set<String> supportedCapabilities = testee.getSupportedCapabilities(null); assertThat(supportedCapabilities).contains(ImapConstants.SUPPORTS_CONDSTORE); }