public void VersionTest()
        {
            StingrayOQ_Accessor target = new StingrayOQ_Accessor();
            string version             = target.Version();

            //Version must match AssemblyVersion in Mockups->AssemblyInfo.cs
            Assert.AreEqual("1.42.3.5", version, "Version");
        }
        public void infoTest()
        {
            StingrayOQ_Accessor target = new StingrayOQ_Accessor(); // TODO: Initialize to an appropriate value

            target.InitLogger();

            target.info("My Info Text");

            logger.Verify(log => log.AddLog(LoggerLevel.Information, It.IsRegex("My Info Text")));
        }
        public void errorTest()
        {
            StingrayOQ_Accessor target = new StingrayOQ_Accessor();

            target.InitLogger();

            target.error("My Error Text");

            logger.Verify(log => log.AddLog(LoggerLevel.Error, It.IsRegex("My Error Text")));
        }
Example #4
0
        public void InstrumentTypeToSecurityType_Futures_Test()
        {
            StingrayOQ_Accessor target    = new StingrayOQ_Accessor();
            InstrumentType      instrType = InstrumentType.Futures;
            SecurityType        secType   = new SecurityType();
            bool result = Helpers.InstrumentTypeToSecurityType(instrType, out secType);

            Assert.IsTrue(result, "returns true");
            Assert.AreEqual(SecurityType.Future, secType);
        }
Example #5
0
        public void OQTimeInForceToIBTimeInForce_GTC_Test()
        {
            StingrayOQ_Accessor target = new StingrayOQ_Accessor();

            OQ.TimeInForce oqtif = OQ.TimeInForce.GTC;
            IB.TimeInForce ibtif;
            bool           result = Helpers.OQTimeInForceToIBTimeInForce(oqtif, out ibtif);

            Assert.IsTrue(result, "returns true");
            Assert.AreEqual(IB.TimeInForce.GoodTillCancel, ibtif, "IB Time in Force");
        }
Example #6
0
        public void OQOrderTypeToIBOrderType_Limit_Test()
        {
            StingrayOQ_Accessor target = new StingrayOQ_Accessor();

            OQ.OrderType oqtype = OQ.OrderType.Limit;
            IB.OrderType ibtype;
            bool         result = Helpers.OQOrderTypeToIBOrderType(oqtype, out ibtype);

            Assert.IsTrue(result, "returns true");
            Assert.AreEqual(IB.OrderType.Limit, ibtype, "IB Order Type");
        }
Example #7
0
        public void OQFAMethodTOIBFAMethod_NetLiq_Test()
        {
            StingrayOQ_Accessor target = new StingrayOQ_Accessor();

            OQ.IBFaMethod oqFaMethod = IBFaMethod.NetLiq;
            FinancialAdvisorAllocationMethod ibFaMethod;
            bool result = Helpers.OQFAMethodTOIBFAMethod(oqFaMethod, out ibFaMethod);

            Assert.IsTrue(result);
            Assert.AreEqual(IB.FinancialAdvisorAllocationMethod.NetLiquidity, ibFaMethod);
        }
        public void StingrayOQnextValidIDLoggerTest()
        {
            StingrayOQ_Accessor target = new StingrayOQ_Accessor();

            target.InitLogger();

            target.ibclient_NextValidId(null, new NextValidIdEventArgs(123));

            logger.Verify(
                log =>
                log.AddLog(LoggerLevel.Detail,
                           It.IsRegex("START.* ibclient_NextValidId.*: ID= 123 waiting for private_lock")));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("END.* ibclient_NextValidId()")));
        }
        public void MyTestInitialize()
        {
            // Setup Logger
            logger             = new Mock <Logger>();
            Factory.mockLogger = logger.Object;
            // create file directory for log files
            string bp = AppDomain.CurrentDomain.BaseDirectory.ToString();

            Directory.CreateDirectory(bp);
            string bp2 = Path.Combine(bp, "bin");

            Directory.CreateDirectory(bp2);

            // Setup IBClient
            mockIBClient         = new Mock <IBClient>();
            Factory.mockIBClient = mockIBClient.Object;

            // make ibclient.IConnected work correctly
            bool isConnected = false;

            mockIBClient.Setup(ib => ib.Connected).Returns(() => isConnected);
            mockIBClient.Setup(ib => ib.Connect("MyTestHost", 6543, 9876)).Callback(() => isConnected = true);
            // other calls
            mockIBClient.Setup(ib => ib.ServerVersion).Returns(42);
            mockIBClient.Setup(ib => ib.TwsConnectionTime).Returns("03:04:05 2011-11-08");
            // Invoke ibclient Events (Callbacks)
            mockIBClient.Setup(ib => ib.RequestIds(1))
            .Raises(ib => ib.NextValidId += null,
                    new NextValidIdEventArgs(42));

            mockIBClient.Setup(ib => ib.RequestManagedAccts())
            .Raises(ib => ib.ManagedAccounts += null,
                    new ManagedAccountsEventArgs("U111,U222"));

            // mockIBClient.Setup(ib => ib.Disconnect()).Callback(() => isConnected = false); // does not work...
            mockIBClient.Setup(ib => ib.Disconnect()).Raises(ib => ib.ConnectionClosed += null,
                                                             new ConnectionClosedEventArgs());

            // Setup UserProvider
            userProvider = new Mock <UserProviderWrapper>();
            Factory.userProviderWrapper = userProvider.Object;

            // Connect StingrayOQ
            target          = new StingrayOQ_Accessor();
            target.Hostname = "MyTestHost";
            target.ClientId = 9876; // used for all orders
            target.Port     = 6543;

            target.Connect();
        }
        public void StingrayOQConstructorTest()
        {
            // StingrayOQ target = new StingrayOQ();
            StingrayOQ_Accessor target = new StingrayOQ_Accessor();

            // base Properties
            Assert.AreEqual("finantic's Execution Provider for Interactive Brokers", target.description, "Description");
            Assert.AreEqual(129, target.id, "Id");
            Assert.AreEqual("StingrayOQ", target.name, "Name");
            Assert.AreEqual("http://www.finantic.de", target.url, "Url");
            // Properties
            Assert.AreEqual("1.42.3.5", target.StingrayOQVersion, "StingrayOQVersion");
            Assert.AreEqual(4262, target.ClientId, "ClientId");
            Assert.AreEqual("127.0.0.1", target.Hostname, "HostName");
            Assert.AreEqual(LogDestination.File, target.LogDestination, "LogDestination");
            Assert.AreEqual(LoggerLevel.Error, target.LoggerLevel, "LoggerLevel");
            Assert.AreEqual(false, target.OutsideRTH, "OutsideRTH");
            Assert.AreEqual(7496, target.Port, "Port"); // TWS default port
            Assert.AreEqual(false, target.TWSConnected, "TWSConnected");
            Assert.AreEqual(true, target.AutoTransmit, "AutoTransmit");
            // FA
            Assert.AreEqual(FinancialAdvisorAllocationMethod.None, target.FAMethod, "FAMethod");
            Assert.AreEqual(null, target.FAGroup, "FAGroup");
            Assert.AreEqual(null, target.FAPercentage, "FAPercentage");
            Assert.AreEqual(null, target.FAProfile, "FAProfile");

            //Version must match AssemblyVersion in Mockups->AssemblyInfo.cs
            Assert.AreEqual("1.42.3.5", target.Version(), "Version");

            // Accounts
            Assert.IsNotNull(target.Accounts, "Accounts not null");

            // Broker Info
            BrokerInfo brokerInfo = target.GetBrokerInfo();

            Assert.IsNotNull(brokerInfo, "brokerInfo not null");
        }
Example #11
0
        public void StingrayOQnextValidIDLoggerTest()
        {
            StingrayOQ_Accessor target = new StingrayOQ_Accessor();
            target.InitLogger();

            target.ibclient_NextValidId(null, new NextValidIdEventArgs(123));

            logger.Verify(
                log =>
                log.AddLog(LoggerLevel.Detail,
                           It.IsRegex("START.* ibclient_NextValidId.*: ID= 123 waiting for private_lock")));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("END.* ibclient_NextValidId()")));
        }
Example #12
0
        public void StingrayOQConstructorTest()
        {
            // StingrayOQ target = new StingrayOQ();
            StingrayOQ_Accessor target = new StingrayOQ_Accessor();

            // base Properties
            Assert.AreEqual("finantic's Execution Provider for Interactive Brokers", target.description, "Description");
            Assert.AreEqual(129, target.id, "Id");
            Assert.AreEqual("StingrayOQ", target.name, "Name");
            Assert.AreEqual("http://www.finantic.de", target.url, "Url");
            // Properties
            Assert.AreEqual("1.42.3.5", target.StingrayOQVersion, "StingrayOQVersion");
            Assert.AreEqual(4262, target.ClientId, "ClientId");
            Assert.AreEqual("127.0.0.1", target.Hostname, "HostName");
            Assert.AreEqual(LogDestination.File, target.LogDestination, "LogDestination");
            Assert.AreEqual(LoggerLevel.Error, target.LoggerLevel, "LoggerLevel");
            Assert.AreEqual(false, target.OutsideRTH, "OutsideRTH");
            Assert.AreEqual(7496, target.Port, "Port"); // TWS default port
            Assert.AreEqual(false, target.TWSConnected, "TWSConnected");
            Assert.AreEqual(true, target.AutoTransmit, "AutoTransmit");
            // FA
            Assert.AreEqual(FinancialAdvisorAllocationMethod.None, target.FAMethod, "FAMethod");
            Assert.AreEqual(null, target.FAGroup, "FAGroup");
            Assert.AreEqual(null, target.FAPercentage, "FAPercentage");
            Assert.AreEqual(null, target.FAProfile, "FAProfile");

            //Version must match AssemblyVersion in Mockups->AssemblyInfo.cs
            Assert.AreEqual("1.42.3.5", target.Version(), "Version");

            // Accounts
            Assert.IsNotNull(target.Accounts, "Accounts not null");

            // Broker Info
            BrokerInfo brokerInfo = target.GetBrokerInfo();

            Assert.IsNotNull(brokerInfo, "brokerInfo not null");
        }
Example #13
0
        public void infoTest()
        {
            StingrayOQ_Accessor target = new StingrayOQ_Accessor(); // TODO: Initialize to an appropriate value
            target.InitLogger();

            target.info("My Info Text");

            logger.Verify(log => log.AddLog(LoggerLevel.Information, It.IsRegex("My Info Text")));
        }
Example #14
0
        public void errorTest()
        {
            StingrayOQ_Accessor target = new StingrayOQ_Accessor();
            target.InitLogger();

            target.error("My Error Text");

            logger.Verify(log => log.AddLog(LoggerLevel.Error, It.IsRegex("My Error Text")));
        }
        public void MyTestInitialize()
        {
            // Setup Logger
            logger = new Mock<Logger>();
            Factory.mockLogger = logger.Object;
            // create file directory for log files
            string bp = AppDomain.CurrentDomain.BaseDirectory.ToString();
            Directory.CreateDirectory(bp);
            string bp2 = Path.Combine(bp, "bin");
            Directory.CreateDirectory(bp2);

            // Setup IBClient
            mockIBClient = new Mock<IBClient>();
            Factory.mockIBClient = mockIBClient.Object;

            // make ibclient.IConnected work correctly
            bool isConnected = false;
            mockIBClient.Setup(ib => ib.Connected).Returns(() => isConnected);
            mockIBClient.Setup(ib => ib.Connect("MyTestHost", 6543, 9876)).Callback(() => isConnected = true);
            // other calls
            mockIBClient.Setup(ib => ib.ServerVersion).Returns(42);
            mockIBClient.Setup(ib => ib.TwsConnectionTime).Returns("03:04:05 2011-11-08");
            // Invoke ibclient Events (Callbacks)
            mockIBClient.Setup(ib => ib.RequestIds(1))
                        .Raises(ib => ib.NextValidId += null,
                                   new NextValidIdEventArgs(42));

            mockIBClient.Setup(ib => ib.RequestManagedAccts())
                        .Raises(ib => ib.ManagedAccounts += null,
                                   new ManagedAccountsEventArgs("U111,U222"));

               // mockIBClient.Setup(ib => ib.Disconnect()).Callback(() => isConnected = false); // does not work...
            mockIBClient.Setup(ib => ib.Disconnect()).Raises(ib => ib.ConnectionClosed += null,
                                   new ConnectionClosedEventArgs());

            // Setup UserProvider
            userProvider = new Mock<UserProviderWrapper>();
            Factory.userProviderWrapper = userProvider.Object;

            // Connect StingrayOQ
            target = new StingrayOQ_Accessor();
            target.Hostname = "MyTestHost";
            target.ClientId = 9876; // used for all orders
            target.Port = 6543;

            target.Connect();
        }
Example #16
0
 public void OQFAMethodTOIBFAMethod_None_Test()
 {
     StingrayOQ_Accessor target = new StingrayOQ_Accessor();
     OQ.IBFaMethod oqFaMethod = IBFaMethod.Undefined;
     FinancialAdvisorAllocationMethod ibFaMethod;
     bool result = Helpers.OQFAMethodTOIBFAMethod(oqFaMethod, out ibFaMethod);
     Assert.IsTrue(result);
     Assert.AreEqual(IB.FinancialAdvisorAllocationMethod.None, ibFaMethod);
 }
Example #17
0
 public void OQOrderTypeToIBOrderType_Market_Test()
 {
     StingrayOQ_Accessor target = new StingrayOQ_Accessor();
     OQ.OrderType oqtype = OQ.OrderType.Market;
     IB.OrderType ibtype;
     bool result = Helpers.OQOrderTypeToIBOrderType(oqtype, out ibtype);
     Assert.IsTrue(result, "returns true");
     Assert.AreEqual(IB.OrderType.Market, ibtype, "IB Order Type");
 }
Example #18
0
 public void OQTimeInForceToIBTimeInForce_GTC_Test()
 {
     StingrayOQ_Accessor target = new StingrayOQ_Accessor();
     OQ.TimeInForce oqtif = OQ.TimeInForce.GTC;
     IB.TimeInForce ibtif;
     bool result = Helpers.OQTimeInForceToIBTimeInForce(oqtif, out ibtif);
     Assert.IsTrue(result, "returns true");
     Assert.AreEqual(IB.TimeInForce.GoodTillCancel, ibtif, "IB Time in Force");
 }
Example #19
0
 public void VersionTest()
 {
     StingrayOQ_Accessor target = new StingrayOQ_Accessor();
     string version = target.Version();
     //Version must match AssemblyVersion in Mockups->AssemblyInfo.cs
     Assert.AreEqual("1.42.3.5", version, "Version");
 }
Example #20
0
 public void InstrumentTypeToSecurityType_Futures_Test()
 {
     StingrayOQ_Accessor target = new StingrayOQ_Accessor();
     InstrumentType instrType = InstrumentType.Futures;
     SecurityType secType = new SecurityType();
     bool result = Helpers.InstrumentTypeToSecurityType(instrType, out secType);
     Assert.IsTrue(result, "returns true");
     Assert.AreEqual(SecurityType.Future, secType);
 }
Example #21
0
        public void ConnectTest()
        {
            Mock<IBClient> mockIBClient = new Mock<IBClient>();
            Factory.mockIBClient = mockIBClient.Object;

            Mock<UserProviderWrapper> userProvider = new Mock<UserProviderWrapper>();
            Factory.userProviderWrapper = userProvider.Object;

            // make ibclient.IConnected work correctly
            bool isConnected = false;
            mockIBClient.Setup(ib => ib.Connected).Returns(() => isConnected);
            mockIBClient.Setup(ib => ib.Connect("MyTestHost", 6543, 9876)).Callback(() => isConnected = true);
            // other calls
            mockIBClient.Setup(ib => ib.ServerVersion).Returns(42);
            mockIBClient.Setup(ib => ib.TwsConnectionTime).Returns("03:04:05 2011-11-08");
            // Invoke ibclient Events (Callbacks)
            mockIBClient.Setup(ib => ib.RequestManagedAccts())
                .Raises(ib => ib.ManagedAccounts += null,
                        new ManagedAccountsEventArgs("U111,U222"));

            StingrayOQ_Accessor target = new StingrayOQ_Accessor();
            target.Hostname = "MyTestHost";
            target.ClientId = 9876;
            target.Port = 6543;

            target.Connect(); // Act

            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("START.* Initialize.*")));
            logger.Verify(log => log.AddLog(LoggerLevel.Information, It.IsRegex("=== StingrayOQ V .* started ===")));
            // CheckTWS
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("START.* CheckTWS.*")));
            // openConnection
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("START.* openConnection.*")));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, "new IBClient"));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, "Connect"));

            mockIBClient.Verify(ib => ib.Connect("MyTestHost", 6543, 9876));

            mockIBClient.Verify(ib => ib.RequestManagedAccts());
            logger.Verify(log => log.AddLog(LoggerLevel.Information, It.IsRegex("2 Accounts found")));

            // RequestAccount Updates
            mockIBClient.Verify(ib => ib.RequestAccountUpdates(true, "U111"));
            mockIBClient.Verify(ib => ib.RequestAccountUpdates(true, "U222"));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("Request account updates for U111")));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("Request account updates for U222")));

            // Request Open Orders
            mockIBClient.Verify(ib => ib.RequestOpenOrders());
            // Request IDs
            mockIBClient.Verify(ib => ib.RequestIds(1));

            logger.Verify(
                log =>
                log.AddLog(LoggerLevel.Information,
                           It.IsRegex("Connected, Server Version = 42, Connection Time = 03:04:05 2011-11-08")));

            // EmitConncted
            userProvider.Verify(up => up.EmitConnected());

            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("END.* openConnection.*")));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("END.* CheckTWS.*")));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("END.* Initialize.*")));

            // never saw an error?
            logger.Verify(log => log.AddLog(LoggerLevel.Error, It.IsAny<string>()), Times.Never(),
                          "unexpected error log");

            // State
            Assert.IsTrue(target.IsConnected, "IsConnected");
            Assert.IsTrue(target.TWSConnected, "TWSConnected");
        }
        public void ConnectTest()
        {
            Mock <IBClient> mockIBClient = new Mock <IBClient>();

            Factory.mockIBClient = mockIBClient.Object;

            Mock <UserProviderWrapper> userProvider = new Mock <UserProviderWrapper>();

            Factory.userProviderWrapper = userProvider.Object;

            // make ibclient.IConnected work correctly
            bool isConnected = false;

            mockIBClient.Setup(ib => ib.Connected).Returns(() => isConnected);
            mockIBClient.Setup(ib => ib.Connect("MyTestHost", 6543, 9876)).Callback(() => isConnected = true);
            // other calls
            mockIBClient.Setup(ib => ib.ServerVersion).Returns(42);
            mockIBClient.Setup(ib => ib.TwsConnectionTime).Returns("03:04:05 2011-11-08");
            // Invoke ibclient Events (Callbacks)
            mockIBClient.Setup(ib => ib.RequestManagedAccts())
            .Raises(ib => ib.ManagedAccounts += null,
                    new ManagedAccountsEventArgs("U111,U222"));

            StingrayOQ_Accessor target = new StingrayOQ_Accessor();

            target.Hostname = "MyTestHost";
            target.ClientId = 9876;
            target.Port     = 6543;

            target.Connect(); // Act

            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("START.* Initialize.*")));
            logger.Verify(log => log.AddLog(LoggerLevel.Information, It.IsRegex("=== StingrayOQ V .* started ===")));
            // CheckTWS
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("START.* CheckTWS.*")));
            // openConnection
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("START.* openConnection.*")));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, "new IBClient"));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, "Connect"));

            mockIBClient.Verify(ib => ib.Connect("MyTestHost", 6543, 9876));

            mockIBClient.Verify(ib => ib.RequestManagedAccts());
            logger.Verify(log => log.AddLog(LoggerLevel.Information, It.IsRegex("2 Accounts found")));

            // RequestAccount Updates
            mockIBClient.Verify(ib => ib.RequestAccountUpdates(true, "U111"));
            mockIBClient.Verify(ib => ib.RequestAccountUpdates(true, "U222"));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("Request account updates for U111")));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("Request account updates for U222")));

            // Request Open Orders
            mockIBClient.Verify(ib => ib.RequestOpenOrders());
            // Request IDs
            mockIBClient.Verify(ib => ib.RequestIds(1));

            logger.Verify(
                log =>
                log.AddLog(LoggerLevel.Information,
                           It.IsRegex("Connected, Server Version = 42, Connection Time = 03:04:05 2011-11-08")));

            // EmitConncted
            userProvider.Verify(up => up.EmitConnected());

            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("END.* openConnection.*")));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("END.* CheckTWS.*")));
            logger.Verify(log => log.AddLog(LoggerLevel.Detail, It.IsRegex("END.* Initialize.*")));

            // never saw an error?
            logger.Verify(log => log.AddLog(LoggerLevel.Error, It.IsAny <string>()), Times.Never(),
                          "unexpected error log");

            // State
            Assert.IsTrue(target.IsConnected, "IsConnected");
            Assert.IsTrue(target.TWSConnected, "TWSConnected");
        }