public async Task TestRemoveApplication() { int startCallCount = 0; int stopCallCount = 0; AppIdentity appIdentity = new AppIdentity("test.myapp", new Version(1, 0, 0)); IApplication application = new StubIApplication() { Start = () => { startCallCount++; return(Task.FromResult(true)); }, Stop = () => { stopCallCount++; return(Task.FromResult(true)); }, IdentityGet = () => appIdentity }; _applicationPool = new ApplicationPool(); await _applicationPool.AddApplication(application); Assert.IsTrue(_applicationPool.HasApplication(appIdentity)); Assert.AreEqual(1, startCallCount); Assert.AreEqual(0, stopCallCount); await _applicationPool.RemoveApplication(appIdentity); Assert.AreEqual(1, stopCallCount); }
public async Task TestRemoveApplication() { int startCallCount = 0; int stopCallCount = 0; AppIdentity appIdentity = new AppIdentity("test.myapp", new SemVersion(1, 0, 0)); IApplication application = new StubIApplication() .Start(() => { startCallCount++; return(Task.FromResult(true)); }) .Stop(() => { stopCallCount++; return(Task.FromResult(true)); }) .Identity_Get(() => appIdentity) .Dispose(() => { }); _applicationPool = new ApplicationPool(); await _applicationPool.AddApplication(application); Assert.True(_applicationPool.HasApplication(appIdentity)); Assert.Equal(1, startCallCount); Assert.Equal(0, stopCallCount); await _applicationPool.RemoveApplication(appIdentity); Assert.Equal(1, stopCallCount); }
public async Task TestThatAnExceptionIsThrownIfApplicationFailsToStart() { IApplication application = new StubIApplication { Start = () => Task.FromResult(false), IdentityGet = () => new AppIdentity("test.myapp", new Version(1, 0, 0)), }; await _applicationPool.AddApplication(application); }
public async Task TestThatAnExceptionIsThrownIfApplicationFailsToStart() { await Assert.ThrowsAsync <Exception>(async() => { IApplication application = new StubIApplication() .Start(() => Task.FromResult(false)) .Identity_Get(() => new AppIdentity("test.myapp", new SemVersion(1, 0, 0))); await _applicationPool.AddApplication(application); }); }
public async Task TestRemoveApplicationThatThrowsWhenStopped() { AppIdentity appIdentity = new AppIdentity("test.myapp", new SemVersion(1, 0, 0)); IApplication application = new StubIApplication() .Start(() => Task.FromResult(true)) .Stop(() => throw new Exception("Exception thrown on Stop")) .Dispose(() => throw new Exception("Exception thrown on Dispose")) .Identity_Get(() => appIdentity); _applicationPool = new ApplicationPool(); await _applicationPool.AddApplication(application); Assert.True(_applicationPool.HasApplication(appIdentity)); await _applicationPool.RemoveApplication(appIdentity); Assert.False(_applicationPool.HasApplication(appIdentity)); }
public async Task TestRemoveApplication() { int startCallCount = 0; int stopCallCount = 0; AppIdentity appIdentity = new AppIdentity("test.myapp", new Version(1, 0, 0)); IApplication application = new StubIApplication() { Start = () => { startCallCount++; return Task.FromResult(true); }, Stop = () => { stopCallCount++; return Task.FromResult(true); }, IdentityGet = () => appIdentity }; _applicationPool = new ApplicationPool(); await _applicationPool.AddApplication(application); Assert.IsTrue(_applicationPool.HasApplication(appIdentity)); Assert.AreEqual(1, startCallCount); Assert.AreEqual(0, stopCallCount); await _applicationPool.RemoveApplication(appIdentity); Assert.AreEqual(1, stopCallCount); }