package net.pterodactylus.sone.core
+import com.codahale.metrics.*
import com.google.common.base.Optional.*
import freenet.crypt.*
import freenet.keys.InsertableClientSSK.*
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
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.parsing.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.parsing.duration")
+ assertThat(histogram.count, equalTo(1L))
+ }
+
}