コード例 #1
0
 public void GetVariable_ReturnLastUpdatedVariable()
 {
     using (var conn = new ConnectImpl())
     {
         conn.InitializeTestAPI(0, 1, 0, null);
         conn.NextTick(100, 0, 0);
         conn.SetVariable(TestVariableName0, 10);
         Assert.That(conn.GetVariable(TestVariableName0), Is.EqualTo(10));
         conn.NextTick(101, 0, 0);
         Assert.That(conn.GetVariable(TestVariableName0), Is.EqualTo(10));
         conn.SetVariable(TestVariableName0, 11);
         Assert.That(conn.GetVariable(TestVariableName0), Is.EqualTo(11));
     }
 }
コード例 #2
0
        public void GetVariable_CanSummValuesOfVariable()
        {
            const int instancesCount = 2;

            using (var conn0 = new ConnectImpl())
            using (var conn1 = new ConnectImpl())
            {
                using (RunAsync(() => conn0.InitializeTestAPI(0, instancesCount, 0, null)))
                using (RunAsync(() => conn1.InitializeTestAPI(1, instancesCount, 0, null)))
                {
                }

                conn0.DeclareVariable(TestVariableName0, VariableOperations.Sum);

                conn0.NextTick(100, 0, 0);
                conn1.NextTick(100, 0, 0);
                conn0.SetVariable(TestVariableName0, 10);
                conn0.NextTick(101, 0, 0);
                conn1.NextTick(101, 0, 0);
                conn1.SetVariable(TestVariableName0, 12);
                conn0.NextTick(102, 0, 0);
                conn1.NextTick(102, 0, 0);

                Assert.That(conn0.GetVariable(TestVariableName0), Is.EqualTo(22));
                Assert.That(conn1.GetVariable(TestVariableName0), Is.EqualTo(22));
            }
        }
コード例 #3
0
        public void GetVariable_ShouldNotWaitWhenAllInstancesIsHere()
        {
            const int instancesCount = 3;

            using (var conn0 = new ConnectImpl())
                using (var conn1 = new ConnectImpl())
                    using (var conn2 = new ConnectImpl())
                    {
                        using (RunAsync(() => conn0.InitializeTestAPI(0, instancesCount, 0, null)))
                            using (RunAsync(() => conn1.InitializeTestAPI(1, instancesCount, 0, null)))
                                using (RunAsync(() => conn2.InitializeTestAPI(2, instancesCount, 0, null)))
                                {
                                }

                        conn0.NextTick(100, 0, 0);
                        conn1.NextTick(100, 0, 0);
                        conn2.NextTick(100, 0, 0);

                        conn0.SetVariable(TestVariableName0, 10);

                        conn0.NextTick(101, 0, 0);
                        conn1.NextTick(101, 0, 0);

                        using (RunAsync(() => conn1.GetVariable(TestVariableName0)))
                        {
                            WaitForStatusWaiting(conn1);
                            conn2.NextTick(101, 0, 0);
                        }
                    }
        }
コード例 #4
0
        public void GetVariable_CanSummValuesOfVariable()
        {
            const int instancesCount = 2;

            using (var conn0 = new ConnectImpl())
                using (var conn1 = new ConnectImpl())
                {
                    using (RunAsync(() => conn0.InitializeTestAPI(0, instancesCount, 0, null)))
                        using (RunAsync(() => conn1.InitializeTestAPI(1, instancesCount, 0, null)))
                        {
                        }

                    conn0.DeclareVariable(TestVariableName0, VariableOperations.Sum);

                    conn0.NextTick(100, 0, 0);
                    conn1.NextTick(100, 0, 0);
                    conn0.SetVariable(TestVariableName0, 10);
                    conn0.NextTick(101, 0, 0);
                    conn1.NextTick(101, 0, 0);
                    conn1.SetVariable(TestVariableName0, 12);
                    conn0.NextTick(102, 0, 0);
                    conn1.NextTick(102, 0, 0);

                    Assert.That(conn0.GetVariable(TestVariableName0), Is.EqualTo(22));
                    Assert.That(conn1.GetVariable(TestVariableName0), Is.EqualTo(22));
                }
        }
コード例 #5
0
        public void GetVariable_ShouldWaitLastChanges()
        {
            const int instancesCount = 2;

            using (var conn0 = new ConnectImpl())
                using (var conn1 = new ConnectImpl())
                {
                    using (RunAsync(() => conn0.InitializeTestAPI(0, instancesCount, 0, null)))
                        using (RunAsync(() => conn1.InitializeTestAPI(1, instancesCount, 0, null)))
                        {
                        }

                    //conn0.GetLastTick() 100
                    //conn1.GetLastTick() 0
                    //conn0 should wait conn1
                    conn0.NextTick(100, 0, 0);
                    using (RunAsync(() => conn0.GetVariable(TestVariableName0)))
                    {
                        WaitForStatusWaiting(conn0);
                        conn1.NextTick(101, 0, 0);
                    }

                    //conn0.GetLastTick() 102
                    //conn1.GetLastTick() 101
                    //conn0 should wait conn1
                    conn0.NextTick(102, 0, 0);
                    using (RunAsync(() => conn0.GetVariable(TestVariableName0)))
                    {
                        WaitForStatusWaiting(conn0);
                        conn1.NextTick(102, 0, 0);
                        conn0.SetVariable(TestVariableName0, 10);
                    }

                    //conn0.GetLastTick() 103
                    //conn1.GetLastTick() 102
                    //conn0 should wait conn1
                    conn0.NextTick(103, 0, 0);
                    using (RunAsync(() => conn0.SetVariable(TestVariableName0, 11)))
                    {
                        WaitForStatusWaiting(conn0);
                        conn1.NextTick(103, 0, 0);
                    }
                }
        }
コード例 #6
0
 public void GetVariable_ReturnLastUpdatedVariable()
 {
     using (var conn = new ConnectImpl())
     {
         conn.InitializeTestAPI(0, 1, 0, null);
         conn.NextTick(100, 0, 0);
         conn.SetVariable(TestVariableName0, 10);
         Assert.That(conn.GetVariable(TestVariableName0), Is.EqualTo(10));
         conn.NextTick(101, 0, 0);
         Assert.That(conn.GetVariable(TestVariableName0), Is.EqualTo(10));
         conn.SetVariable(TestVariableName0, 11);
         Assert.That(conn.GetVariable(TestVariableName0), Is.EqualTo(11));
     }
 }
コード例 #7
0
        public void GetVariable_ShouldWaitLastChanges()
        {
            const int instancesCount = 2;

            using (var conn0 = new ConnectImpl())
            using (var conn1 = new ConnectImpl())
            {
                using (RunAsync(() => conn0.InitializeTestAPI(0, instancesCount, 0, null)))
                using (RunAsync(() => conn1.InitializeTestAPI(1, instancesCount, 0, null)))
                {
                }

                //conn0.GetLastTick() 100
                //conn1.GetLastTick() 0
                //conn0 should wait conn1
                conn0.NextTick(100, 0, 0);
                using (RunAsync(() => conn0.GetVariable(TestVariableName0)))
                {
                    WaitForStatusWaiting(conn0);
                    conn1.NextTick(101, 0, 0);
                }

                //conn0.GetLastTick() 102
                //conn1.GetLastTick() 101
                //conn0 should wait conn1
                conn0.NextTick(102, 0, 0);
                using (RunAsync(() => conn0.GetVariable(TestVariableName0)))
                {
                    WaitForStatusWaiting(conn0);
                    conn1.NextTick(102, 0, 0);
                    conn0.SetVariable(TestVariableName0, 10);
                }

                //conn0.GetLastTick() 103
                //conn1.GetLastTick() 102
                //conn0 should wait conn1
                conn0.NextTick(103, 0, 0);
                using (RunAsync(() => conn0.SetVariable(TestVariableName0, 11)))
                {
                    WaitForStatusWaiting(conn0);
                    conn1.NextTick(103, 0, 0);
                }
            }
        }
コード例 #8
0
        public void GetVariable_ShouldNotWaitWhenAllInstancesIsHere()
        {
            const int instancesCount = 3;

            using (var conn0 = new ConnectImpl())
            using (var conn1 = new ConnectImpl())
            using (var conn2 = new ConnectImpl())
            {
                using (RunAsync(() => conn0.InitializeTestAPI(0, instancesCount, 0, null)))
                using (RunAsync(() => conn1.InitializeTestAPI(1, instancesCount, 0, null)))
                using (RunAsync(() => conn2.InitializeTestAPI(2, instancesCount, 0, null)))
                {
                }

                conn0.NextTick(100, 0, 0);
                conn1.NextTick(100, 0, 0);
                conn2.NextTick(100, 0, 0);

                conn0.SetVariable(TestVariableName0, 10);

                conn0.NextTick(101, 0, 0);
                conn1.NextTick(101, 0, 0);

                using (RunAsync(() => conn1.GetVariable(TestVariableName0)))
                {
                    WaitForStatusWaiting(conn1);
                    conn2.NextTick(101, 0, 0);
                }
            }
        }