import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.*
import net.pterodactylus.sone.fcp.event.*
import net.pterodactylus.sone.test.*
+import net.pterodactylus.util.config.*
import org.hamcrest.MatcherAssert.*
import org.hamcrest.Matchers.*
import org.junit.*
}
@Test
+ fun `preferences saves null for default insertion delay setting`() {
+ val configuration = Configuration(MapConfigurationBackend())
+ preferences.saveTo(configuration)
+ assertThat(configuration.getIntValue("Option/InsertionDelay").getValue(null), nullValue())
+ }
+
+ @Test
fun `preferences retain posts per page`() {
preferences.newPostsPerPage = 15
assertThat(preferences.postsPerPage, equalTo(15))
}
@Test
- fun `preferences retain positive trust`() {
- preferences.newPositiveTrust = 15
- assertThat(preferences.positiveTrust, equalTo(15))
- }
-
- @Test(expected = IllegalArgumentException::class)
- fun `invalid positive trust is rejected`() {
- preferences.newPositiveTrust = -15
- }
-
- @Test
- fun `preferences return default value when positive trust is set to null`() {
- preferences.newPositiveTrust = null
- assertThat(preferences.positiveTrust, equalTo(75))
- }
-
- @Test
- fun `preferences start with positive trust default value`() {
- assertThat(preferences.positiveTrust, equalTo(75))
- }
-
- @Test
- fun `preferences retain negative trust`() {
- preferences.newNegativeTrust = -15
- assertThat(preferences.negativeTrust, equalTo(-15))
- }
-
- @Test(expected = IllegalArgumentException::class)
- fun `invalid negative trust is rejected`() {
- preferences.newNegativeTrust = 150
- }
-
- @Test
- fun `preferences return default value when negative trust is set to null`() {
- preferences.newNegativeTrust = null
- assertThat(preferences.negativeTrust, equalTo(-25))
- }
-
- @Test
- fun `preferences start with negative trust default value`() {
- assertThat(preferences.negativeTrust, equalTo(-25))
- }
-
- @Test
- fun `preferences retain trust comment`() {
- preferences.newTrustComment = "Trust"
- assertThat(preferences.trustComment, equalTo("Trust"))
- }
-
- @Test
- fun `preferences return default value when trust comment is set to null`() {
- preferences.newTrustComment = null
- assertThat(preferences.trustComment,
- equalTo("Set from Sone Web Interface"))
- }
-
- @Test
- fun `preferences start with trust comment default value`() {
- assertThat(preferences.trustComment,
- equalTo("Set from Sone Web Interface"))
- }
-
- @Test
fun `preferences retain fcp interface active of true`() {
preferences.newFcpInterfaceActive = true
assertThat(preferences.fcpInterfaceActive, equalTo(true))
@Test
fun `setting insertion delay to valid value sends change event`() {
- preferences.newInsertionDelay = 30
- verify(eventBus, atLeastOnce()).post(eventsCaptor.capture())
- assertThat(eventsCaptor.allValues, hasItem(PreferenceChangedEvent("InsertionDelay", 30)))
+ testPreferencesChangedEvent("InsertionDelay", { preferences.newInsertionDelay = it }, 30)
}
@Test
fun `setting posts per page to valid value sends change event`() {
- preferences.newPostsPerPage = 30
+ testPreferencesChangedEvent("PostsPerPage", { preferences.newPostsPerPage = it }, 31)
+ }
+
+ private fun <T : Any> testPreferencesChangedEvent(name: String, setter: (T) -> Unit, value: T) {
+ setter(value)
verify(eventBus, atLeastOnce()).post(eventsCaptor.capture())
- assertThat(eventsCaptor.allValues, hasItem(PreferenceChangedEvent("PostsPerPage", 30)))
+ assertThat(eventsCaptor.allValues, hasItem(PreferenceChangedEvent(name, value)))
}
}