Example #1
0
        public void DoActionOnConcurrentObjectsShouldCallAllObjects()
        {
            var createdSampleClasses = new List <SampleConcurrentClass>();
            Func <SampleConcurrentClass> sampleCreator =
                () =>
            {
                var sample = new SampleConcurrentClass();
                createdSampleClasses.Add(sample);
                return(sample);
            };

            this.proxyParallelManager = new MockParallelOperationManager(sampleCreator, 4, true);

            Assert.AreEqual(4, createdSampleClasses.Count, "Number of Concurrent Objects created should be 4");

            int count = 0;

            this.proxyParallelManager.DoActionOnAllConcurrentObjects(
                (sample) =>
            {
                count++;
                Assert.IsTrue(createdSampleClasses.Contains(sample), "Called object must be in the created list.");
                // Make sure action is not called on same object multiple times
                createdSampleClasses.Remove(sample);
            });

            Assert.AreEqual(4, count, "Number of Concurrent Objects called should be 4");

            Assert.AreEqual(0, createdSampleClasses.Count, "All concurrent objects must be called.");
        }
        public void UpdateHandlerForManagerShouldAddNewHandlerIfNotexist()
        {
            var manager = new SampleConcurrentClass(true);

            this.proxyParallelManager.UpdateHandlerForManager(manager, new SampleHandlerClass());

            Assert.AreEqual(3, this.proxyParallelManager.GetConcurrentManagersCount());
            Assert.AreEqual(1, this.proxyParallelManager.GetConcurrentManagerInstances().Where(m => m.CheckValue == true).Count());
        }
        public void RemoveManagerShouldRemoveAManagerFromConcurrentManagerList()
        {
            var manager = new SampleConcurrentClass(true);

            this.proxyParallelManager.AddManager(manager, new SampleHandlerClass());

            Assert.AreEqual(3, this.proxyParallelManager.GetConcurrentManagersCount());

            this.proxyParallelManager.RemoveManager(manager);

            Assert.AreEqual(2, this.proxyParallelManager.GetConcurrentManagersCount());
            Assert.AreEqual(0, this.proxyParallelManager.GetConcurrentManagerInstances().Where(m => m.CheckValue == true).Count());
        }
Example #4
0
        public void AbstractProxyParallelManagerShouldCreateCorrectNumberOfConcurrentObjects()
        {
            var createdSampleClasses = new List <SampleConcurrentClass>();
            Func <SampleConcurrentClass> sampleCreator =
                () =>
            {
                var sample = new SampleConcurrentClass();
                createdSampleClasses.Add(sample);
                return(sample);
            };

            this.proxyParallelManager = new MockParallelOperationManager(sampleCreator, 3, true);

            Assert.AreEqual(3, createdSampleClasses.Count, "Number of Concurrent Objects created should be 3");
        }
        public void UpdateHandlerForManagerShouldUpdateHandlerForGivenManager()
        {
            var manager = new SampleConcurrentClass(true);

            this.proxyParallelManager.AddManager(manager, new SampleHandlerClass());

            // For current handler the value of variable CheckValue should be false;
            Assert.IsFalse(this.proxyParallelManager.GetHandlerForGivenManager(manager).CheckValue);

            var newHandler = new SampleHandlerClass(true);

            // Update manager with new handler
            this.proxyParallelManager.UpdateHandlerForManager(manager, newHandler);

            // It should not add new manager but update the current one
            Assert.AreEqual(3, this.proxyParallelManager.GetConcurrentManagersCount());
            Assert.IsTrue(this.proxyParallelManager.GetHandlerForGivenManager(manager).CheckValue);
        }