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