@@ -24,17 +24,10 @@ import kotlin.test.assertTrue
2424class OutboxSenderTest {
2525 private class Fixture {
2626
27- var hub: IHub = mock()
28- var envelopeReader: IEnvelopeReader = mock()
29- var serializer: ISerializer = mock()
30- var logger: ILogger = mock()
31- var options: SentryOptions
32-
33- init {
34- options = SentryOptions ()
35- options.isDebug = true
36- options.setLogger(logger)
37- }
27+ val hub = mock<IHub >()
28+ var envelopeReader = mock<IEnvelopeReader >()
29+ val serializer = mock<ISerializer >()
30+ val logger = mock<ILogger >()
3831
3932 fun getSut (): OutboxSender {
4033 return OutboxSender (hub, envelopeReader, serializer, logger, 15000 )
@@ -43,7 +36,7 @@ class OutboxSenderTest {
4336
4437 private val fixture = Fixture ()
4538
46- private fun getTempEnvelope (fileName : String ): String {
39+ private fun getTempEnvelope (fileName : String = "envelope-event-attachment.txt" ): String {
4740 val testFile = this ::class .java.classLoader.getResource(fileName)
4841 val testFileBytes = testFile!! .readBytes()
4942 val targetFile = File .createTempFile(" temp-envelope" , " .tmp" )
@@ -55,7 +48,7 @@ class OutboxSenderTest {
5548 fun `when envelopeReader returns null, file is deleted ` () {
5649 whenever(fixture.envelopeReader.read(any())).thenReturn(null )
5750 val sut = fixture.getSut()
58- val path = getTempEnvelope(" envelope-event-attachment.txt " )
51+ val path = getTempEnvelope()
5952 assertTrue(File (path).exists()) // sanity check
6053 sut.processEnvelopeFile(path, mock<Retryable >())
6154 assertFalse(File (path).exists())
@@ -69,7 +62,7 @@ class OutboxSenderTest {
6962 val expected = SentryEvent (SentryId (UUID .fromString(" 9ec79c33-ec99-42ab-8353-589fcb2e04dc" )), Date ())
7063 whenever(fixture.serializer.deserialize(any(), eq(SentryEvent ::class .java))).thenReturn(expected)
7164 val sut = fixture.getSut()
72- val path = getTempEnvelope(" envelope-event-attachment.txt " )
65+ val path = getTempEnvelope()
7366 assertTrue(File (path).exists()) // sanity check
7467 sut.processEnvelopeFile(path, mock<Retryable >())
7568
@@ -89,7 +82,7 @@ class OutboxSenderTest {
8982 whenever(fixture.serializer.deserializeEnvelope(any())).thenReturn(expected)
9083 whenever(fixture.serializer.deserialize(any(), eq(SentryEvent ::class .java))).thenReturn(event)
9184 val sut = fixture.getSut()
92- val path = getTempEnvelope(" envelope-event-attachment.txt " )
85+ val path = getTempEnvelope()
9386 assertTrue(File (path).exists()) // sanity check
9487 sut.processEnvelopeFile(path, mock<Retryable >())
9588
@@ -100,12 +93,28 @@ class OutboxSenderTest {
10093 verify(fixture.logger, never()).log(eq(SentryLevel .ERROR ), any<String >(), any())
10194 }
10295
96+ @Test
97+ fun `when envelope has unknown item type, create and capture an envelope` () {
98+ fixture.envelopeReader = EnvelopeReader ()
99+
100+ val sut = fixture.getSut()
101+ val path = getTempEnvelope(fileName = " envelope_attachment.txt" )
102+ assertTrue(File (path).exists()) // sanity check
103+ sut.processEnvelopeFile(path, mock<Retryable >())
104+
105+ verify(fixture.hub).captureEnvelope(any(), any())
106+ assertFalse(File (path).exists())
107+ // Additionally make sure we have no errors logged
108+ verify(fixture.logger, never()).log(eq(SentryLevel .ERROR ), any(), any<Any >())
109+ verify(fixture.logger, never()).log(eq(SentryLevel .ERROR ), any<String >(), any())
110+ }
111+
103112 @Test
104113 fun `when parser is EnvelopeReader and serializer returns a null event, file error logged, no event captured ` () {
105114 fixture.envelopeReader = EnvelopeReader ()
106115 whenever(fixture.serializer.deserialize(any(), eq(SentryEvent ::class .java))).thenReturn(null )
107116 val sut = fixture.getSut()
108- val path = getTempEnvelope(" envelope-event-attachment.txt " )
117+ val path = getTempEnvelope()
109118 assertTrue(File (path).exists()) // sanity check
110119 sut.processEnvelopeFile(path, mock<Retryable >())
111120
@@ -121,7 +130,7 @@ class OutboxSenderTest {
121130 whenever(fixture.serializer.deserializeEnvelope(any())).thenReturn(null )
122131 whenever(fixture.serializer.deserialize(any(), eq(SentryEvent ::class .java))).thenReturn(null )
123132 val sut = fixture.getSut()
124- val path = getTempEnvelope(" envelope-event-attachment.txt " )
133+ val path = getTempEnvelope()
125134 assertTrue(File (path).exists()) // sanity check
126135 sut.processEnvelopeFile(path, mock<Retryable >())
127136
0 commit comments