private static void WarningUpgrade()
        {
            // WARNING: Target file not found in backup.
            var testXmlFile = Path.Combine(Directory.GetCurrentDirectory(), @"Web.config");
            var fileList    = new List <TargetFileInfo>
            {
                new TargetFileInfo(
                    testXmlFile,
                    testXmlFile + ".upgrade"
                    )
            };

            var parameters = new RunParameters("TestProduct", new InstallerVersion("1.10.1"), new InstallerVersion(String.Empty),
                                               fileList);

            parameters.DumpToLog();

            {
                var stageUpgrade = new StageUpgrade(parameters, null);
                var retCode      = stageUpgrade.Run();
                Assert.AreEqual(0, retCode);
            }

            // WARNING: Target file not found: NotExist.config
            testXmlFile = @"NotExist.config";
            var upgradeFile = Path.Combine(Directory.GetCurrentDirectory(), @"Config1.xml.upgrade");

            fileList = new List <TargetFileInfo>
            {
                new TargetFileInfo(
                    testXmlFile,
                    upgradeFile
                    )
            };

            parameters = new RunParameters("TestProduct", new InstallerVersion("1.10.1"), new InstallerVersion("1.0.1"), fileList);

            {
                var stageUpgrade = new StageUpgrade(parameters, null);
                var retCode      = stageUpgrade.Run();
                Assert.AreEqual(0, retCode);
            }

            // WARNING: Upgrade file info not found.
            fileList = new List <TargetFileInfo>
            {
                new TargetFileInfo(
                    testXmlFile,
                    testXmlFile + ".upgrade"
                    )
            };

            parameters = new RunParameters("TestProduct", new InstallerVersion("1.10.1"), new InstallerVersion("1.0.1"), fileList);

            {
                var stageUpgrade = new StageUpgrade(parameters, null);
                var retCode      = stageUpgrade.Run();
                Assert.AreEqual(0, retCode);
            }
        }
        //
        //You can use the following additional attributes as you write your tests:
        //
        //Use ClassInitialize to run code before running the first test in the class
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //Use ClassCleanup to run code after all tests in a class have run
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //Use TestInitialize to run code before running each test
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //Use TestCleanup to run code after each test has run
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion

        private static void RunUpgrade(string testXmlFile, string testNewXmlFile, bool expectedSuccessResult = true)
        {
            var fileList = new List <TargetFileInfo>
            {
                new TargetFileInfo(
                    testXmlFile,
                    testXmlFile + ".upgrade"
                    )
            };

            var parameters = new RunParameters("TestProduct", new InstallerVersion("1.10.1"), new InstallerVersion("1.2.0"),
                                               fileList);

            parameters.DumpToLog();

            {
                var stageBackup = new StageBackup(parameters);
                var retCode     = stageBackup.Run();
                Assert.AreEqual(0, retCode);
            }

            File.Copy(testNewXmlFile, testXmlFile, true);

            {
                var definedMsiProperties = new Dictionary <string, string>
                {
                    { "ComputerName", "msk-app-0839" }
                };
                var stageUpgrade = new StageUpgrade(parameters, definedMsiProperties);
                var retCode      = stageUpgrade.Run();

                if (expectedSuccessResult)
                {
                    Assert.AreEqual(0, retCode);
                }
                else
                {
                    Assert.AreNotEqual(0, retCode);
                }
            }
        }
        private static void RunUpgrade(string testXmlFile, string testNewXmlFile, bool expectedSuccessResult = true)
        {
            var fileList = new List<TargetFileInfo>
                               	{
                               		new TargetFileInfo(
                               			testXmlFile,
                               			testXmlFile + ".upgrade"
                               			)
                               	};

            var parameters = new RunParameters("TestProduct", new InstallerVersion("1.10.1"), new InstallerVersion("1.2.0"),
                fileList);
            parameters.DumpToLog();

            {
                var stageBackup = new StageBackup(parameters);
                var retCode = stageBackup.Run();
                Assert.AreEqual(0, retCode);
            }

            File.Copy(testNewXmlFile, testXmlFile, true);

            {
                var definedMsiProperties = new Dictionary<string, string>
                                           	{
                                           		{"ComputerName", "msk-app-0839"}
                                           	};
                var stageUpgrade = new StageUpgrade(parameters, definedMsiProperties);
                var retCode = stageUpgrade.Run();

                if (expectedSuccessResult)
                {
                    Assert.AreEqual(0, retCode);
                }
                else
                {
                    Assert.AreNotEqual(0, retCode);
                }
            }
        }
        private static void WarningUpgrade()
        {
            // WARNING: Target file not found in backup.
            var testXmlFile = Path.Combine(Directory.GetCurrentDirectory(), @"Web.config");
            var fileList = new List<TargetFileInfo>
                               	{
                               		new TargetFileInfo(
                               			testXmlFile,
                               			testXmlFile + ".upgrade"
                               			)
                               	};

            var parameters = new RunParameters("TestProduct", new InstallerVersion("1.10.1"), new InstallerVersion(String.Empty),
                fileList);
            parameters.DumpToLog();

            {
                var stageUpgrade = new StageUpgrade(parameters, null);
                var retCode = stageUpgrade.Run();
                Assert.AreEqual(0, retCode);
            }

            // WARNING: Target file not found: NotExist.config
            testXmlFile = @"NotExist.config";
            var upgradeFile = Path.Combine(Directory.GetCurrentDirectory(), @"Config1.xml.upgrade");
            fileList = new List<TargetFileInfo>
                               	{
                               		new TargetFileInfo(
                               			testXmlFile,
                               			upgradeFile
                               			)
                               	};

            parameters = new RunParameters("TestProduct", new InstallerVersion("1.10.1"), new InstallerVersion("1.0.1"), fileList);

            {
                var stageUpgrade = new StageUpgrade(parameters, null);
                var retCode = stageUpgrade.Run();
                Assert.AreEqual(0, retCode);
            }

            // WARNING: Upgrade file info not found.
            fileList = new List<TargetFileInfo>
                               	{
                               		new TargetFileInfo(
                               			testXmlFile,
                               			testXmlFile + ".upgrade"
                               			)
                               	};

            parameters = new RunParameters("TestProduct", new InstallerVersion("1.10.1"), new InstallerVersion("1.0.1"), fileList);

            {
                var stageUpgrade = new StageUpgrade(parameters, null);
                var retCode = stageUpgrade.Run();
                Assert.AreEqual(0, retCode);
            }
        }