コード例 #1
0
        public void when_descriptor_given_it_should_serialize_and_parse_message()
        {
            var ingressRegistry = new CaseOfficeIngressApiMessageTypesRegistry();

            ingressRegistry.Initialize();
            var ingressDescriptor = ingressRegistry.GetDescriptorByMessageTypeName <CreateJusticeCase>(typeof(CreateJusticeCase).FullName !);

            var egressRegistry = new CaseOfficeEgressApiMessageTypesRegistry();

            egressRegistry.Initialize();
            var egressDescriptor = egressRegistry.GetDescriptorByMessageType <CreateJusticeCase>();

            var message = new CreateJusticeCase {
                SubjectId = Guid.NewGuid(), Reason = "some reason", ResponsibleId = Guid.NewGuid()
            };

            using var bufferOwner = MemoryPool <byte> .Shared.Rent();

            var buffer = bufferOwner.Memory;

            egressDescriptor.Serialize(message, buffer);
            var parsedMessage = ingressDescriptor.Parse(buffer);

            parsedMessage.Should().NotBeSameAs(message, "parsed message should not be the same object as the original");
            parsedMessage.Should().BeEquivalentTo(message, "parsed message should have same property values as the original");
        }
コード例 #2
0
        private static (CreateJusticeCase, byte[]) CreateSerializedMessage(string expectedReason)
        {
            var registry = new CaseOfficeEgressApiMessageTypesRegistry();

            registry.Initialize();
            var descriptor = registry.GetDescriptorByMessageType <CreateJusticeCase>();
            var serialized = new byte[1024];
            var message    = new CreateJusticeCase {
                Reason = expectedReason, SubjectId = Guid.NewGuid(), ResponsibleId = Guid.NewGuid()
            };

            descriptor.Serialize(message, serialized);
            return(message, serialized);
        }