private Task MessageParserToEventsAsync(string message) { Task <bool> t1 = new TaskFactory <bool>().StartNew(() => { var userResponseObject = FIXMLManager.ParseUserResponseMessege(message); if (userResponseObject != null) { UserResponseEvent?.Invoke(userResponseObject); return(true); } return(false); }); Task <bool> t2 = new TaskFactory <bool>().StartNew(() => { var rejectResponseObject = FIXMLManager.ParseBusinessMessageRejectMessage(message); if (rejectResponseObject != null) { BusinessMessageRejectEvent?.Invoke(rejectResponseObject); return(true); } return(false); }); return(Task.WhenAll <bool>(new Task <bool>[] { t1, t2 }).ContinueWith(resultList => { if (resultList.Result.All(x => x == false)) { UnknownMessageTypeEvent?.Invoke(message); } })); }
public void GenerateRequest_LoginMessage() { //configuration setup string currentID; using (var IDGEN = IdGenerator.GetIDGenerator()) { currentID = Convert.ToString(Convert.ToInt32(IDGEN.CurrentID) + 1); } Nol3ConfigurationManager.SaveConfiguration(new Tools.Model.Nol3Configuration { ID = Convert.ToInt32(currentID) - 1, Login = "******", Password = "******" }); string result = FIXMLManager.GenerateUserLoginRequest(); string expected = String.Format(@"<FIXML v=""5.0"" r=""20080317"" s=""20080314""><UserReq UserReqID=""{0}"" UserReqTyp=""1"" Username=""BOS"" Password=""BOS"" /></FIXML>", currentID); var sb = new StringBuilder(); sb.AppendLine(String.Format("RESULT : {0}", result)); sb.AppendLine(String.Format("EXPECTED: {0}", expected)); TestContext.WriteLine(sb.ToString()); Assert.That(result, Is.EqualTo(expected)); }
public void LogoutNol3() { using (var socket = _nol3Connector.SendRequestSynch(new Nol3Request(FIXMLManager.GenerateUserLogoutRequest()))) { var responseMessage = _nol3Connector.ReciveResponse(socket); MessageParserToEventsAsync(responseMessage).Wait(); } _asyncPortListenerTokenSource.Cancel(); }
public void GenerateRequest_Generic_EmptyData() { string result = FIXMLManager.GenerateRequestMessage <EmptyTestClass>(new EmptyTestClass()); string expected = @"<FIXML v=""5.0"" r=""20080317"" s=""20080314""><UserReq /></FIXML>"; var sb = new StringBuilder(); sb.AppendLine(String.Format("RESULT : {0}", result)); sb.AppendLine(String.Format("EXPECTED: {0}", expected)); TestContext.WriteLine(sb.ToString()); Assert.That(result, Is.EqualTo(expected)); }
public void UserStatusCanBecheckedAfterLogin() { string currentID; //prepare config using (var IDGen = IdGenerator.GetIDGenerator()) { currentID = IDGen.CurrentID; Nol3ConfigurationManager.SaveConfiguration(new Tools.Model.Nol3Configuration { ID = Convert.ToInt32(IDGen.ID), Login = "******", Password = "******" }); } string response; using (var client = Nol3.SendRequestSynch( new Nol3Request( FIXMLManager.GenerateUserLoginRequest() ))) { response = Nol3.ReciveResponse(client); } using (var client = Nol3.SendRequestSynch( new Nol3Request( FIXMLManager.GenerateUserStatusRequest() ))) { response = Nol3.ReciveResponse(client); } //cleanup - logout using (var client = Nol3.SendRequestSynch(new Nol3Request( FIXMLManager.GenerateUserLogoutRequest() ))) { } var userResponseObject = FIXMLManager.ParseUserResponseMessege(response); Assert.That(userResponseObject, Is.TypeOf <UserResponse>()); Assert.That(userResponseObject.Username, Is.EqualTo("BOS")); Assert.That(userResponseObject.UserStatus, Is.EqualTo(UserStatus.LoggedIn)); Assert.That(userResponseObject.MarketDepth, Is.EqualTo(1)); }
public void LoginNol3() { string responseMessage; using (var socket = _nol3Connector.SendRequestSynch(new Nol3Request(FIXMLManager.GenerateUserLoginRequest()))) { responseMessage = _nol3Connector.ReciveResponse(socket); MessageParserToEventsAsync(responseMessage).Wait(); } if (FIXMLManager.ParseUserResponseMessege(responseMessage) .UserStatus == UserStatus.LoggedIn) { //TODO : probably memeory leek from Socket AsyncPortListener(_nol3Connector.GetAsynchClinet(), _asyncPortListenerToken); } }
public void GenerateRequest_BizMsgRej() { string result = FIXMLManager.GenerateRequestMessage <BusinessMessageReject>(new BusinessMessageReject() { BusinessRejectReason = Convert.ToString(BusinessRejectReason.ApplicatonCanNotBeAccessed), RefMsgType = RefMsgType.LoggingUnlogging, Text = "TEST Message" }, FIXMLManager.GenerateXMLAttributeOverride("BizMsgRej", typeof(ROOTFIXML <BusinessMessageReject>))); string expected = @"<FIXML v=""5.0"" r=""20080317"" s=""20080314""><BizMsgRej RefMsgTyp=""BE"" BizRejRsn=""4"" Txt=""TEST Message"" /></FIXML>"; var sb = new StringBuilder(); sb.AppendLine(String.Format("RESULT : {0}", result)); sb.AppendLine(String.Format("EXPECTED: {0}", expected)); TestContext.WriteLine(sb.ToString()); Assert.That(result, Is.EqualTo(expected)); }
public void GenerateRequest_UserRequest() { var IDGen = IdGenerator.GetIDGenerator(); string ID = IDGen.ID; string result = FIXMLManager.GenerateUserRequestMessage(new UserRequest() { Password = "******", Username = "******", UserRequestID = ID, UserRequestType = UserRequestType.Login }); string expected = String.Format(@"<FIXML v=""5.0"" r=""20080317"" s=""20080314""><UserReq UserReqID=""{0}"" UserReqTyp=""1"" Username=""BOS"" Password=""BOS"" /></FIXML>", ID); var sb = new StringBuilder(); sb.AppendLine(String.Format("RESULT : {0}", result)); sb.AppendLine(String.Format("EXPECTED: {0}", expected)); IDGen.Close(); TestContext.WriteLine(sb.ToString()); Assert.That(result, Is.EqualTo(expected)); }
public void GenerateRequest_UserResponse() { string result = FIXMLManager.GenerateRequestMessage <UserResponse>(new UserResponse() { Username = "******", UserRequestID = "101", MarketDepth = 1, UserStatus = UserStatus.Other, UserStatusText = "TEST" }, FIXMLManager.GenerateXMLAttributeOverride("UserRsp", typeof(ROOTFIXML <UserResponse>))); string expected = @"<FIXML v=""5.0"" r=""20080317"" s=""20080314""><UserRsp UserReqID=""101"" Username=""BOS"" UserStat=""6"" UserStatText=""TEST"" MktDepth=""1"" /></FIXML>"; var sb = new StringBuilder(); sb.AppendLine(String.Format("RESULT : {0}", result)); sb.AppendLine(String.Format("EXPECTED: {0}", expected)); TestContext.WriteLine(sb.ToString()); Assert.That(result, Is.EqualTo(expected)); }
public void Nol3BusinessMessageRejectIParsedProperlyfromResponse() { string currentID; //prepare config using (var IDGen = IdGenerator.GetIDGenerator()) { currentID = IDGen.CurrentID; Nol3ConfigurationManager.SaveConfiguration(new Tools.Model.Nol3Configuration { ID = Convert.ToInt32(IDGen.ID), Login = "******", Password = "******" }); } string response; using (var client = Nol3.SendRequestSynch( new Nol3Request( FIXMLManager.GenerateRequestMessage <UserRequest>( new UserRequest { UserRequestType = 666 } )))) { response = Nol3.ReciveResponse(client); } var userResponseObject = FIXMLManager.ParseBusinessMessageRejectMessage(response); Assert.That(userResponseObject, Is.TypeOf <BusinessMessageReject>()); Assert.That(userResponseObject.BusinessRejectReason, Is.EqualTo(BusinessRejectReason.XMLParsingError)); Assert.That(userResponseObject.Text, Is.EqualTo("UserReqID have to be integer")); }