Example #1
0
        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);
                }
            }));
        }
Example #2
0
        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));
        }
Example #3
0
 public void LogoutNol3()
 {
     using (var socket = _nol3Connector.SendRequestSynch(new Nol3Request(FIXMLManager.GenerateUserLogoutRequest())))
     {
         var responseMessage = _nol3Connector.ReciveResponse(socket);
         MessageParserToEventsAsync(responseMessage).Wait();
     }
     _asyncPortListenerTokenSource.Cancel();
 }
Example #4
0
        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));
        }
Example #6
0
        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);
            }
        }
Example #7
0
        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));
        }
Example #8
0
        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));
        }
Example #9
0
        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"));
        }