package net.pterodactylus.sone.core
+import com.codahale.metrics.*
import com.google.common.base.Optional.*
import freenet.crypt.*
import freenet.keys.InsertableClientSSK.*
import net.pterodactylus.sone.data.*
+import net.pterodactylus.sone.data.impl.AlbumImpl
import net.pterodactylus.sone.database.memory.*
import net.pterodactylus.sone.freenet.wot.*
import net.pterodactylus.sone.test.*
class SoneParserTest {
private val database = MemoryDatabase(Configuration(MapConfigurationBackend()))
- private val soneParser = SoneParser(database)
+ private val metricRegistry = MetricRegistry()
+ private val soneParser = SoneParser(database, metricRegistry)
private val sone = mock<Sone>()
@BeforeTest
whenever(sone.identity).thenReturn(identity)
whenever(sone.requestUri).thenAnswer { clientSSK.uri.setKeyType("USK").setDocName("Sone") }
whenever(sone.time).thenReturn(currentTimeMillis() - DAYS.toMillis(1))
+ whenever(sone.rootAlbum).thenReturn(AlbumImpl(sone))
}
@Test
assertThat(sone.profile.avatar, equalTo("image-id"))
}
+ @Test
+ fun `unsuccessful parsing does not add a histogram entry`() {
+ val inputStream = javaClass.getResourceAsStream("sone-parser-with-invalid-image-height.xml")
+ assertThat(soneParser.parseSone(sone, inputStream), nullValue())
+ val histogram = metricRegistry.histogram("sone.parse.duration")
+ assertThat(histogram.count, equalTo(0L))
+ }
+
+ @Test
+ fun `successful parsing adds histogram entry`() {
+ val inputStream = javaClass.getResourceAsStream("sone-parser-without-images.xml")
+ assertThat(soneParser.parseSone(sone, inputStream), notNullValue())
+ val histogram = metricRegistry.histogram("sone.parse.duration")
+ assertThat(histogram.count, equalTo(1L))
+ }
+
}