1 /* 2 * Copyright 2017-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. 3 */ 4 5 package kotlinx.serialization.features 6 7 import kotlinx.serialization.* 8 import kotlinx.serialization.Serializable 9 import kotlinx.serialization.json.* 10 import kotlinx.serialization.test.assertFailsWithMessage 11 import org.junit.Test 12 import java.io.* 13 14 class JsonSequencePathTest { 15 16 @Serializable 17 class NestedData(val s: String) 18 19 @Serializable 20 class Data(val data: NestedData) 21 22 @Test testFailurenull23 fun testFailure() { 24 val source = """{"data":{"s":"value"}}{"data":{"s":42}}{notevenreached}""".toStream() 25 val iterator = Json.decodeToSequence<Data>(source).iterator() 26 iterator.next() // Ignore 27 assertFailsWithMessage<SerializationException>( 28 "Expected quotation mark '\"', but had '4' instead at path: \$.data.s" 29 ) { iterator.next() } 30 } 31 Stringnull32 private fun String.toStream() = ByteArrayInputStream(encodeToByteArray()) 33 } 34