public void Test_Worker_Pkg()
        {
            var sut = new PackageUpdaterWorker();
            var executablePackage = sut.GetExecutablePackage(new FileInfo(Path.Combine(this.Update11Folder.FullName, "MyPackageBasedApp Update v. 1.1.pkg")));

            StringAssert.EndsWith(@"\PackagedApp\Updates\1.1\MyPackageBasedApp Update v. 1.1.pkg", executablePackage.FullName);
            Assert.IsTrue(executablePackage.Exists);
        }
        public void Test_Worker_ZippedPkg()
        {
            //package which is donwloaded needs to be extracted, hence the expected executable package is in _Extracted folder
            var sut = new PackageUpdaterWorker();
            var executablePackage = sut.GetExecutablePackage(new FileInfo(Path.Combine(this.Update12Folder.FullName, "1.2", "MyPackageBasedApp Update v. 1.2.zip")));

            Assert.IsTrue(executablePackage.Exists);
            StringAssert.EndsWith(@"\PackagedApp\Updates\1.2\1.2 Extracted\UpdatePackage.pkg", executablePackage.FullName);
        }
        public void Test_Worker_EnsureProperPackageIsPicked()
        {
            List <UpdatePackageData> packages = new List <UpdatePackageData>
            {
                new UpdatePackageData   {
                    Version = "1.2", FileName = "MyPackageBasedApp Updates v. 1.2.zip"
                }
                , new UpdatePackageData {
                    Version = "1.1.2", FileName = "MyPackageBasedApp Updates v. 1.1.2.zip"
                }
                , new UpdatePackageData {
                    Version = "1.1.3", FileName = "MyPackageBasedApp Updates v. 1.1.3.zip"
                }
            };

            packages.ForEach(x => x.StoredFilePath = Locator.Static.BuildUpdatePackagePath(this.Update12Folder, x).FullName);


            Tuple <XDocument, FileInfo> tuple = UpdateInstructionCreator.CreateXDoc(packages
                                                                                    , new ProgramInfo {
                PrimaryAssembly = new AssemblyInfo {
                    Location = @"C:\AppFolder\MyApp.exe"
                }
            }, "Program Display Name");
            XDocument xDoc = tuple.Item1;
            FileInfo  file = tuple.Item2;

            Assert.AreEqual($@"{this.Update12Folder.FullName}\UpdateInstructions.xml", file.FullName);

            UpdateInstructions instructions = UpdateInstructionsReader.DeserializeDocument(xDoc);

            Assert.AreEqual("Program Display Name", instructions.ProgramName);
            Assert.That(() => instructions.Packages.First().Version, Is.EqualTo("1.1.2"));
            Assert.That(() => instructions.Packages.Last().Version, Is.EqualTo("1.2"));
            var    worker   = new PackageUpdaterWorker();
            string expected = worker.GetProperPackagePath(instructions);

            Assert.That(expected, Is.EqualTo($@"{this.Update12Folder.FullName}\1.2\MyPackageBasedApp Updates v. 1.2.zip"));
        }