mirror of
https://github.com/corda/corda.git
synced 2025-06-11 03:41:41 +00:00
Carpenter bug fixes
Squashed commit messages: * Nested schema creation now works with dependencies recursvly created in the carpenter * Remove spurious prints from tests * Remove warnings * Don't add cladd member dep by name Since that's the name of the field, not the type we depend on. If we do we'll never actually be able to craft the type as the dependency chain will be horribly broken Various bug fixes * Fix merge issue where types weren't being seen as Prims * IntelliJ auto code cleanup / reformat * Whitespace changes * Add comment blocking as I like seeing it in files
This commit is contained in:
parent
d76c1e75a4
commit
9ab6a72ea8
@ -12,12 +12,6 @@ import java.lang.reflect.GenericArrayType
|
|||||||
import java.lang.reflect.ParameterizedType
|
import java.lang.reflect.ParameterizedType
|
||||||
import java.lang.reflect.Type
|
import java.lang.reflect.Type
|
||||||
import java.lang.reflect.WildcardType
|
import java.lang.reflect.WildcardType
|
||||||
import java.lang.Float
|
|
||||||
import java.lang.Long
|
|
||||||
import java.lang.Short
|
|
||||||
import java.lang.Double
|
|
||||||
import java.lang.Character
|
|
||||||
//import java.lang.Boolean
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
import java.util.concurrent.CopyOnWriteArrayList
|
import java.util.concurrent.CopyOnWriteArrayList
|
||||||
|
@ -7,10 +7,12 @@ import net.corda.core.identity.AbstractParty
|
|||||||
import net.corda.core.serialization.CordaSerializable
|
import net.corda.core.serialization.CordaSerializable
|
||||||
import net.corda.core.serialization.EmptyWhitelist
|
import net.corda.core.serialization.EmptyWhitelist
|
||||||
import net.corda.core.serialization.KryoAMQPSerializer
|
import net.corda.core.serialization.KryoAMQPSerializer
|
||||||
import net.corda.core.CordaRuntimeException
|
import net.corda.core.serialization.amqp.SerializerFactory.Companion.isPrimitive
|
||||||
|
import net.corda.core.utilities.CordaRuntimeException
|
||||||
import net.corda.nodeapi.RPCException
|
import net.corda.nodeapi.RPCException
|
||||||
import net.corda.testing.MEGA_CORP
|
import net.corda.testing.MEGA_CORP
|
||||||
import net.corda.testing.MEGA_CORP_PUBKEY
|
import net.corda.testing.MEGA_CORP_PUBKEY
|
||||||
|
import org.apache.qpid.proton.amqp.*
|
||||||
import org.apache.qpid.proton.codec.DecoderImpl
|
import org.apache.qpid.proton.codec.DecoderImpl
|
||||||
import org.apache.qpid.proton.codec.EncoderImpl
|
import org.apache.qpid.proton.codec.EncoderImpl
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
@ -27,6 +29,14 @@ import kotlin.test.assertTrue
|
|||||||
class SerializationOutputTests {
|
class SerializationOutputTests {
|
||||||
data class Foo(val bar: String, val pub: Int)
|
data class Foo(val bar: String, val pub: Int)
|
||||||
|
|
||||||
|
data class testFloat(val f: Float)
|
||||||
|
|
||||||
|
data class testDouble(val d: Double)
|
||||||
|
|
||||||
|
data class testShort(val s: Short)
|
||||||
|
|
||||||
|
data class testBoolean(val b : Boolean)
|
||||||
|
|
||||||
interface FooInterface {
|
interface FooInterface {
|
||||||
val pub: Int
|
val pub: Int
|
||||||
}
|
}
|
||||||
@ -159,12 +169,61 @@ class SerializationOutputTests {
|
|||||||
return desObj2
|
return desObj2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun isPrimitive() {
|
||||||
|
assertTrue(isPrimitive(Character::class.java))
|
||||||
|
assertTrue(isPrimitive(Boolean::class.java))
|
||||||
|
assertTrue(isPrimitive(Byte::class.java))
|
||||||
|
assertTrue(isPrimitive(UnsignedByte::class.java))
|
||||||
|
assertTrue(isPrimitive(Short::class.java))
|
||||||
|
assertTrue(isPrimitive(UnsignedShort::class.java))
|
||||||
|
assertTrue(isPrimitive(Int::class.java))
|
||||||
|
assertTrue(isPrimitive(UnsignedInteger::class.java))
|
||||||
|
assertTrue(isPrimitive(Long::class.java))
|
||||||
|
assertTrue(isPrimitive(UnsignedLong::class.java))
|
||||||
|
assertTrue(isPrimitive(Float::class.java))
|
||||||
|
assertTrue(isPrimitive(Double::class.java))
|
||||||
|
assertTrue(isPrimitive(Decimal32::class.java))
|
||||||
|
assertTrue(isPrimitive(Decimal64::class.java))
|
||||||
|
assertTrue(isPrimitive(Decimal128::class.java))
|
||||||
|
assertTrue(isPrimitive(Char::class.java))
|
||||||
|
assertTrue(isPrimitive(Date::class.java))
|
||||||
|
assertTrue(isPrimitive(UUID::class.java))
|
||||||
|
assertTrue(isPrimitive(ByteArray::class.java))
|
||||||
|
assertTrue(isPrimitive(String::class.java))
|
||||||
|
assertTrue(isPrimitive(Symbol::class.java))
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `test foo`() {
|
fun `test foo`() {
|
||||||
val obj = Foo("Hello World!", 123)
|
val obj = Foo("Hello World!", 123)
|
||||||
serdes(obj)
|
serdes(obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `test float`() {
|
||||||
|
val obj = testFloat(10.0F)
|
||||||
|
serdes(obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `test double`() {
|
||||||
|
val obj = testDouble(10.0)
|
||||||
|
serdes(obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `test short`() {
|
||||||
|
val obj = testShort(1)
|
||||||
|
serdes(obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `test bool`() {
|
||||||
|
val obj = testBoolean(true)
|
||||||
|
serdes(obj)
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `test foo implements`() {
|
fun `test foo implements`() {
|
||||||
val obj = FooImplements("Hello World!", 123)
|
val obj = FooImplements("Hello World!", 123)
|
||||||
|
@ -5,6 +5,8 @@ import net.corda.core.serialization.carpenter.Schema
|
|||||||
|
|
||||||
import net.corda.core.serialization.amqp.CompositeType
|
import net.corda.core.serialization.amqp.CompositeType
|
||||||
|
|
||||||
|
/**********************************************************************************************************************/
|
||||||
|
|
||||||
abstract class MetaCarpenterBase (val schemas : CarpenterSchemas) {
|
abstract class MetaCarpenterBase (val schemas : CarpenterSchemas) {
|
||||||
|
|
||||||
private val cc = ClassCarpenter()
|
private val cc = ClassCarpenter()
|
||||||
@ -35,6 +37,8 @@ abstract class MetaCarpenterBase (val schemas : CarpenterSchemas) {
|
|||||||
abstract fun build()
|
abstract fun build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**********************************************************************************************************************/
|
||||||
|
|
||||||
class MetaCarpenter (schemas : CarpenterSchemas) : MetaCarpenterBase (schemas) {
|
class MetaCarpenter (schemas : CarpenterSchemas) : MetaCarpenterBase (schemas) {
|
||||||
override fun build() {
|
override fun build() {
|
||||||
while (schemas.carpenterSchemas.isNotEmpty()) {
|
while (schemas.carpenterSchemas.isNotEmpty()) {
|
||||||
@ -44,6 +48,8 @@ class MetaCarpenter (schemas : CarpenterSchemas) : MetaCarpenterBase (schemas) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**********************************************************************************************************************/
|
||||||
|
|
||||||
class TestMetaCarpenter (schemas : CarpenterSchemas) : MetaCarpenterBase (schemas) {
|
class TestMetaCarpenter (schemas : CarpenterSchemas) : MetaCarpenterBase (schemas) {
|
||||||
override fun build() {
|
override fun build() {
|
||||||
println ("TestMetaCarpenter::build")
|
println ("TestMetaCarpenter::build")
|
||||||
@ -51,3 +57,5 @@ class TestMetaCarpenter (schemas : CarpenterSchemas) : MetaCarpenterBase (schema
|
|||||||
step (schemas.carpenterSchemas.removeAt(0))
|
step (schemas.carpenterSchemas.removeAt(0))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**********************************************************************************************************************/
|
||||||
|
@ -22,7 +22,8 @@ fun Schema.curruptName (names: List<String>) : Schema {
|
|||||||
val newName = if (type.name in names) curruptName(type.name) else type.name
|
val newName = if (type.name in names) curruptName(type.name) else type.name
|
||||||
|
|
||||||
val newProvides = type.provides.map {
|
val newProvides = type.provides.map {
|
||||||
it -> if (it in names) curruptName (it) else it
|
it ->
|
||||||
|
if (it in names) curruptName(it) else it
|
||||||
}
|
}
|
||||||
|
|
||||||
val newFields = mutableListOf<Field>()
|
val newFields = mutableListOf<Field>()
|
||||||
|
@ -44,9 +44,6 @@ class CompositeMembers : AmqpCarpenterBase() {
|
|||||||
assert(obj.second.schema.types[0] is CompositeType)
|
assert(obj.second.schema.types[0] is CompositeType)
|
||||||
assert(obj.second.schema.types[1] is CompositeType)
|
assert(obj.second.schema.types[1] is CompositeType)
|
||||||
|
|
||||||
println (obj.second.schema.types[0] as CompositeType)
|
|
||||||
println (obj.second.schema.types[1] as CompositeType)
|
|
||||||
|
|
||||||
var amqpSchemaA: CompositeType? = null
|
var amqpSchemaA: CompositeType? = null
|
||||||
var amqpSchemaB: CompositeType? = null
|
var amqpSchemaB: CompositeType? = null
|
||||||
|
|
||||||
@ -68,7 +65,6 @@ class CompositeMembers : AmqpCarpenterBase() {
|
|||||||
assertEquals("a", amqpSchemaA!!.fields[0].name)
|
assertEquals("a", amqpSchemaA!!.fields[0].name)
|
||||||
assertEquals("int", amqpSchemaA.fields[0].type)
|
assertEquals("int", amqpSchemaA.fields[0].type)
|
||||||
|
|
||||||
|
|
||||||
assertEquals(2, amqpSchemaB?.fields?.size)
|
assertEquals(2, amqpSchemaB?.fields?.size)
|
||||||
assertEquals("a", amqpSchemaB!!.fields[0].name)
|
assertEquals("a", amqpSchemaB!!.fields[0].name)
|
||||||
assertEquals(classTestName("A"), amqpSchemaB.fields[0].type)
|
assertEquals(classTestName("A"), amqpSchemaB.fields[0].type)
|
||||||
@ -96,6 +92,7 @@ class CompositeMembers : AmqpCarpenterBase() {
|
|||||||
|
|
||||||
@CordaSerializable
|
@CordaSerializable
|
||||||
data class B(val a: A, var b: Int)
|
data class B(val a: A, var b: Int)
|
||||||
|
|
||||||
val b = B(A(testA), testB)
|
val b = B(A(testA), testB)
|
||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(b))
|
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(b))
|
||||||
@ -116,13 +113,14 @@ class CompositeMembers : AmqpCarpenterBase() {
|
|||||||
|
|
||||||
@CordaSerializable
|
@CordaSerializable
|
||||||
data class B(val a: A, var b: Int)
|
data class B(val a: A, var b: Int)
|
||||||
|
|
||||||
val b = B(A(testA), testB)
|
val b = B(A(testA), testB)
|
||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(b))
|
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(b))
|
||||||
|
|
||||||
assert(obj.first is B)
|
assert(obj.first is B)
|
||||||
|
|
||||||
val amqpSchema = obj.second.schema.curruptName(listOf (classTestName ("B")))
|
val amqpSchema = obj.envelope.schema.curruptName(listOf(classTestName("B")))
|
||||||
|
|
||||||
val carpenterSchema = amqpSchema.carpenterSchema()
|
val carpenterSchema = amqpSchema.carpenterSchema()
|
||||||
|
|
||||||
@ -145,13 +143,14 @@ class CompositeMembers : AmqpCarpenterBase() {
|
|||||||
|
|
||||||
@CordaSerializable
|
@CordaSerializable
|
||||||
data class B(val a: A, var b: Int)
|
data class B(val a: A, var b: Int)
|
||||||
|
|
||||||
val b = B(A(testA), testB)
|
val b = B(A(testA), testB)
|
||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(b))
|
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(b))
|
||||||
|
|
||||||
assert(obj.first is B)
|
assert(obj.first is B)
|
||||||
|
|
||||||
val amqpSchema = obj.second.schema.curruptName(listOf (classTestName ("A"), classTestName ("B")))
|
val amqpSchema = obj.envelope.schema.curruptName(listOf(classTestName("A"), classTestName("B")))
|
||||||
|
|
||||||
val carpenterSchema = amqpSchema.carpenterSchema()
|
val carpenterSchema = amqpSchema.carpenterSchema()
|
||||||
|
|
||||||
@ -212,7 +211,7 @@ class CompositeMembers : AmqpCarpenterBase() {
|
|||||||
|
|
||||||
assert(obj.first is C)
|
assert(obj.first is C)
|
||||||
|
|
||||||
val amqpSchema = obj.second.schema.curruptName(listOf (classTestName ("A"), classTestName ("B")))
|
val amqpSchema = obj.envelope.schema.curruptName(listOf(classTestName("A"), classTestName("B")))
|
||||||
|
|
||||||
amqpSchema.carpenterSchema()
|
amqpSchema.carpenterSchema()
|
||||||
}
|
}
|
||||||
@ -238,7 +237,7 @@ class CompositeMembers : AmqpCarpenterBase() {
|
|||||||
|
|
||||||
assert(obj.first is C)
|
assert(obj.first is C)
|
||||||
|
|
||||||
val amqpSchema = obj.second.schema.curruptName(listOf (classTestName ("A"), classTestName ("B")))
|
val amqpSchema = obj.envelope.schema.curruptName(listOf(classTestName("A"), classTestName("B")))
|
||||||
|
|
||||||
amqpSchema.carpenterSchema()
|
amqpSchema.carpenterSchema()
|
||||||
}
|
}
|
||||||
@ -264,7 +263,7 @@ class CompositeMembers : AmqpCarpenterBase() {
|
|||||||
|
|
||||||
assert(obj.first is C)
|
assert(obj.first is C)
|
||||||
|
|
||||||
val amqpSchema = obj.second.schema.curruptName(listOf (classTestName ("A"), classTestName ("B")))
|
val amqpSchema = obj.envelope.schema.curruptName(listOf(classTestName("A"), classTestName("B")))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -282,6 +281,7 @@ class CompositeMembers : AmqpCarpenterBase() {
|
|||||||
|
|
||||||
@CordaSerializable
|
@CordaSerializable
|
||||||
data class B(val a: A, var b: Int)
|
data class B(val a: A, var b: Int)
|
||||||
|
|
||||||
val b = B(A(testA), testB)
|
val b = B(A(testA), testB)
|
||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(b))
|
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(b))
|
||||||
@ -299,6 +299,7 @@ class CompositeMembers : AmqpCarpenterBase() {
|
|||||||
|
|
||||||
@CordaSerializable
|
@CordaSerializable
|
||||||
data class B(val a: A, var b: Int)
|
data class B(val a: A, var b: Int)
|
||||||
|
|
||||||
val b = B(A(testA), testB)
|
val b = B(A(testA), testB)
|
||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(b))
|
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(b))
|
||||||
@ -316,6 +317,7 @@ class CompositeMembers : AmqpCarpenterBase() {
|
|||||||
|
|
||||||
@CordaSerializable
|
@CordaSerializable
|
||||||
data class B(val a: A, var b: Int)
|
data class B(val a: A, var b: Int)
|
||||||
|
|
||||||
val b = B(A(testA), testB)
|
val b = B(A(testA), testB)
|
||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(b))
|
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(b))
|
||||||
|
@ -149,7 +149,7 @@ class InheritanceSchemaToClassCarpenterTests : AmqpCarpenterBase() {
|
|||||||
class A(override val i: Int, override val ii: Int) : I, II
|
class A(override val i: Int, override val ii: Int) : I, II
|
||||||
|
|
||||||
val a = A(testI, testII)
|
val a = A(testI, testII)
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(a))
|
val obj = DeserializationInput(factory).deserializeAndReturnEnvelope(serialise(a))
|
||||||
|
|
||||||
assert(obj.first is A)
|
assert(obj.first is A)
|
||||||
|
|
||||||
@ -202,7 +202,7 @@ class InheritanceSchemaToClassCarpenterTests : AmqpCarpenterBase() {
|
|||||||
class A(override val i: Int, override val iii: Int) : III
|
class A(override val i: Int, override val iii: Int) : III
|
||||||
|
|
||||||
val a = A(testI, testIII)
|
val a = A(testI, testIII)
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(a))
|
val obj = DeserializationInput(factory).deserializeAndReturnEnvelope(serialise(a))
|
||||||
|
|
||||||
assert(obj.first is A)
|
assert(obj.first is A)
|
||||||
|
|
||||||
@ -309,6 +309,7 @@ class InheritanceSchemaToClassCarpenterTests : AmqpCarpenterBase() {
|
|||||||
fun memberInterface2() {
|
fun memberInterface2() {
|
||||||
val testI = 25
|
val testI = 25
|
||||||
val testIIII = 50
|
val testIIII = 50
|
||||||
|
|
||||||
class A(override val i: Int) : I
|
class A(override val i: Int) : I
|
||||||
class B(override val i: I, override val iiii: Int) : IIII
|
class B(override val i: I, override val iiii: Int) : IIII
|
||||||
|
|
||||||
|
@ -1,15 +1,14 @@
|
|||||||
package net.corda.carpenter
|
package net.corda.carpenter
|
||||||
|
|
||||||
|
import net.corda.carpenter.test.AmqpCarpenterBase
|
||||||
import net.corda.core.serialization.CordaSerializable
|
import net.corda.core.serialization.CordaSerializable
|
||||||
import net.corda.core.serialization.amqp.*
|
import net.corda.core.serialization.amqp.*
|
||||||
|
import net.corda.core.serialization.carpenter.CarpenterSchemas
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
|
|
||||||
class SingleMemberCompositeSchemaToClassCarpenterTests {
|
class SingleMemberCompositeSchemaToClassCarpenterTests : AmqpCarpenterBase() {
|
||||||
private var factory = SerializerFactory()
|
|
||||||
|
|
||||||
fun serialise (clazz : Any) = SerializationOutput(factory).serialize(clazz)
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun singleInteger() {
|
fun singleInteger() {
|
||||||
@ -19,22 +18,26 @@ class SingleMemberCompositeSchemaToClassCarpenterTests {
|
|||||||
data class A(val a: Int)
|
data class A(val a: Int)
|
||||||
|
|
||||||
val a = A(test)
|
val a = A(test)
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise (a))
|
val obj = DeserializationInput(factory).deserializeAndReturnEnvelope(serialise(a))
|
||||||
|
|
||||||
assert (obj.first is A)
|
assert(obj.obj is A)
|
||||||
val amqpObj = obj.first as A
|
val amqpObj = obj.obj as A
|
||||||
|
|
||||||
assertEquals(test, amqpObj.a)
|
assertEquals(test, amqpObj.a)
|
||||||
assertEquals (1, obj.second.schema.types.size)
|
assertEquals(1, obj.envelope.schema.types.size)
|
||||||
assert (obj.second.schema.types[0] is CompositeType)
|
assert(obj.envelope.schema.types[0] is CompositeType)
|
||||||
|
|
||||||
val amqpSchema = obj.second.schema.types[0] as CompositeType
|
val amqpSchema = obj.envelope.schema.types[0] as CompositeType
|
||||||
|
|
||||||
assertEquals(1, amqpSchema.fields.size)
|
assertEquals(1, amqpSchema.fields.size)
|
||||||
assertEquals("a", amqpSchema.fields[0].name)
|
assertEquals("a", amqpSchema.fields[0].name)
|
||||||
assertEquals("int", amqpSchema.fields[0].type)
|
assertEquals("int", amqpSchema.fields[0].type)
|
||||||
|
|
||||||
val pinochio = ClassCarpenter().build(amqpSchema.carpenterSchema())
|
val carpenterSchema = CarpenterSchemas.newInstance()
|
||||||
|
amqpSchema.carpenterSchema(carpenterSchemas = carpenterSchema, force = true)
|
||||||
|
|
||||||
|
val aSchema = carpenterSchema.carpenterSchemas.find { it.name == classTestName("A") }!!
|
||||||
|
val pinochio = ClassCarpenter().build(aSchema)
|
||||||
|
|
||||||
val p = pinochio.constructors[0].newInstance(test)
|
val p = pinochio.constructors[0].newInstance(test)
|
||||||
|
|
||||||
@ -47,24 +50,25 @@ class SingleMemberCompositeSchemaToClassCarpenterTests {
|
|||||||
|
|
||||||
@CordaSerializable
|
@CordaSerializable
|
||||||
data class A(val a: String)
|
data class A(val a: String)
|
||||||
var a = A (test)
|
|
||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise (a))
|
val a = A(test)
|
||||||
|
|
||||||
assert (obj.first is A)
|
val obj = DeserializationInput(factory).deserializeAndReturnEnvelope(serialise(a))
|
||||||
val amqpObj = obj.first as A
|
|
||||||
|
assert(obj.obj is A)
|
||||||
|
val amqpObj = obj.obj as A
|
||||||
|
|
||||||
assertEquals(test, amqpObj.a)
|
assertEquals(test, amqpObj.a)
|
||||||
assertEquals (1, obj.second.schema.types.size)
|
assertEquals(1, obj.envelope.schema.types.size)
|
||||||
assert (obj.second.schema.types[0] is CompositeType)
|
assert(obj.envelope.schema.types[0] is CompositeType)
|
||||||
|
|
||||||
var amqpSchema = obj.second.schema.types[0] as CompositeType
|
val amqpSchema = obj.envelope.schema.types[0] as CompositeType
|
||||||
|
|
||||||
assertEquals (1, amqpSchema.fields.size)
|
val carpenterSchema = CarpenterSchemas.newInstance()
|
||||||
assertEquals ("a", amqpSchema.fields[0].name)
|
amqpSchema.carpenterSchema(carpenterSchemas = carpenterSchema, force = true)
|
||||||
assertEquals ("string", amqpSchema.fields[0].type)
|
|
||||||
|
|
||||||
var pinochio = ClassCarpenter().build(amqpSchema.carpenterSchema())
|
val aSchema = carpenterSchema.carpenterSchemas.find { it.name == classTestName("A") }!!
|
||||||
|
val pinochio = ClassCarpenter().build(aSchema)
|
||||||
|
|
||||||
val p = pinochio.constructors[0].newInstance(test)
|
val p = pinochio.constructors[0].newInstance(test)
|
||||||
|
|
||||||
@ -78,25 +82,31 @@ class SingleMemberCompositeSchemaToClassCarpenterTests {
|
|||||||
|
|
||||||
@CordaSerializable
|
@CordaSerializable
|
||||||
data class A(val a : Char)
|
data class A(val a : Char)
|
||||||
var a = A (test)
|
val a = A(test)
|
||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(a))
|
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise(a))
|
||||||
|
|
||||||
assert (obj.first is A)
|
assert (obj.obj is A)
|
||||||
val amqpObj = obj.first as A
|
val amqpObj = obj.obj as A
|
||||||
|
|
||||||
assertEquals (test, amqpObj.a)
|
assertEquals (test, amqpObj.a)
|
||||||
assertEquals (1, obj.second.schema.types.size)
|
assertEquals (1, obj.envelope.schema.types.size)
|
||||||
assertEquals (1, obj.second.schema.types.size)
|
assertEquals (1, obj.envelope.schema.types.size)
|
||||||
assert (obj.second.schema.types[0] is CompositeType)
|
assert (obj.envelope.schema.types[0] is CompositeType)
|
||||||
|
|
||||||
var amqpSchema = obj.second.schema.types[0] as CompositeType
|
val amqpSchema = obj.envelope.schema.types[0] as CompositeType
|
||||||
|
|
||||||
assertEquals (1, amqpSchema.fields.size)
|
assertEquals (1, amqpSchema.fields.size)
|
||||||
assertEquals ("a", amqpSchema.fields[0].name)
|
assertEquals ("a", amqpSchema.fields[0].name)
|
||||||
assertEquals ("char", amqpSchema.fields[0].type)
|
assertEquals ("char", amqpSchema.fields[0].type)
|
||||||
|
|
||||||
var pinochio = ClassCarpenter().build(ClassCarpenter.Schema(amqpSchema.name, amqpSchema.carpenterSchema()))
|
val carpenterSchema = CarpenterSchema.newInstance()
|
||||||
|
amqpSchema.carpenterSchema(carpenterSchema = carpenterSchema, force = true)
|
||||||
|
|
||||||
|
assert (classTestName ("A") in carpenterSchema.carpenterSchemas)
|
||||||
|
|
||||||
|
val aSchema = carpenterSchema.carpenterSchemas[classTestName ("A")]!!
|
||||||
|
val pinochio = ClassCarpenter().build(aSchema)
|
||||||
|
|
||||||
val p = pinochio.constructors[0].newInstance (test)
|
val p = pinochio.constructors[0].newInstance (test)
|
||||||
|
|
||||||
@ -113,23 +123,26 @@ class SingleMemberCompositeSchemaToClassCarpenterTests {
|
|||||||
|
|
||||||
var a = A(test)
|
var a = A(test)
|
||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise (a))
|
val obj = DeserializationInput(factory).deserializeAndReturnEnvelope(serialise(a))
|
||||||
|
|
||||||
assert (obj.first is A)
|
assert(obj.obj is A)
|
||||||
val amqpObj = obj.first as A
|
val amqpObj = obj.obj as A
|
||||||
|
|
||||||
assertEquals(test, amqpObj.a)
|
assertEquals(test, amqpObj.a)
|
||||||
assertEquals (1, obj.second.schema.types.size)
|
assertEquals(1, obj.envelope.schema.types.size)
|
||||||
assert (obj.second.schema.types[0] is CompositeType)
|
assert(obj.envelope.schema.types[0] is CompositeType)
|
||||||
|
|
||||||
var amqpSchema = obj.second.schema.types[0] as CompositeType
|
var amqpSchema = obj.envelope.schema.types[0] as CompositeType
|
||||||
|
|
||||||
assertEquals(1, amqpSchema.fields.size)
|
assertEquals(1, amqpSchema.fields.size)
|
||||||
assertEquals("a", amqpSchema.fields[0].name)
|
assertEquals("a", amqpSchema.fields[0].name)
|
||||||
assertEquals("long", amqpSchema.fields[0].type)
|
assertEquals("long", amqpSchema.fields[0].type)
|
||||||
|
|
||||||
var pinochio = ClassCarpenter().build(amqpSchema.carpenterSchema())
|
val carpenterSchema = CarpenterSchemas.newInstance()
|
||||||
|
amqpSchema.carpenterSchema(carpenterSchemas = carpenterSchema, force = true)
|
||||||
|
|
||||||
|
val aSchema = carpenterSchema.carpenterSchemas.find { it.name == classTestName("A") }!!
|
||||||
|
val pinochio = ClassCarpenter().build(aSchema)
|
||||||
val p = pinochio.constructors[0].newInstance(test)
|
val p = pinochio.constructors[0].newInstance(test)
|
||||||
|
|
||||||
assertEquals(pinochio.getMethod("getA").invoke(p), amqpObj.a)
|
assertEquals(pinochio.getMethod("getA").invoke(p), amqpObj.a)
|
||||||
@ -144,23 +157,26 @@ class SingleMemberCompositeSchemaToClassCarpenterTests {
|
|||||||
|
|
||||||
var a = A(test)
|
var a = A(test)
|
||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise (a))
|
val obj = DeserializationInput(factory).deserializeAndReturnEnvelope(serialise(a))
|
||||||
|
|
||||||
assert (obj.first is A)
|
assert(obj.obj is A)
|
||||||
val amqpObj = obj.first as A
|
val amqpObj = obj.obj as A
|
||||||
|
|
||||||
assertEquals(test, amqpObj.a)
|
assertEquals(test, amqpObj.a)
|
||||||
assertEquals (1, obj.second.schema.types.size)
|
assertEquals(1, obj.envelope.schema.types.size)
|
||||||
assert (obj.second.schema.types[0] is CompositeType)
|
assert(obj.envelope.schema.types[0] is CompositeType)
|
||||||
|
|
||||||
var amqpSchema = obj.second.schema.types[0] as CompositeType
|
var amqpSchema = obj.envelope.schema.types[0] as CompositeType
|
||||||
|
|
||||||
assertEquals(1, amqpSchema.fields.size)
|
assertEquals(1, amqpSchema.fields.size)
|
||||||
assertEquals("a", amqpSchema.fields[0].name)
|
assertEquals("a", amqpSchema.fields[0].name)
|
||||||
assertEquals("short", amqpSchema.fields[0].type)
|
assertEquals("short", amqpSchema.fields[0].type)
|
||||||
|
|
||||||
var pinochio = ClassCarpenter().build(amqpSchema.carpenterSchema())
|
val carpenterSchema = CarpenterSchemas.newInstance()
|
||||||
|
amqpSchema.carpenterSchema(carpenterSchemas = carpenterSchema, force = true)
|
||||||
|
|
||||||
|
val aSchema = carpenterSchema.carpenterSchemas.find { it.name == classTestName("A") }!!
|
||||||
|
val pinochio = ClassCarpenter().build(aSchema)
|
||||||
val p = pinochio.constructors[0].newInstance(test)
|
val p = pinochio.constructors[0].newInstance(test)
|
||||||
|
|
||||||
assertEquals(pinochio.getMethod("getA").invoke(p), amqpObj.a)
|
assertEquals(pinochio.getMethod("getA").invoke(p), amqpObj.a)
|
||||||
@ -178,14 +194,14 @@ class SingleMemberCompositeSchemaToClassCarpenterTests {
|
|||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise (a))
|
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise (a))
|
||||||
|
|
||||||
assert (obj.first is A)
|
assert (obj.obj is A)
|
||||||
val amqpObj = obj.first as A
|
val amqpObj = obj.obj as A
|
||||||
|
|
||||||
assertEquals (test, amqpObj.a)
|
assertEquals (test, amqpObj.a)
|
||||||
assertEquals (1, obj.second.schema.types.size)
|
assertEquals (1, obj.envelope.schema.types.size)
|
||||||
assert (obj.second.schema.types[0] is CompositeType)
|
assert (obj.envelope.schema.types[0] is CompositeType)
|
||||||
|
|
||||||
var amqpSchema = obj.second.schema.types[0] as CompositeType
|
var amqpSchema = obj.envelope.schema.types[0] as CompositeType
|
||||||
|
|
||||||
assertEquals (1, amqpSchema.fields.size)
|
assertEquals (1, amqpSchema.fields.size)
|
||||||
assertEquals ("a", amqpSchema.fields[0].name)
|
assertEquals ("a", amqpSchema.fields[0].name)
|
||||||
@ -206,25 +222,28 @@ class SingleMemberCompositeSchemaToClassCarpenterTests {
|
|||||||
@CordaSerializable
|
@CordaSerializable
|
||||||
data class A(val a: Double)
|
data class A(val a: Double)
|
||||||
|
|
||||||
var a = A (test)
|
val a = A(test)
|
||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise (a))
|
val obj = DeserializationInput(factory).deserializeAndReturnEnvelope(serialise(a))
|
||||||
|
|
||||||
assert (obj.first is A)
|
assert(obj.obj is A)
|
||||||
val amqpObj = obj.first as A
|
val amqpObj = obj.obj as A
|
||||||
|
|
||||||
assertEquals(test, amqpObj.a)
|
assertEquals(test, amqpObj.a)
|
||||||
assertEquals (1, obj.second.schema.types.size)
|
assertEquals(1, obj.envelope.schema.types.size)
|
||||||
assert (obj.second.schema.types[0] is CompositeType)
|
assert(obj.envelope.schema.types[0] is CompositeType)
|
||||||
|
|
||||||
var amqpSchema = obj.second.schema.types[0] as CompositeType
|
val amqpSchema = obj.envelope.schema.types[0] as CompositeType
|
||||||
|
|
||||||
assertEquals(1, amqpSchema.fields.size)
|
assertEquals(1, amqpSchema.fields.size)
|
||||||
assertEquals("a", amqpSchema.fields[0].name)
|
assertEquals("a", amqpSchema.fields[0].name)
|
||||||
assertEquals("double", amqpSchema.fields[0].type)
|
assertEquals("double", amqpSchema.fields[0].type)
|
||||||
|
|
||||||
var pinochio = ClassCarpenter().build(amqpSchema.carpenterSchema())
|
val carpenterSchema = CarpenterSchemas.newInstance()
|
||||||
|
amqpSchema.carpenterSchema(carpenterSchemas = carpenterSchema, force = true)
|
||||||
|
|
||||||
|
val aSchema = carpenterSchema.carpenterSchemas.find { it.name == classTestName("A") }!!
|
||||||
|
val pinochio = ClassCarpenter().build(aSchema)
|
||||||
val p = pinochio.constructors[0].newInstance(test)
|
val p = pinochio.constructors[0].newInstance(test)
|
||||||
|
|
||||||
assertEquals(pinochio.getMethod("getA").invoke(p), amqpObj.a)
|
assertEquals(pinochio.getMethod("getA").invoke(p), amqpObj.a)
|
||||||
@ -232,32 +251,35 @@ class SingleMemberCompositeSchemaToClassCarpenterTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun singleFloat() {
|
fun singleFloat() {
|
||||||
val test = 10.0F
|
val test: Float = 10.0F
|
||||||
|
|
||||||
@CordaSerializable
|
@CordaSerializable
|
||||||
data class A(val a: Float)
|
data class A(val a: Float)
|
||||||
|
|
||||||
var a = A (test)
|
val a = A(test)
|
||||||
|
|
||||||
val obj = DeserializationInput(factory).deserializeRtnEnvelope(serialise (a))
|
val obj = DeserializationInput(factory).deserializeAndReturnEnvelope(serialise(a))
|
||||||
|
|
||||||
assert (obj.first is A)
|
assert(obj.obj is A)
|
||||||
val amqpObj = obj.first as A
|
val amqpObj = obj.obj as A
|
||||||
|
|
||||||
assertEquals(test, amqpObj.a)
|
assertEquals(test, amqpObj.a)
|
||||||
assertEquals (1, obj.second.schema.types.size)
|
assertEquals(1, obj.envelope.schema.types.size)
|
||||||
assert (obj.second.schema.types[0] is CompositeType)
|
assert(obj.envelope.schema.types[0] is CompositeType)
|
||||||
|
|
||||||
var amqpSchema = obj.second.schema.types[0] as CompositeType
|
val amqpSchema = obj.envelope.schema.types[0] as CompositeType
|
||||||
|
|
||||||
assertEquals(1, amqpSchema.fields.size)
|
assertEquals(1, amqpSchema.fields.size)
|
||||||
assertEquals("a", amqpSchema.fields[0].name)
|
assertEquals("a", amqpSchema.fields[0].name)
|
||||||
assertEquals("float", amqpSchema.fields[0].type)
|
assertEquals("float", amqpSchema.fields[0].type)
|
||||||
|
|
||||||
var pinochio = ClassCarpenter().build(amqpSchema.carpenterSchema())
|
val carpenterSchema = CarpenterSchemas.newInstance()
|
||||||
|
amqpSchema.carpenterSchema(carpenterSchemas = carpenterSchema, force = true)
|
||||||
|
|
||||||
|
val aSchema = carpenterSchema.carpenterSchemas.find { it.name == classTestName("A") }!!
|
||||||
|
val pinochio = ClassCarpenter().build(aSchema)
|
||||||
val p = pinochio.constructors[0].newInstance(test)
|
val p = pinochio.constructors[0].newInstance(test)
|
||||||
|
|
||||||
// assertEquals (pinochio.getMethod("getA").invoke (p), amqpObj.a)
|
assertEquals(pinochio.getMethod("getA").invoke(p), amqpObj.a)
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user