public void preparing_updates_calls_proper_subsystems_publishes_msg_at_the_end() { // return the same - might stop working if some of the code is gonna be put to verify download }; var modulePacakge = new ModulePackage {ModuleManifest = _moduleManifest}; ModulesRepository.Setup(x => x.GetModule(It.Is<string>(y => y == _moduleName))) .Returns(modulePacakge) .Verifiable("This package should be downloaded"); EventAggregator.Setup(x => x.Publish(It.IsAny<NomadUpdatesReadyMessage>())) .Callback<NomadUpdatesReadyMessage>(msg => { Assert.IsFalse(msg.Error); Assert.AreEqual(1,msg.ModuleManifests.Count); Assert.AreSame(modulePacakge.ModuleManifest, msg.ModuleManifests[0]); }) .Verifiable("This message should be published upon exit"); NomadUpdater.PrepareUpdate(new List<ModuleManifest>() { _moduleManifest }); EventAggregator.Verify(); ModulesRepository.Verify(); Assert.AreEqual(UpdaterStatus.Prepared, NomadUpdater.Status); }
public void zip_packager_unzips_the_file_properly() { string zipFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"res\test.zip"); var modulePackage = new ModulePackage { ModuleManifest = new ModuleManifest(), ModuleZip = File.ReadAllBytes(zipFile) }; // get the zip packager IModulePackager packager = new ModulePackager(); // set up directory string targetDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,@"Updater\Zip\"); if(Directory.Exists(targetDirectory)) Directory.Delete(targetDirectory,true); Directory.CreateDirectory(targetDirectory); // perform test packager.PerformUpdates(targetDirectory,modulePackage); // assert test Assert.IsTrue(File.Exists(Path.Combine(targetDirectory, "readme"))); }
/// <summary> /// /// </summary> /// <param name="module"></param> /// <returns></returns> /// TODO: this method probably should not be public! public bool AddModule(ModulePackage module) { try { var name = module.ModuleManifest.ModuleName; var manifestFile = GetManifestPath(name); var zipFile = GetZipPath(name); var manifestData = XmlSerializerHelper.Serialize(module.ModuleManifest); File.WriteAllBytes(manifestFile, manifestData); File.WriteAllBytes(zipFile, module.ModuleZip); return true; } catch { return false; } }
private static ModulePackage GetPackageWithName(string moduleString) { var package = new ModulePackage { ModuleZip = new byte[] {0xFf}, ModuleManifest = new ModuleManifest { ModuleName = moduleString, } }; return package; }