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"); }
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); }