Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
 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);
 }
Example #4
0
 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);
     });
 }
Example #5
0
        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));
        }
Example #6
0
 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);
 }
Example #7
0
        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);
        }