public async Task UpdateFileAndRestart()
{
Random r = new Random();
CancellationTokenSource cts = new CancellationTokenSource();
var fixture = new NodeEndToEndTests.TestFixture();
var blob1 = UpdateOutputName("testblob", "first", fixture);
await fixture.Host.StopAsync();
var config = fixture.Host.ScriptConfig;
using (var manager = new ScriptHostManager(config))
{
// Background task to run while the main thread is pumping events at RunAndBlock().
Thread t = new Thread(_ =>
{
// Wait for initial execution.
TestHelpers.Await(() =>
{
return blob1.Exists();
}, timeout: 10 * 1000).Wait();
// This changes the bindings so that we now write to blob2
var blob2 = UpdateOutputName("first", "second", fixture);
// wait for newly executed
TestHelpers.Await(() =>
{
return blob2.Exists();
}, timeout: 10 * 1000).Wait();
manager.Stop();
});
t.Start();
manager.RunAndBlock(cts.Token);
t.Join();
}
}