Ejemplo n.º 1
0
        public void GivenInValidWithNoThrow_Parse_DoesNotThrow()
        {
            var uut    = new MessageParser(Mock.Of <ITagToPropertyMapper>(), Mock.Of <IPropertySetter>(), new MockValidator(false), Mock.Of <MessageParserOptions>());
            var result = uut.Parse <TestTypeParent>(TestFixMessageBuilder.CreateDefaultMessage());

            Assert.Null(result);
        }
Ejemplo n.º 2
0
        public void GivenInValidWithThrow_Parse_ThrowsArgumentException()
        {
            var uut = new MessageParser(Mock.Of <ITagToPropertyMapper>(), Mock.Of <IPropertySetter>(), new MockValidator(false), new MessageParserOptions()
            {
                ThrowIfInvalidMessage = true
            });

            Assert.Throws <ArgumentException>(() => uut.Parse <TestTypeParent>(TestFixMessageBuilder.CreateDefaultMessage()));
        }
Ejemplo n.º 3
0
        public void GivenMessage_Parse_ParsesObject()
        {
            var propertyMapper = new TagToPropertyMapper(new SubPropertySetterFactory());

            propertyMapper.Map <TestTypeParent>();
            var compositeSetter = new CompositePropertySetter();

            var uut    = new MessageParser(propertyMapper, compositeSetter, new MockValidator(), Mock.Of <MessageParserOptions>());
            var result = uut.Parse <TestTypeParent>(TestFixMessageBuilder.CreateDefaultMessage());

            Assert.NotNull(result);
        }
Ejemplo n.º 4
0
        public void GivenCorrectLength_Validate_Performance()
        {
            byte[] message = TestFixMessageBuilder.CreateDefaultMessage();

            var       uut        = new LengthValidator(IntegerToFixConverter.Instance);
            var       msgContext = new FixMessageContext().Setup(message);
            var       result     = uut.IsValid(message.AsSpan(), msgContext);
            Stopwatch sw         = new Stopwatch();

            sw.Start();
            for (int i = 0; i < 100; i++)
            {
                result = uut.IsValid(message.AsSpan(), msgContext);
            }
            sw.Stop();

            _output.WriteLine($"==================={sw.ElapsedMilliseconds}======================");
        }
Ejemplo n.º 5
0
        public async Task GivenStreamedMessage_Observable_PushesParsedMessages()
        {
            using (var stream = new MemoryStream())
            {
                var mockMessageParser = new MockMessageParser();
                int messages          = 0;
                var cancellation      = new CancellationTokenSource(TimeSpan.FromSeconds(5));
                TaskCompletionSource <bool> taskCompletion = new TaskCompletionSource <bool>();
                byte[] msg = TestFixMessageBuilder.CreateDefaultMessage();
                await stream.WriteAsync(msg);

                stream.Position = 0;

                var uut = new StreamParser <TestTypeParent>(stream, mockMessageParser, SupportedFixVersion.Fix44);

                uut.Subscribe(parsedObject => messages++, ex => taskCompletion.SetResult(false), () => taskCompletion.SetResult(true));
                var listener = Task.Run(() => uut.ListenAsync(cancellation.Token));

                Assert.True(await taskCompletion.Task);
                Assert.Equal(1, messages);
                await listener;
            }
        }