public void Async_WhenTrue_ShouldLoadAsynchronous()
        {
            var lockObject = new object();
            var completed  = false;
            var document   = ResourceHelper.CreateXmlDocument();
            var obj        = new InternalXmlParserObserver(new SourceFileFlyWeightFake(), document, observer =>
            {
                lock (lockObject)
                {
                    completed = true;
                }
            });

            obj.Async = true;
            obj.Execute();


            while (true)
            {
                lock (lockObject)
                {
                    if (completed)
                    {
                        break;
                    }
                    Thread.Sleep(0);
                }
            }
            Assert.IsTrue(completed);
        }
        public void UniqueSourceFiles_AfterExecuted_ShouldReturnUniqueFileList()
        {
            var document = ResourceHelper.CreateXmlDocument();
            var obj      = new InternalXmlParserObserver(new SourceFileFlyWeightFake(), document, observer => { })
            {
                Async = false
            };

            obj.Execute();

            Assert.AreEqual(6, obj.UniqueSourceFiles.Count());
        }
        public void Async_WhenFalse_ShouldLoadSynchronous()
        {
            var completed = false;
            var document  = ResourceHelper.CreateXmlDocument();
            var obj       = new InternalXmlParserObserver(new SourceFileFlyWeightFake(), document, observer =>
            {
                completed = true;
            });

            obj.Async = false;
            obj.Execute();

            Assert.IsTrue(completed);
        }