Example #1
0
        public void AddGroupTest()
        {
            var op = OperationProcessor.Instance;

            var groupExpectation           = new AutoResetEvent(false);
            var firstOperationExpectation  = new AutoResetEvent(false);
            var secondOperationExpectation = new AutoResetEvent(false);

            OperationGroup group = new OperationGroup();

            group.AddOperation(typeof(FirstOperation), null, (Parameters result) => {
                if (result.ContainsKey("1"))
                {
                    firstOperationExpectation.Set();
                }
            }, null);
            group.AddOperation(typeof(SecondOperation), null, (Parameters result) => {
                if (result.ContainsKey("2"))
                {
                    secondOperationExpectation.Set();
                }
            }, null);

            op.PerformGroup(group, null, (Parameters results) => {
                if (results.ContainsKey("1") && results.ContainsKey("2"))
                {
                    groupExpectation.Set();
                }
            });

            Assert.True(firstOperationExpectation.WaitOne(TimeSpan.FromSeconds(10)));
            Assert.True(secondOperationExpectation.WaitOne(TimeSpan.FromSeconds(10)));
            Assert.True(groupExpectation.WaitOne(TimeSpan.FromSeconds(10)));
        }
Example #2
0
        public void GroupCredentials3CheckTest()
        {
            var op = OperationProcessor.Instance;

            var groupExpectation          = new AutoResetEvent(false);
            var firstOperationExpectation = new AutoResetEvent(false);
            var userOperationExpectation  = new AutoResetEvent(false);

            op.PerformOperation(typeof(LoadUserOperation), null, (Parameters result) => {
                userOperationExpectation.Set();
            });


            OperationGroup group = new OperationGroup();

            group.Credentials.Add("RUN_OPERATION");

            group.AddOperation(typeof(FirstOperation), null, (Parameters result) => {
                if (result.ContainsKey("1"))
                {
                    firstOperationExpectation.Set();
                }
            }, null);

            op.PerformGroup(group, null, (Parameters results) => {
                if (results.ContainsKey("1"))
                {
                    groupExpectation.Set();
                }
            });

            Assert.True(userOperationExpectation.WaitOne(TimeSpan.FromSeconds(10)));
            Assert.True(firstOperationExpectation.WaitOne(TimeSpan.FromSeconds(10)));
            Assert.True(groupExpectation.WaitOne(TimeSpan.FromSeconds(10)));
        }
Example #3
0
        public void GroupCredentials2CheckErrorTest()
        {
            var op = OperationProcessor.Instance;

            var groupExpectation         = new AutoResetEvent(false);
            var userOperationExpectation = new AutoResetEvent(false);

            op.PerformOperation(typeof(LoadUserOperation), null, (Parameters result) => {
                userOperationExpectation.Set();
            });


            OperationGroup group = new OperationGroup();

            group.Credentials.Add("EXCLUSIVE_RIGHTS");

            group.AddOperation(typeof(FirstOperation));

            op.PerformGroup(group, null, null, (Exception e) => {
                if (e.GetType().Equals(typeof(UnauthorizedAccessException)))
                {
                    groupExpectation.Set();
                }
            });

            Assert.True(userOperationExpectation.WaitOne(TimeSpan.FromSeconds(10)));
            Assert.True(groupExpectation.WaitOne(TimeSpan.FromSeconds(10)));
        }
Example #4
0
        public void ResolveDependenciesInOperationsTest()
        {
            var op = OperationProcessor.Instance;

            var groupExpectation = new AutoResetEvent(false);

            OperationGroup group = new OperationGroup();

            group.AddOperation(typeof(DependenciesOptionalOperation));
            group.AddOperation(typeof(DependenciesRequiredOperation));

            op.PerformGroup(group, null, (Parameters results) => {
                if (results.ContainsKey("Count"))
                {
                    var value = results ["Count"];
                    if (value.Equals("2"))
                    {
                        groupExpectation.Set();
                    }
                }
            });

            Assert.True(groupExpectation.WaitOne(TimeSpan.FromSeconds(10)));
        }
Example #5
0
        public void ResolveDependenciesInOperationsErrorTest()
        {
            var op = OperationProcessor.Instance;

            op.Initialize();

            var groupExpectation = new AutoResetEvent(false);

            OperationGroup group = new OperationGroup();

            group.AddOperation(typeof(DependenciesRequiredOperation));

            op.PerformGroup(group, null, null, (Exception e) => {
                if (e != null)
                {
                    groupExpectation.Set();
                }
            });

            Assert.True(groupExpectation.WaitOne(TimeSpan.FromSeconds(10)));
        }