protected override void StartOnSchedule() { _assemblyLoader.CheckUpdate(false); }
public void LoadCheck() { var path = @"..\..\Sample\sample.dll.zip"; if (!File.Exists(path)) { // special casing the integration server path = @"..\..\Test\Lokad.Cloud.Framework.Test\Sample\sample.dll.zip"; } byte[] buffer; using (var dllFile = new FileStream(path, FileMode.Open)) { buffer = new byte[dllFile.Length]; dllFile.Read(buffer, 0, buffer.Length); } var storage = GlobalSetup.Container.Resolve <CloudStorageProviders>(); // put the sample assembly storage.BlobStorage.PutBlob(AssemblyLoader.ContainerName, AssemblyLoader.PackageBlobName, buffer); var loader = new AssemblyLoader(storage.BlobStorage); loader.LoadPackage(); loader.LoadConfiguration(); // validate that 'sample.dll' has been loaded var assemblies = AppDomain.CurrentDomain.GetAssemblies(); Assert.That(assemblies.Any(a => a.FullName.StartsWith("sample"))); // validate using management class var cloudAssemblies = new CloudAssemblies(storage.BlobStorage); Assert.That(cloudAssemblies.GetApplicationDefinition().Value.Assemblies.Any(a => a.AssemblyName.StartsWith("sample"))); // no update, checking try { loader.CheckUpdate(false); } catch (TriggerRestartException) { Assert.Fail("Package has not been updated yet."); } // forcing update, this time using the management class cloudAssemblies.UploadApplicationZipContainer(buffer); // update, re-checking try { loader.CheckUpdate(false); Assert.Fail("Update should have been detected."); } catch (TriggerRestartException) { // do nothing } }